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

 
 
> initfamfs - busybox - kernel, порочный круг при сборке
Hoodwin
сообщение Dec 5 2013, 10:42
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Вот какая загвоздка. Имеем линукс для платформы c6x, который собираем с rootfs в варианте min-root, который по сути содержит 1) busybox, 2) mtd-utils, 3) libc. При сборке с нуля возникает такая проблема.
Чтобы собрать cpio образ rootfs, нужно в него положить все бинарники, то есть, в том числе, busybox, libc*.so и пр. Чтобы собрать busybox нужно иметь собранное ядро. А когда ядро собирается в конфигурации с initramfs, то конфгурационный скрипт дописывает в ($BLD)/.config строчку CONFIG_INITRAMFS_SOURCE=<путь к cpio>. Ну и вот при первой сборке никакого cpio то и нет еще. Получается порочный круг, и вообще гладко ничего собрать нельзя.

Пока что изворачивались тем, что подкладывали вначале какой-нибудь левый min-root-c6x.cpio, чтобы пройти цепочку и собрать настоящий rootfs, но это все в ручном режиме, противоречить идее make.

Может быть есть более прямой способ сборки? Например, меня бы устроил вариант, когда сначала ядро собирается само по себе, а потом отдельным таргетом к нему пришивается initramfs, и я могу управлять моментом этого пришивания - после сборки busybox, mtf-utils,... -> rootfs. Но уж как-то странно, что это надо прописывать через .config. Изменил .config, пересобирай снова все ядро...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Hoodwin
сообщение Dec 13 2013, 06:02
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



sasamy

1) У меня проблема в том, что образ ядра грузится по TFTP, а параметр initrd, который Вы упоминаете, описан как filename, который содержит образ рамдиска. То, что с 2.6 можно туда тоже подпихнуть initramfs, я прочитал, но непонятно, как ядро найдет по этому имени что-то, если образ загружен по tftp. Обычный initrd в дескотоповой системе ссылается на /boot/inird-..., и ядро, видимо как-то монтирует сам boot раздел. В моем случае такого раздела нет, и поэтому это вариант я пока не смотрел.

2) Образ uImage с двумя файлами внутри уже интереснее. Из примера следует, что образ рамдиска встроен в uImage в виде второго файла. Однако пока непонятен механизм, как ядро узнает о наличии этого образа? Насколько я понимаю, ядро само по себе не обучено взаимодействовать с u-boot. Наоборот, U-boot скармливает ядру необходимые опции. А тут речь идет о том, как научить ядро находить по имени, подставленному в initrd=, собственно файл с образом initramfs.

3) Вот этот вот комментарий (http://git.buildroot.net/buildroot/tree/linux/linux.mk#n172)
Цитата
# As the kernel gets compiled before root filesystems are
# built, we create a fake cpio file. It'll be
# replaced later by the real cpio archive, and the kernel will be
# rebuilt using the linux26-rebuild-with-initramfs target
.

доказывает, что проблема существует, и что ядро действительно надо собирать дважды через его собственные Makefile-ы, чтобы получить результат. То есть эта "ерунда" из ядра произрастает, а все кто вокруг как-то под это подстраиваются. c6x еще на предыдущей ступени развития в этой части.

4) Любой большой проект включает в себя этапы, в соответствии с которыми что-то делается фундаментально и сразу, а что-то упрощенно, как временная мера, просто потому, что сразу на все ресурсов не хватает. Наша задача - разобраться в том, что есть, и развить то, что нам необходимо. Все в детстве писают в штаны, но потом все налаживается.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Hoodwin   initfamfs - busybox - kernel   Dec 5 2013, 10:42
- - Dron_Gus   Зачем busybox'у собранное ядро?   Dec 5 2013, 14:27
- - Hoodwin   Вот это еще одна загадка, на которую я пока не име...   Dec 5 2013, 15:37
- - sasamy   Цитата(Hoodwin @ Dec 5 2013, 14:42) Может...   Dec 5 2013, 18:55
- - Hoodwin   1) Вообще то там чаще индусы попадаются 2) makefi...   Dec 5 2013, 19:38
|- - sasamy   Цитата(Hoodwin @ Dec 5 2013, 23:38) 3) Кр...   Dec 5 2013, 19:50
- - Hoodwin   Ну, допустим. Тогда объясните на пальцах, как прав...   Dec 5 2013, 20:07
|- - sasamy   Цитата(Hoodwin @ Dec 6 2013, 00:07) Ну, д...   Dec 5 2013, 20:27
|- - Tarbal   Цитата(Hoodwin @ Dec 6 2013, 00:07) Ну, д...   Dec 12 2013, 13:45
- - Hoodwin   Ну не выходит то, что при сборке с нуля ядра со вс...   Dec 5 2013, 20:45
|- - sasamy   Цитата(Hoodwin @ Dec 6 2013, 00:45) Вы мн...   Dec 5 2013, 20:53
- - Hoodwin   Так вот засада то в том, что для линковки ядра с н...   Dec 5 2013, 21:03
|- - sasamy   Цитата(Hoodwin @ Dec 6 2013, 01:03) Так в...   Dec 5 2013, 21:14
- - Dron_Gus   Что у Вас за загрузчик? Если что-то не очень кастр...   Dec 6 2013, 07:44
- - Hoodwin   U-Boot 2012.04.01 (Feb 07 2013 - 18:10:09)   Dec 6 2013, 09:09
|- - Dron_Gus   Цитата(Hoodwin @ Dec 6 2013, 13:09) U-Boo...   Dec 6 2013, 14:56
- - krux   почитайте http://www.linuxfromscratch.org/lfs/vie...   Dec 6 2013, 17:37
- - Hoodwin   ну то, что это самодельный дистрибутив, оно понятн...   Dec 6 2013, 19:46
- - Hoodwin   Есть у меня такая книжка. Правда издания 2006 года...   Dec 12 2013, 14:37
|- - Tarbal   Цитата(Hoodwin @ Dec 12 2013, 18:37) Есть...   Dec 12 2013, 20:26
- - Hoodwin   Tarbal Ну и как этот текст помогает решить исходну...   Dec 12 2013, 21:22
|- - sasamy   Цитата(Hoodwin @ Dec 13 2013, 01:22) И во...   Dec 12 2013, 22:26
|- - sasamy   Цитата(Hoodwin @ Dec 13 2013, 10:02) 1) У...   Dec 13 2013, 07:01
- - Hoodwin   sasamy ЦитатаУ вас проблема со чтением Цитата ini...   Dec 13 2013, 09:45
|- - sasamy   ЦитатаКонкретно про filename прочитал тут: с наск...   Dec 13 2013, 10:23
|- - Dron_Gus   Цитата(Hoodwin @ Dec 13 2013, 13:45) Я не...   Dec 16 2013, 07:01
- - Hoodwin   Да проверю, конечно. Просто сейчас текучки много, ...   Dec 16 2013, 12:08
|- - Dron_Gus   Цитата(Hoodwin @ Dec 16 2013, 16:08) Да п...   Dec 18 2013, 06:53
- - Hoodwin   А, ну я там подписал в комментарии "бред...   Dec 19 2013, 07:57
- - Hoodwin   Вот я смотрю в своем ядре (2.6.34), тэги для рамди...   Dec 19 2013, 17:00
- - Dron_Gus   Вполне может быть, что и не прижилось. Я работаю в...   Dec 20 2013, 09:30
- - Hoodwin   Ладно, пока решил перенести код с армов, там вполн...   Dec 20 2013, 12:42


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

 


RSS Текстовая версия Сейчас: 25th June 2025 - 04:50
Рейтинг@Mail.ru


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