Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Linux для начинающих

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2015, 22:25   #181
SVG
Junior Member
 
Регистрация: 24.09.2015
Сообщений: 6
Вес репутации: 0
SVG is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Неужели нет другого способа, кроме как вручную составлять Makefile? Изначально ведь тот же php5 когда-то портировали как-то, должен быть способ... с какими-нибудь ключами configure вызвать.
SVG вне форума   Ответить с цитированием
Старый 24.09.2015, 22:29   #182
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Я не задавался целью автоматизировать, всегда правил в ручную
Admin вне форума   Ответить с цитированием
Старый 25.09.2015, 01:47   #183
SVG
Junior Member
 
Регистрация: 24.09.2015
Сообщений: 6
Вес репутации: 0
SVG is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Кажется, я начинаю врубаться в это дело. Похоже, действительно нужно свой Makefile писать, учитывая, что в OpenWrt его формат отличается от традиционного. Посмотрел Makefile от libopenssl в комплекте OpenWrt, так там как раз-таки этот autoconf’овский configure вызывается в секции Build/Configure:
Код:
define Build/Configure
<…>
	(cd $(PKG_BUILD_DIR); \
		./Configure $(OPENSSL_TARGET) \
			--prefix=/usr \
			--openssldir=/etc/ssl \
			$(TARGET_CPPFLAGS) \
			$(TARGET_LDFLAGS) -ldl \
			-DOPENSSL_SMALL_FOOTPRINT \
			$(OPENSSL_NO_CIPHERS) \
			$(OPENSSL_OPTIONS) \
	)
<…>
endef
А потом в Build/Compile вместо вызова компилятора $(TARGET_CC) вызывается $(MAKE) , а сразу после – $(MAKE) install (всё с кучей ключей, естественно).
В общем, если я мыслю в правильном направлении, нужно написать Makefile, который повторит последовательность действий, которой обычно в линуксах пакеты собираются – configure, make и make install. А я думал, что нужно вручную будет строчить тот неведомый кошмар из пары тысяч строк, который генерируется в configure.
Если получится, отпишусь.
SVG вне форума   Ответить с цитированием
Старый 25.09.2015, 07:04   #184
Tohin
Moderator
 
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030
Tohin is a jewel in the roughTohin is a jewel in the roughTohin is a jewel in the rough
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

SVG, а что конкретно пытаешься скомпилировать?
Tohin вне форума   Ответить с цитированием
Старый 25.09.2015, 11:41   #185
SVG
Junior Member
 
Регистрация: 24.09.2015
Сообщений: 6
Вес репутации: 0
SVG is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Цитата:
Сообщение от Tohin Посмотреть сообщение
SVG, а что конкретно пытаешься скомпилировать?
Консольные megatools, чтоб напрямую с одноплатника-маршрутизатора файлы в облако mega.nz заливать (hdd через SATA подсоединён). До меня, судя по поиску, никто подружить megatools с OpenWrt даже не пытался.
SVG вне форума   Ответить с цитированием
Старый 25.09.2015, 14:50   #186
SVG
Junior Member
 
Регистрация: 24.09.2015
Сообщений: 6
Вес репутации: 0
SVG is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Ещё один вопрос. Как всё-таки правильно указывать зависимости? Если я правильно понял, параметры DEPENDS и PKG_BUILD_DEPENDS влияют только на menuconfig и порядок построения пакетов. А как в $(MAKE) или $(TARGET_CC) передавать конкретный путь к заголовочным исходникам зависимого пакета (в опцию -I )?
Собрал glib2 (получил и успешно установил ipk), прописал его в зависимости в своём пакете, но всё равно получаю «glib.h no such file or directory».

Последний раз редактировалось SVG; 25.09.2015 в 14:52.
SVG вне форума   Ответить с цитированием
Старый 25.09.2015, 18:11   #187
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Я когда собирал свою прогу с поддержкой ssl, то в мейкфайл добавлял библиотеки вот так:

PHP код:
define Package/arduserssl
    SECTION
:=utils
    CATEGORY
:=Utilities
    TITLE
:=arduserssl Arduserssl utility
    DEPENDS
:= +libopenssl # добавил эту строку
endef 
и

PHP код:
define Build/Compile
    
$(TARGET_CC) $(TARGET_CFLAGS) --o  $(PKG_BUILD_DIR)/arduserssl.o  $(PKG_BUILD_DIR)/arduserssl.
    
$(TARGET_CC) $(TARGET_LDFLAGS) -o  $(PKG_BUILD_DIR)/arduserssl -lssl -lcrypto $(PKG_BUILD_DIR)/arduserssl.o  # добавлял -lssl -lcrypto
endef 
Сам мейкфайл из этого топика.
__________________
istarik.ru
stD вне форума   Ответить с цитированием
Старый 26.09.2015, 01:16   #188
SVG
Junior Member
 
Регистрация: 24.09.2015
Сообщений: 6
Вес репутации: 0
SVG is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

В итоге пути к хедерам glib топорно вписал вручную: -I$(STAGING_DIR)/usr/include/glib-2.0 и -I$(STAGING_DIR)/usr/lib для линковщика. Затем упаковщик ipk пожаловался на отсутствие библиотек, помогла полная перекомпиляция всего и вся (make clean и make), плюс меня ввела в заблуждение путаница с именованием пакета openssl: в Makefile он объявлен как openssl, а в pkginfo как libopenssl. В общем, в DEPENDS добавил +libopenssl, и всё скомпилировалось и установилось.
Следующая проблема. При запуске ругается на отсутствие libc.so, в /lib/ лежит только libc.so.0. Если сделать ссылающуюся на него символическую ссылку "libc.so", то выдаёт:
Код:
root@OpenWrt:/lib# megals
megals: symbol '__stack_chk_guard': can't resolve symbol
megals: symbol '__stack_chk_fail': can't resolve symbol
Распаковал с помощью ar эту libc.so.0 и действительно не нашёл там этих функций. Как это gcc слинковал, не понимаю.
SVG вне форума   Ответить с цитированием
Старый 14.11.2015, 15:12   #189
gusevantonio
Junior Member
 
Регистрация: 04.11.2015
Сообщений: 24
Вес репутации: 0
gusevantonio is an unknown quantity at this point
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Всем привет!

Проверьте, пожалуйста, правильно ли я понял алгоритм сборки пакетов из исходников в общих чертах:
1) Физическую или виртуальную систему с Linux надо настроить для сборки прошивки OpenWrt из исходников под железо роутера (т.е. в моём с случае под MT7621 ? )
2) После успешной сборки OpenWrt становится возможным собирать пакеты (без приставки kmod) из исходников под своё железо.
3) Установить собранные .ipk файлы на роутер.


Т.е. верно ли, что без сборки прошивки OpenWrt нет смысла пытаться собрать и установить пакеты для моего чудо-роутера zbt-wg2626 на китайском OpenWrt BB 14.07 , т.к. без сборки прошивки не настроить подходящее "рабочее окружение"?

И верно ли, что собранная прошивка должна встать на железо роутера? Или не факт, что будет, например, WiFi работать?

А что лежит вот здесь, патчи или файл для сборки прошивки?: https://dev.openwrt.org/browser#trun...t7621/profiles
один файл явно относится к моему роутеру :-)

И я правильно понял, что команды:
git clone git://git.openwrt.org/openwrt.git
и
svn co svn://svn.openwrt.org/openwrt/trunk/
делают почти одно и тоже (получают все исходники OpenWrt из ветки trunk), но с использованием разных СКВ ?
gusevantonio вне форума   Ответить с цитированием
Старый 26.11.2015, 11:48   #190
uni
Senior Member
 
Аватар для uni
 
Регистрация: 29.10.2013
Адрес: Екатеринбург, Нижневартовск, Энергодар
Возраст: 43
Сообщений: 573
Вес репутации: 599
uni has a spectacular aura aboutuni has a spectacular aura about
Отправить сообщение для uni с помощью ICQ
По умолчанию Re: Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu

Подскажите в какой версии Linux кому-нибудь удалось удачно скомпилировать openwrt под TL-MR3040 v2? И какие исходники были использованы. У меня ничего не получилось под Ubuntu 14 на виртуалке с svn://svn.openwrt.org/openwrt/trunk
Что делать непонятно, т.к. в интернетах пишут только про удачные варианты сборки.
__________________
Россия навсегда!
uni вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 12 (пользователей: 0 , гостей: 12)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:42. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика