Собираем пакеты Entware(mipsel,arm), Qnapware

Форум программистов
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 17 авг 2015, 14:38

Перед сборкой пакетов подготовьте необходимый софт - Подготовка компьютера для сборки (пакетов, прошивки)

1. Скачайте скрипты сборки

Код: Выделить всё

git clone https://github.com/Entware/entware.git

(для Entware.arm следует клонировать github репозиторий https://github.com/zyxmon/entware-arm.git,
а для Qnapware https://github.com/zyxmon/qnapware.git )
2. Если необходимо поменяйте "фид" отредактировав файл config.mk в папке с *ware. Для Entware (mipsel) доступны "фиды" entware и mipselsf, а для Qnapware - arm и x86.
3. запустите make в папке с *ware. В результате быдет собран (скачан) тулчейн для кросскомпиляции и установлена среда OpenWRT Buildroot.
4. Все готово для сборки. Для сборки всех пакетов перейдите в папку "cd ../openwrt_trunk" и запустите для сборки всех пакетов

Код: Выделить всё

make package/compile V=s

Для сборки конкретного пакета

Код: Выделить всё

make package/<имя пакета>/compile V=s

5. Если хотите создать свой пакет, то создайте папку для этого пакета в package, Makefile и дополнительные патчи и файлы. Как создавать Makefile - посмотрите примеры в папке feeds, их там несколько тысяч. Перед сборкой своего пакета добавьте его к сборке через "make menuconfig".

Sup
Сообщения: 5
Зарегистрирован: 24 авг 2015, 18:57

Сообщение Sup » 24 авг 2015, 21:00

Вот бы ещё примерчик создания hello world! пакета по шагам. Мне, как windows программисту, не очень понятны некоторые очевидные вам вещи. Напимер в фразе "Перед сборкой своего пакета добавьте его к сборке через "make menuconfig"" не ясно в какой именно директории должна выполняться команда.
В целом же, инструкция хорошая, собрал все пакеты на виртуалке с Ubuntu

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 24 авг 2015, 21:43

Sup "make menuconfig" выполняется в папке openwrt_trunk. Запустите и все поймете - это интерфейс выбора пакетов (клавиша пробел). Пакеты в команде "make package/xxx/compile" соответсвуют любым папкам (и подпапкам) в openwrt_trunk/package (включая симлинки). Т.е. там должна быть папка xxx.
Пример helloworld (для zyxware) тут - https://github.com/zyxmon/zyxel-keeneti ... helloworld
Для Entware следует в Makefile заменить usr на opt. Реальные примеры - сложнее.

GrSnake
Сообщения: 8
Зарегистрирован: 26 авг 2015, 18:44

Сообщение GrSnake » 26 авг 2015, 18:50

Zyxmon, добрый день!
Есть два вопроса:
По поводу сборки - Zyxmon, а можно ли собирать пакеты на ББ, и если да - можно ли примерный план действий и инструменты ?
И второй вопрос - а как отлаживаться? , нет ли такого чтоб клиент со всеми причиндалами (ГУЙ итд) отладки стоял на ББ, а сервер отладки с отлаживаемым процессом стоял на синолоджике ? И если такого нет - как вообще боле мене комфортно отлаживаться ?

Заранее спасибо!

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 26 авг 2015, 18:56

GrSnake писал(а):По поводу сборки - Zyxmon, а можно ли собирать пакеты на ББ, и если да - можно ли примерный план действий и инструменты ?

Не можно, а нужно. Другого способа и нет. Этот способ описан в первом посте.
GrSnake писал(а):И второй вопрос - а как отлаживаться?

Ни разу это не делал. Для этого есть gdb, который позволяет отлаживать программу удаленно. Т.е. программа запускается на железке, а отлаживается с ББ. Яндекс - найдется всё :D

Вот статья об удаленной отладке - http://rus-linux.net/lib.php?name=/MyLD ... emote.html
GDB - собирать не нужно. Есть в виде пакетов и gdb, и gdbserver.

GrSnake
Сообщения: 8
Зарегистрирован: 26 авг 2015, 18:44

Сообщение GrSnake » 26 авг 2015, 19:16

Благодарю )
Тоесть на самом синолоджике собрать пакет не получится никак ( Ясно, понятно.

GrSnake
Сообщения: 8
Зарегистрирован: 26 авг 2015, 18:44

Сообщение GrSnake » 12 сен 2015, 15:09

Zuxmon, добрый день!
Все плохо - кругом враги (( Смысл такой - поставил тулчейн на Дебиан - все хорошо, все компилится - спасибо Вам за это!
Далее начал разбираться с minidlna на арме (Synology 413j) и обработкой m2ts (падает она на них), далее по порядку с одними и теми же библиотеками:
Компилю версию 1.1.4 из репозитория - падает на m2ts, остальные файлы обрабатывает нормально.
Компилю версию 1.1.5 (новая вышла, взял с оффсайта) - падает на m2ts, остальные файлы обрабатывает нормально.
Компилю версию 1.1.3 (старая, взял с оффсайта) - падает на m2ts, остальные файлы обрабатывает нормально.
Беру исполняемый файл minidlna из Вашего пакета "minidlna_1.1.3-1a" http://qnapware.zyxmon.org/binaries-arm ... naparm.ipk, подменяю им текущий - все работает!

Что-то там у Вас хорошее было при компиляции, чего нет на оффсайте. Не осталось ли у Вас именно тех исходников, из которых Вы собирали minidlna_1.1.3-1a_qnaparm.ipk ?

P.S.
Да - падает она в вызове inline функции lav_open, в которой происходит переход в графическую библиотеку - посмотрел во всех версиях - она вроде одинаковая (

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1912
Зарегистрирован: 09 авг 2015, 15:33

Сообщение Zyxmon » 12 сен 2015, 15:54

GrSnake, а что мешает посмотреть в git как собиралась эта версия. Если найдете причину - пишите.
Зы У меня ник другой.

Dr.Acid
Сообщения: 166
Зарегистрирован: 26 авг 2015, 23:46

Сообщение Dr.Acid » 12 сен 2015, 22:57

Пытаюсь собрать Qnapware - получаю вот что:
 

Код: Выделить всё

root@acid-virtual-machine:/home/acid/Qnapware/qnapware-master# make V=s
make -C "buildroot"
make[1]: Вход в каталог `/home/acid/Qnapware/qnapware-master/buildroot'
svn co --revision=46338 svn://svn.openwrt.org/openwrt/trunk/ /home/acid/Qnapware/openwrt_trunk
svn: E155018: '/home/acid/Qnapware/openwrt_trunk' уже существует, и это не каталог
make[1]: *** [/home/acid/Qnapware/downloads/openwrt_trunk-q46338] Ошибка 1
make[1]: Выход из каталога `/home/acid/Qnapware/qnapware-master/buildroot'
make: *** [buildroot/.buildroot_prepared] Ошибка 2
root@acid-virtual-machine:/home/acid/Qnapware/qnapware-master#
Свернуть

Оговорюсь сразу - вместо папки openwrt_trunk у меня симлинк (папка с openwrt находиться в другом месте)
Никак нельзя побороть?
Неужели придётся перемещать trunk в папку с Qnapware?

GrSnake
Сообщения: 8
Зарегистрирован: 26 авг 2015, 18:44

Сообщение GrSnake » 16 сен 2015, 22:31

Zyxmon, добрый день, и прошу прощения за ник - экий я невнимательный :-(
Вы про Гит который https://github.com/zyxmon/zyxel-keenetic-packages.git ? Боюсь там последние коммиты по minidlna относятся к 2013 году :-(
Ну вобщем, в любом случае, все решилось эволюционным способом - смысл такой, прежде чем окончательно влезть в дебри сырцов, я решил скомпилить и установить последние версии и ffmpeg (2.8) и minidlna (1.1.5), и после этого все заработало как надо ;-)
Странное поведение, когда на одной и тойже версии ffmpeg одни сборки minidlna работали, а другие нет - я отнес к необъяснимым явлением, вероятно связанным с "хитрой" компиляцией )
Спасибо!


Вернуться в «Собираем софт сами (пакеты, прошивки)»

Кто сейчас на конференции

Всего 2 посетителя :: 0 зарегистрированных, 0 скрытых и 2 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя