реклама на сайте
подробности

 
 
> Минимальный initrd для встраиваемых систем
Pasa
сообщение Oct 2 2013, 08:05
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 107
Регистрация: 4-03-09
Из: Беларусь, Минск
Пользователь №: 45 665



Всем доброго дня/ночи/вечера/утра!
Есть отладочная плата от StarterKit - армовский проц AT9260.
В комплекте были исходники пропатченного для платы ядра и файловой системы.
Слегка их модифицировал под свою плату, не вдаваясь глубоко в теорию, сделал проект и успешно забыл.
Сейчас возникла необходимость реанимровать проект. Решил подойти к изучению линукса основательно - понять как фукционирует/грузится ядро и собирается файловая система. Применение - встраиваемые системы.

На основе материала http://www.opennet.ru/base/sys/initrd_intro.txt.html
собрал initrd. Подсунул его вместо прежней файловой системы. Ядро 2.6.28.
И ядро и initrd грузятся через tftpboot c виртуальной машины, на которой я собственно и собираю ядро и файловую систему.
В минимальном созданном вручную initrd в корне сделал linuxrc как описано в мануале.
Но ядро упорно ищет init и не хочет выполнять linuxrc.

Но в мануале написано:
"Предпоследний шаг - создание файла linuxrc. После того как ядро
монтирует ram диск, оно ищет init скрипт для выполнения. Если файл init
не найден, ядро выполняет файл linuxrc вместо init."

Такое вот на консоль выводит.
Kernel panic - not syncing: No init found. Try passing init= option to kernel.

В конфиге ядра:
CONFIG_CMDLINE="root=/dev/ram0 rw initrd=0x21000000,0x500000 console=ttyS0,115200 mem=32M"

Подскажите в каком направлении копать, может я что-то не так понял в руководстве, почему не запускается linuxrc?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xor.kruger
сообщение Oct 14 2013, 08:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647



Цитата
подскажите....для чего шаг 4.... Такую ссылку наблюдаю, когда собираю rootfs с помощью buildroot

По процессу Init в интернете можно много чего найти sm.gif Вкратце: в процессе загрузки, после инициализации ядра, ядро запускает init как первый процесс пользовательского режима. Init отвечает за дальнейшую загрузку системы. (Выдержка с Педивикии sm.gif )
А когда Вы собираете RootFS с помощью Busybox, то данный Init содержится в файле /bin/busybox, но ядро ищет как раз файл с именем init, вот как раз по этому и необходимо сделать ссылку с таким именем на /bin/busybox.

Цитата
поясните пж-ста шаг 8. Где и в каких опциях ядра и что нужно указать?

Устанавливаете опцию CONFIG_BLK_DEV_INITRD, после появляется CONFIG_INITRAMFS_SOURCE в которой указываете имя образа initramfs, и если выполнили пункт 7 то дополнительно еще и устанавливаете CONFIG_INITRAMFS_COMPRESSION_GZIP.
Все перечисленные опции находятся во вкладке "General Setup"
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 11:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016