sasamy (Guest) |
|
|
Давно хотел сказать - может кому будет полезно, в buildroot можно указать свой конфиг для busybox. Я делал так - запускаю make menuconfig в исходниках busybox, выбираю все что мне нужно (чаще всего все что там есть :), выхожу, полученный .config переименовываю и кладу в дерево исходников buildroot. При конфигурировании buildroot указываю путь и имя своего конфига. Так вот применительно к логину - busybox может использовать встроенные библиотеки для паролей и тд - опция Login/Password Management Utilities -> Use internal password and group functions rather than system functions. Если еще почитать хелп к ней то возможно поможет решить проблему. |
|
|
|
|
|
repairman (Guest) |
|
|
В buildroot можно все настраивать раздельно... только так и делаю и даже собираю разные составляющие разными тулчайнами, т.к. (почему-то ???) мои buildroot не в состоянии собрать все мне нужное в рабочем состоянии сразу... сырое это все, очень сырое... Но сама идея хороша, и не воспользоваться этим - грех...
После первой сборки - заходим в любой компонент, настраиваем - пересобирается только он...
Есть хитрости - присутсвие файла .configured в директории говорит, что кофигурацию компонента buildroot'у (и только ему!) трогать нельзя, файл .patched - говорит, что патчить не нужно, остальное - стандартные принципы работы make... Если отсутствует результат цели сборки - сборка пройдет снова с частичным по возможности использованием .o, если дата Makefile моложе файлов сборки - сборка пройдет полностью... make clean заставит собрать компонент заново с текущим конфигом, make distclean - убьет конфиг, сборка полностью с нуля и т.д. ... комбинации позволяют получить нужный результат.... _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно repairman 13.01.2009 г. в 20:56:14 |
|
|
|
|
|
sasamy (Guest) |
|
|
Вопрос - как собрать новый компонент после добавления через make menuconfig, не пересобирая toolchain заново ? Если ввести make - начнется куча ненужных компиляций при готовом от предыдущей сборки toolchain-е, когда нужно всего лишь добавить новый компонент ? Имеется ввиду сборка с uclibc и gcc со своим кросстулчайном - без помощи внешних тулчайнов.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно sasamy 13.01.2009 г. в 20:59:32 |
|
|
|
|
|
repairman (Guest) |
|
|
Нет, если buildroot собран и не менялся - пройдет мухой только провека, что ничего не менялось... т.к. компонентов много, то такая плевая операция может идти около минуты... Собираться будут ТОЛЬКО те компоненты, которые изменили свое состояние с последней сборки...
В зависимости от того что мне нужно пересобрать и как - я могу:
- просто изменить .c файл
- изменить что-то и touch makefile
- изменить и make clean
- удалить .configured
и т.д. и т.п.
Можно запустить make buildroot'а, а можно make только на данном компоненте со своими параметрами, отличными от заданных buildroot... Понятное дело, что make clean ВСЕГО buildroot - заставит пересобрать ВЕСЬ buildroot, а make distclean в buldroot - еще и заставит заново скачать ВСЕ исходники... поэтому прежде чем что-то делать - подумайте....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно repairman 13.01.2009 г. в 21:07:01 |
|
|
|
|
|
sasamy (Guest) |
|
|
Так вот почему-то это не так - если наример удалить и добаввить что-то - после make начинается непонятная компиляция...не получается просто кросскомпиляция новой rootfs. Такое ощущение что все начинается заново - за исключением того что попало в кеш... По крайней мере затяжную сборку gcc трудно с чем-то перепутать - она происходит в 3 этапа и длится достаточно долго. |
|
|
|
|
|
repairman (Guest) |
|
|
Не... если тулчайн собран и не трогать его настроек - он живет во веки веков в таком состоянии.... posix make не тронет up to date сборок....
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно repairman 13.01.2009 г. в 21:09:20 |
|
|
|
|
|
sasamy (Guest) |
|
|
Возможно это связано с тем что я в конфиге как правило выбираю текущие снапшоты uclibc... Но все именно так как я говорю :) Джае например с внешним тулчайном arm-none-linux-gnueabi busybox собирается зачем-то каждый раз заново, хотя конфиг не меняется.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно sasamy 13.01.2009 г. в 21:23:48 |
|
|
|
|
|
repairman (Guest) |
|
|
Сложно сказать что происходит, но это противоречит тому, что я знаю и вижу...
Хм... Кстати, проблем с часами на машине не наблюдается ??? НЕ VMWare ??? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно repairman 13.01.2009 г. в 21:26:00 |
|
|
|
|
|
sasamy (Guest) |
|
|
Зато не противоречит тому что вижу я - вот и спрашиваю :) Например, мне нужно удалить какой-то пакет - в menuconfig я его отключил, делаю make - казалось бы все ок, но buildroot ничего не сделает - он оставит его бинарники там где они были нетронутыми, директория root останется без изменения. Что я делаю - в menuconfig меняю всего лишь название проекта, все остальное без изменения, buildroot создает новый проект (новую директорию в ./project_build_arm с новой root) и начинает сборку заново - как этого избежать ? |
|
|
|
|
|
repairman (Guest) |
|
|
Никак, новый проект = новая сборка со всеми потрохами, новый тулчайн, новые утилиты, новый рут...
Я играю в пределах одного проекта.... а чтобы пресобрался rootfs, просто сотри директорию root и удали файлик .root из директории проекта... Пускай make - ТОЛЬКО ЭТО buildroot сделает заново, причем компиляции не будет, только инсталляция... 5 секунд...
p.s. одно из правил make - исчезла цель, проверить собрана ли, нет -собрать , да - происталлировать собранное...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно repairman 13.01.2009 г. в 22:35:53 |
|
|
|
|
|
|
|