|
initfamfs - busybox - kernel, порочный круг при сборке |
|
|
|
Dec 5 2013, 10:42
|
Знающий
   
Группа: Участник
Сообщений: 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, пересобирай снова все ядро...
|
|
|
|
|
 |
Ответов
|
Dec 5 2013, 19:38
|
Знающий
   
Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107

|
1) Вообще то там чаще индусы попадаются  2) makefile писал француз, судя по имени. 3) Кривизна в Makefile восходит к самому ядру, как мне кажется. Вот если читать Documentation/filesystems/ramfs-rootfs-initramfs.txt, то там как раз и написано, что для сборки ядра вместе с initramfs нужно добавить в конфиг строчку CONFIG_INITRAMFS_SOURCE. Ну вот система сборки и подставляет туда путь к будущему cpio архиву. Но она не умеет собирать ядро дважды - до сборки cpio и после. Больше того, заказ на правку конфига отдается на откуп внешнему скрипту, который вкурочивает CONFIG_INITRAMFS_SOURCE в $(KOBJECTS)/.config. То есть, Makefile не знает, что делает это скрип, поэтому он не может понять, собирает он initramfs или нет, до или после cpio. Пока что удалось сделать еще другой хак. Надо просто вначале собрать какое-нибудь ядро без initramfs. При этом rootfs cpio все равно создается, и может быть использован для дальнейшей сборки другого ядра с initramfs.
|
|
|
|
Сообщений в этой теме
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 Ну, допустим. Тогда объясните на пальцах, как прав... 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 Hoodwin sasamy
1) У меня проблема в том, что образ ядра г... Dec 13 2013, 06:02 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|