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

 
 
> 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 5 2013, 19:38
Сообщение #2


Знающий
****

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



1) Вообще то там чаще индусы попадаются sm.gif
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.
Go to the top of the page
 
+Quote Post
sasamy
сообщение Dec 5 2013, 19:50
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(Hoodwin @ Dec 5 2013, 23:38) *
3) Кривизна в Makefile восходит к самому ядру, как мне кажется.


вам кажется, потому что Linux вы познаете по кривым SDK. Вы возьмите архив ядра, соберите его вручную и посмотрите что происходит, сейчас у вас - неправильная трактовка прочитанной документации в голове, кривой SDK на руках и придуманные проблемы sm.gif
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   Ну, допустим. Тогда объясните на пальцах, как прав...   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


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

 


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


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