为什么我的 initramfs 没有检测到 init

Why does my initramfs not detect init

我正在从 minimalfs 编译一个 initramfs,它在引导期间无法检测到 init。 我有 2 个模拟链接,一个在 /init,另一个在 sbin/init,都指向 /sbin/init.sysvinit

我刚刚尝试在内核配置中传递文件系统目录和 cpio。下面是bootlog的尾部:

============================================= ============

[    2.152221] vmmc: supplied by vbat                                           
[    2.157139] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz                  
[    2.165445] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz                  
[    2.208472]  remoteproc0: wkup_m3 is available                               
[    2.213169]  remoteproc0: Note: remoteproc is still under development and co.
[    2.222618]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backwa.
[    2.233660]  remoteproc0: Direct firmware load failed with error -2          
[    2.240280]  remoteproc0: Falling back to user helper                        
[    2.245995] cpu cpu0: of_pm_voltdm_notifier_register: Fail calculating volta2
[    2.259066] input: volume_keys.8 as /devices/volume_keys.8/input/input2      
[    2.266959] /home/preetam/Workspace/neato/ti-processor-sdk-linux-am335x-evm-)
[    2.287394] Warning: unable to open an initial console.                      
[    2.300184] Freeing unused kernel memory: 4212K (c0587000 - c09a4000)        
[    2.307330] Failed to execute /init (error -2)                               
[    2.312502] Kernel panic - not syncing: No working init found.  Try passing .
[    8.180642] random: nonblocking pool is initialized

============================================= =============================

以下是我的bootargs:

"console=${console} earlyprintk=serial mem=128m"

我使用的硬件是基于 am335x 的定制板,它是特定于产品的 beagle bone 的完整定制版本。拥有 128MB DDR 内存。

init 是一个带有链接到它的动态库的 elf 二进制文件。我通过在 init 文件上使用 readelf -d 找到了它。所以我需要添加我认为会在 init 中静态链接的 libc 库。 非常感谢 "that toher guy"。