在 Linux 中加载 initramfs 时出现异常

在 Linux 中加载 initramfs 时出现异常

我在从 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]BUG:进程交换器中的页面状态错误/0 pfn:70400

[0.653424]页面:ffffffbdc1c10000计数:0映射计数:-127映射:(空)索引:0x0

[0.653428]标志:0x0()

[0.653433]页面被转储,因为:非零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

与 RAM 相比,我的initrd图像大小非常小。因此,我保留了initrd图像,而没有使用下面的方法在内核中释放bootargs

set bootargs 'retain_initrd'

相关内容