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

 
 
> Минимальный 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 4 2013, 10:03
Сообщение #2


Местный
***

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



Цитата
busybox рекомендуется собирать с uClibc

Его рекомендуют собирать с uClibc, только исходя из меньшего размера получаемого бинарника, в 90 % случаев собирал glibc для множества архитектур - работало без нареканий.
Цитата
static не хочет компилить

Исходя из Вашего куска лога, скорее всего выставлена опция CONFIG_WERROR. Уберите ее и все будет ок sm.gif
Если не поможет, то соберите динамически а либы от которых, зависит подсуньте вручную в рутфс, например так:
Код
префикс-кросскомпилятора-readelf -a имя_файла | grep "Shared library"

Цитата
И еще...для чего делать инсталл - шаг 3?

После этого в папке _install создается структура Вашей рутовой файловой системы, которая в потом "готова к использованию"
Цитата
И для чего шаг 8?

Для того, чтобы ядро знало как называется, чем распаковывать и где лежит Ваш образ Initramfs. В результате Вы получите одним файлом и ядро и Initramfs.
Initramfs как раз и "пришла" на замену Initrd.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 15:28
Рейтинг@Mail.ru


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