0

Я компилирую initramfs из minimalfs и не обнаруживает init во время загрузки. У меня есть 2 simlinks один at/init, а другой - в sbin/init, указывающий на /sbin/init.sysvinitПочему мои initramfs не обнаруживают init

Я просто попробовал передать каталог файловой системы, а также cpio в конфигурации ядра. Ниже приведен хвост загрузочного журнала:

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

[ 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:

"консоль = $ {консоль} earlyprintk = серийный мем = 128m"

аппаратный Я использую am335x на основе пользовательская бо ard, который является полной пользовательской версией кости биглей, которая специфична для продукта. Имеет 128 Мб DDR-бара.

+0

-2 ENOENT. Вы пытались выполнить chrooting в свою директорию initramfs и запустить init, чтобы убедиться, что файл имеет все свои зависимости? –

+0

Я не понимаю, что вы имеете в виду. Не могли бы вы объяснить более подробно. – preetam

+1

Похоже, что это ошибка «файл не найден». Вам необходимо предоставить все файлы, необходимые для запуска init, который включает в себя 1. символическую ссылку, 2. ее цель, 3. интерпретатор цели, если таковой имеется, 4. динамический компоновщик для цели или ее интерпретатора. Вы можете проверить, есть ли у вас все без перезагрузки, используя ваши initramfs в качестве корня fs с 'chroot' и выполнив init. –

ответ

0

Инициатор был двоичным элементом эльфа с связанными с ним динамическими библиотеками. Я нашел его, используя readelf -d в файле init. Поэтому мне нужно было добавить библиотеку libc, которая, как я думал, будет связана статически в init. Большое спасибо «этому парню».

Смежные вопросы