0

附加更多的引导日志。

HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
iommu: Default domain type: Translated 
iommu: DMA domain TLB invalidation policy: strict mode 
SCSI subsystem initialized
EDAC MC: Ver: 3.0.0
clocksource: Switched to clocksource arch_sys_counter
workingset: timestamp_bits=62 max_order=19 bucket_order=0
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler mq-deadline registered
cacheinfo: Unable to detect cache hierarchy for CPU 0
brd: module loaded
VFS: Mounted root (tmpfs filesystem) on device 0:15.
Freeing unused kernel memory: 704K
Run /init as init process
  with arguments:
    /init
  with environment:
    HOME=/
    TERM=linux
Kernel panic - not syncing: Requested init /init failed (error -2).
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.0-rc7-00001-g8d7daa446b53-dirty #33
Call trace:
 dump_backtrace+0x0/0x1d0
 show_stack+0x14/0x20
 dump_stack_lvl+0x64/0x7c
 dump_stack+0x14/0x2c
 panic+0x158/0x304
 kernel_init+0xf0/0x150
 ret_from_fork+0x10/0x20
Kernel Offset: disabled
CPU features: 0x00001001,20000802
Memory Limit: none
---[ end Kernel panic - not syncing: Requested init /init failed (error -2). ]---

我正在为实验性 FPGA 平台构建嵌入式 linux 操作系统。我使用了上游 U-boot(boot-loader)、linux(kernel) 和 buildroot(仅用于文件系统)。

我遵循了一些示例,并在我的 linux 配置中启用了所需的 initrd/initramfs 支持。

CONFIG_BLK_DEV_INITRD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=1
CONFIG_BLK_DEV_RAM_SIZE=10240

我在 u-boot 中使用 bootm 命令加载了一个 FIT 映像,该映像由 linux 内核、dtb 和 rootfs.cpio(从 buildroot 编译)组成。相关信息:FIT测试

这些是传递给内核的引导参数:

console=ttyS0,9600 earlyprintk maxcpus=1 earlycon root=/dev/ram init=/init rw rootfstype=tmpfs debug

笔记:

我尝试了其他几件事,但导致了同样的错误。

  • 分别传递内核、dtb 和 fs 映像。
  • 尝试通过 init=/bin/sh , /sbin/init , /etc/init , /bin/init
  • 尝试了一个基本的 initramfs,只有一个 init 脚本、简单的目录结构和一个单独编译的busybox,放在 /bin/busybox 中,带有符号链接。
  • 我没有传递外部 FS,而是传递了 initramfs 源的路径,并使用CONFIG_INITRAMFS_SOURCE将其编译到内核中。

我将不胜感激任何关于我可能遗漏的反馈/指针,现在一直停留在这个问题上。

4

0 回答 0