Страница 2 из 3

Re: Минимальный initrd для встраиваемых систем

Добавлено: 03 окт 2013, 18:38
Pasa
Появились мысли, что Busybox собран криво. Погружаюсь в этот момент. Отпишусь по результатам.

Re: Минимальный initrd для встраиваемых систем

Добавлено: 03 окт 2013, 18:50
Pasa
alex65su писал(а):Как-то пропустил...
Так что разобраться со всеми этими приёмами на на десктопном дистрибутиве будет не только возможно, но и в разы легче, а то и дешевле (по неопытности, заказную железку одной неосторожной записью во флеш можно легко превратить в "кирпич").
Во флэшке у меня сидит слегка подправленный мной U-boot , с помощью которого ядро и rootfs по сети грузятся в RAM. Никаких чтений/записи во флэш нету. Грузятся практически голое ядро и rootfs , в которой только busybox.
Никаких NFS с поднятием сети, x-ов, драйверов видео и т.п. Думаю, что такой набор все-таки попроще, чем тонкий клиент на десктопе. После загрузки все полностью автономно, все сидит только в RAM. Если ошибаюсь поправьте.

Re: Минимальный initrd для встраиваемых систем

Добавлено: 03 окт 2013, 19:38
Olej
Pasa писал(а):Никаких NFS с поднятием сети, x-ов, драйверов видео и т.п. Думаю, что такой набор все-таки попроще, чем тонкий клиент на десктопе. После загрузки все полностью автономно, все сидит только в RAM. Если ошибаюсь поправьте.
Поправляю ("если ошибаюсь...") :lol: : меньше - вовсе не означает проще.

P.S. Но ... "хозяин барин" ;-)
Или "мы не ищем лёгких путей!" :?: ;-)

Re: Минимальный initrd для встраиваемых систем

Добавлено: 03 окт 2013, 19:42
Olej
Pasa писал(а):Появились мысли, что Busybox собран криво.
Какой BusyBox? Откуда взятый?

P.S. У меня за разное время набралось несколько сот коллег, сотрудников, студентов, учеников ... разное, с кем пришлось работать.
Не было ни одного раза, чтобы, если что-то работает "не так", хоть кто-то сказал: "я неправ", всегда говорится что "компьютер неправ" и что "собрано криво" ;-)

Re: Минимальный initrd для встраиваемых систем

Добавлено: 04 окт 2013, 10:09
Pasa
буду первым....я не прав....собрал busybox не статически ...при выставлении опции static при сборке появляются ошибки...пошел учить матчасть

Re: Минимальный initrd для встраиваемых систем

Добавлено: 04 окт 2013, 10:57
alex65su
Pasa писал(а): буду первым....я не прав....собрал busybox не статически ...при выставлении опции static при сборке появляются ошибки...пошел учить матчасть
busybox можно собрать и НЕстатически. В этом случае в соответствующем месте файловой системы вашей железки должны лежать библиотеки (*.so-шки), которые необходимы для работы busybox ;-)

Re: Минимальный initrd для встраиваемых систем

Добавлено: 11 окт 2013, 11:44
Pasa
удалось запустить стартовый скрипт linuxrc. Но при условии, что я busybox подменил - взял готовый бинарник собранный в buildroot и руками сделал в корне /lib и напихал туда все библиотеки, котрые понаделал buildroot.

Но никак не удается собрать busybox статически.
Ругается:
-----------------------------------------------------------
applets/applets.c:20:2: error: #warning Static linking against glibc produces buggy executables
applets/applets.c:21:2: error: #warning (glibc does not cope well with ld --gc-sections).
applets/applets.c:22:2: error: #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
applets/applets.c:23:2: error: #warning Note that glibc is unsuitable for static linking anyway.
applets/applets.c:24:2: error: #warning If you still want to do it, remove -Wl,--gc-sections
applets/applets.c:25:2: error: #warning from top-level Makefile and remove this warning.
make[1]: *** [applets/applets.o] Error 1
make: *** [applets] Error 2
--------------------------------------------------------------

удаляю -Wl,--gc-sections из makefile....все равно получаю это сообщение

Re: Минимальный initrd для встраиваемых систем

Добавлено: 12 окт 2013, 14:40
alex65su
Вполне возможен вариант, что в Вашем случае busybox статически собираться не должОн...

В embedded поделках кроме "классической" библиотеки glibc могут использоваться другие, несколько облегченные библиотеки. Возможно, что такая замена библиотеки позволит Вам собрать busybox статически. Замечу, что это всего лишь предположение(!).

Re: Минимальный initrd для встраиваемых систем

Добавлено: 13 окт 2013, 14:34
Pasa
alex65su писал(а):Вполне возможен вариант, что в Вашем случае busybox статически собираться не должОн...

В embedded поделках кроме "классической" библиотеки glibc могут использоваться другие, несколько облегченные библиотеки. Возможно, что такая замена библиотеки позволит Вам собрать busybox статически. Замечу, что это всего лишь предположение(!).
Подскажите пж-ста что и где надо поменять, чтобы собрать с другими библиотеками

Re: Минимальный initrd для встраиваемых систем

Добавлено: 13 окт 2013, 15:02
alex65su
Pasa писал(а):
alex65su писал(а):Вполне возможен вариант, что в Вашем случае busybox статически собираться не должОн...

В embedded поделках кроме "классической" библиотеки glibc могут использоваться другие, несколько облегченные библиотеки. Возможно, что такая замена библиотеки позволит Вам собрать busybox статически. Замечу, что это всего лишь предположение(!).
Подскажите пж-ста что и где надо поменять, чтобы собрать с другими библиотеками
В качестве альтернативы glibc могут использоваться:
* dietlibc — альтернативная небольшая реализация Стандартной библиотеки языка Си
* uClibc — Стандартная библиотека языка Си для встраиваемых систем на базе Linux (MMU-less)
* Newlib — Стандартная библиотека языка Си для встраиваемых систем (MMU-less)
* klibc — применяется главным образом для загрузки Linux-систем.
* eglibc — разновидность glibc для встраиваемых систем.

Прежде чем собирать с какой-то другой библиотекой, имеет смысл почитать/просмотреть документацию в _вашей_ поставке busybox. Там, по идее, должно указываться с какими библиотеками (и их версиями), отличными от glibc, он должен собираться и как (кажись, в файле INSTALL, но могу ошибиться).

Дальше, берёте исходники нужной библиотеки, собираете toolchain и библиотеку, собираете ядро, busybox, ..., etc, и... радуетесь успешному результату :)

если чего-то не получилось, то... занимаетесь тюнингом, кувалдингом и напилингом... 8-)

PS
Вообще, если Вы серьёзно вцепились в embedded-Linux-поделку, то Вам имеет смысл обзавестись парой-тройкой базовых букварей по embedded-Linux, просмотреть/прочитать их и использовать их как шпаргалку, чтобы легче было ориентироваться в данном предмете вообще. Более конкретные и тонкие моменты будут характерны именно для того оборудования с которым Вы непосредственно имеете дело. Поэтому, дальше следует искать собратьев уже по оборудованию.