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

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


Местный
***

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



Неоднократно использовал Initramfs. Собирал его Busybox'ом. Работало все отлично со множеством архитектур.
Шаги такие:
1. Качаете Busybox на официальном сайте www.busybox.org
2. Выставляете необходимые опции через make menuconfig. Для начала экспириментов обязательно выставьте опции сборки static.
3. Собираете Busybox: make CROSS_COMPILE=префикс
3. Инсталлируете (по умолчанию в каталог _install): make install CROSS_COMPILE=префикс
4. В каталоге _install делаете ссылку init на bin/busybox
5. Добавляете необходимые файлы устройств в каталог dev, inittab и необходимые скрипты загрузки в etc
6. Запаковываете: find . | cpio -H newc -o > ../initramfs.cpio
7. Архивируете (например gzip): gzip -9 initramfs.cpio
8. Перемещаете в каталог с ядром, указываете в опциях ядра имя файла и алгоритм сжатия. Компилируете и наслаждаетесь sm.gif

ЗЫ: При таком случае в параметрах загрузки о Initramfs необязательно что-то указывать.
Go to the top of the page
 
+Quote Post



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

 


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


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