uboot에서 linux initramfs를 시작할 때 예외가 발생했습니다.
내 bootargs는 다음과 같습니다: setenv bootargs 'console=ttySC0,115200 root=/dev/ram rw ramdisk_size=51200' booti 0x60E00000 0x70000000 0x62000000
추적점 호출무료 초기화 메모리. initramfs 파일 시스템을 해제하는 동안 예외가 발생했습니다.
누군가 제안했는데 근본 원인은 무엇입니까? bootargs를 변경해야 합니까?
감사해요.
시작 로그:
[0.175106] initramfs 압축을 푸는 중...
[ 0.653408] 버그: 프로세스 전환기/0 pfn:70400의 페이지 상태가 잘못되었습니다.
[ 0.653424] 페이지: ffffffbdc1c10000 개수: 0 지도 개수: -127 지도: (null) 색인: 0x0
[0.653428] 플래그: 0x0()
[ 0.653433] 페이지가 덤프된 이유: 0이 아닌 mapcount
[0.653437] 연결된 모듈:
[ 0.653447] CPU: 3 PID: 1 통신: 스위치/0 오염되지 않음 4.4.0-yocto-standard #16
[ 0.653451] 하드웨어 이름: Renesas r8a7795(DT) 기반 Visteon Monarch 보드
[0.653456] 통화 추적:
[0.653473][]dump_backtrace+0x0/0x180
[0.653479][]show_stack+0x14/0x20
[0.653488][]덤프 스택 +0x90/0xc8
[0.653497][]bad_page+0xc8/0x118
[0.653502][]free_pages_prepare+0x1dc/0x248
[0.653506][]free_hot_cold_page+0x28/0x1b8
[0.653510][]__free_pages+0x40/0x50
[0.653514][]free_reserved_area+0x8c/0x110
[0.653524][]free_initrd_mem+0x20/0x2c
[0.653529][]populate_rootfs+0x9c/0xbc
[0.653534][]do_one_initcall+0x8c/0x190
[0.653539][]kernel_init_freeable+0x148/0x1ec
[0.653549][]kernel_init+0x10/0xe0
[ 0.653554] [] _fork에서 +0x10/0x40을 다시 얻습니다.
[0.653557] 커널 오염으로 인해 잠금 디버깅이 비활성화되었습니다.
답변1
내 initrd
이미지 크기는 RAM에 비해 매우 작습니다. 그래서 initrd
아래 방법을 이용하여 이미지를 커널에 공개하지 않고 그대로 유지했습니다 bootargs
.
set bootargs 'retain_initrd'