부팅 시 커널 패닉을 해결하는 방법

부팅 시 커널 패닉을 해결하는 방법

Nokia IP710 방화벽에서 Debian Linux를 실행하려고 시도했지만 제대로 부팅할 수 없었습니다. 매번 커널 패닉이 발생했습니다.

이 방화벽에는 Pentium III 1Ghz 및 512MB RAM이 있습니다. vga가 없고 BIOS가 매우 제한적이며(즉, pxe/netboot가 없음) CDROM 드라이브나 USB 포트가 없습니다. 운영 체제는노키아 IPSO, FreeBSD를 기반으로 합니다.

IPSO는 부트로더가 있는 32MB CF 카드에서 부팅되며 운영 체제는 40GB 하드 드라이브에 있습니다.

나는 4GB 컴팩트 플래시에 qemu의 Debian(Wheezy)을 설치했고 나중에는 32MB 하드 드라이브에 /boot로 설치했습니다. qemu 또는 x86 씬 클라이언트에서 부팅할 때 두 운영 체제 모두 제대로 작동합니다.

그러나 다음 로그와 함께 방화벽에서 시작할 때마다 충돌이 발생합니다.

[    2.676304] BUG: unable to handle kernel paging request at ffff8000
[    2.680166] IP: [<c1010aec>] io_apic_write+0xb/0x13
[    2.680166] *pde = 01442067 *pte = 00000000 
[    2.680166] Oops: 0002 [#1] 
[    2.680166] Modules linked in:
[    2.680166] 
[    2.680166] Pid: 1, comm: swapper Not tainted 3.2.0-4-486 #1 Debian 3.2.32-1  
[    2.680166] EIP: 0060:[<c1010aec>] EFLAGS: 00010086 CPU: 0
[    2.680166] EIP is at io_apic_write+0xb/0x13
[    2.680166] EAX: ffff8000 EBX: 00000031 ECX: 01000000 EDX: ffff8000
[    2.680166] ESI: 01000000 EDI: 0001a929 EBP: 00000002 ESP: dec2dea0
[    2.680166]  DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[    2.680166] Process swapper (pid: 1, ti=dec2c000 task=dec1ec00 task.ti=dec2c000)
[    2.680166] Stack:
[    2.680166]  00000010 00000002 c1010b5f 00000246 0001a929 01000000 c1010b95 0001a929
[    2.680166]  01000000 00000010 66858080 dec2df20 c1315489 00000010 c1011974 0001a929
[    2.680166]  01000000 00000001 00000000 00000002 0001a929 01000000 c1448d44 00000010

그리고 추적을 호출한 후:

[    2.680166] EIP: [<c1010aec>] io_apic_write+0xb/0x13 SS:ESP 0068:dec2dea0
[    2.680166] CR2: 00000000ffff8000
[    2.680166] ---[ end trace 6f619dcb164ee6d0 ]---
[    2.680206] Kernel panic - not syncing: Attempted to kill init!
[    2.684175] Pid: 1, comm: swapper Tainted: G      D      3.2.0-4-486 #1 Debian 3.2.32-1

나는 또한 동일한 결과로 커널 3.2.35를 시도했습니다.

PCI 관련 오류 메시지도 많이 있습니다.

[    2.467037] pci 0000:00:02.0: address space collision: [mem 0xff000000-0xff03ffff pref] conflicts with 0000:00:01.0 [mem 0xff000000-0xff03ffff pref]
[    2.488165] pci 0000:04:06.0: no compatible bridge window for [mem 0xff000000-0xff03ffff pref]
[    2.620180] pci 0000:00:03.0: enabling device (0000 -> 0003)
[    2.624179] pci 0000:00:03.0: can't find IRQ for PCI INT A; probably buggy MP table
[    2.628186] pci 0000:00:03.1: enabling device (0000 -> 0003)
[    2.632174] pci 0000:00:03.1: can't find IRQ for PCI INT B; probably buggy MP table

다음 메시지 중 512개(핀 0-255, 두 번):

[    1.172083] Unable to reset IRR for apic: 255, pin :3

이러한 충돌을 해결하는 방법을 알고 싶습니다. 내가 읽은 대부분의 문서(예: Documentation/oops-tracing.txt)에는 부팅 시 커널 충돌에 대한 언급이 없습니다.

콘솔에서 저장된 전체 부팅 로그는 다음과 같습니다.여기.

편집하다:@jordanm의 제안에 따라 밤새(11시간) memtest를 실행했습니다. 오류 없이 모든 것이 잘 진행됩니다.

      Memtest86+ v4.20      | Pass100% ####################################### 
Pentium III 999.6MHz        | Test 81% ###############################         
L1 Cache:   16K   9342 MB/s | Test #8  [Modulo 20, Random pattern]           
L2 Cache:  256K   4253 MB/s | Testing:  196K -  512M  512M          
L3 Cache:       None        | Pattern: ab46c0e3-17   
Memory  :  512M    406 MB/s |-------------------------------------------------
Chipset : CNB20HE (ECC : Detect / Correct) Scrub+ 


 WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors ECC Errs
 ---------  ------  -------  --------  -----  ---  ----  ----  ------ --------
  11:06:12    512M       0K    e820      on   off   Std     9       0
 -----------------------------------------------------------------------------

관련 정보