Linux의 두 번째 부팅 - 커널 패닉

Linux의 두 번째 부팅 - 커널 패닉

저는 현재 buildrootARM 장치용으로 만들어진 Linux 배포판을 작업하고 있습니다. 파일 시스템은 JFFS2입니다. 저는 Das U-Boot를 사용하여 부팅하고 있습니다.

한 번 성공적으로 부팅할 수 있었습니다. 초기 부팅은 성공적이었고 Linux에 로그인하여 명령줄에서 예상하는 작업을 수행할 수 있었습니다. 두 번째 부팅에서는 커널 패닉이 발생합니다.

초기 부팅 전과 후의 커널 메모리를 비교해 봤는데 똑같습니다.

내 결론은 초기 부팅 중에 파일 시스템의 무언가가 변경되어 커널 패닉이 발생했다는 것입니다.

다음은 내 시작에서 관련 발췌문입니다(시작 실패에 대한 컨텍스트를 제공하기 위해 추가 항목을 붙여넣었지만 아마도 마지막 6줄만 중요할 것입니다).

...
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
mousedev: PS/2 mouse device common for all mice
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP: cubic registered
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
atmel_nand 40000000.nand: PMECC: Too many errors
VFS: Cannot open root device "mtdblock1" or unknown-block(31,1): error -5
Please append a correct "root=" boot option; here are the available partitions:
1f00            8192 mtdblock0  (driver?)
1f01          253952 mtdblock1  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,1)

Uboot 구성 내 U-Boot는 printenv다음과 같습니다.

baudrate=115200
bootargs=mem=128M console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) root=/dev/mtdblock1 rw rootfstype=jffs2
bootcmd=nand read 0x22000000 0x200000 0x300000; bootm 0x22000000
bootdelay=3
ethact=macb0

그래서 내 질문은 첫 번째 부팅이 성공했는데 두 번째 부팅이 실패하는 이유를 이해하도록 도와줄 수 있는 사람이 있는지 여부입니다. 이거 본 사람 있어? 아마도 비슷한 상황에 경험이 있는 사람이라면 적어도 여기서 무슨 일이 일어나고 있는지 지적할 수 있을 것입니다.

추신: 필요한 경우 추가 정보를 제공할 수 있습니다. 중요하지 않은 세부 사항을 추상화하려고 노력했지만 도움이 된다면 더 추가할 의향이 있습니다.

답변1

bootargs를 읽기 전용으로 설정해 볼 수 있습니다.

bootargs=mem=128M console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) root=/dev/mtdblock1 ro rootfstype=jffs2

관련 정보