|
20.12.2012, 19:39 | #1 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Кросс компиляция прошивки OpenWRT и пакетов на Ubuntu
Устанавливаем пакеты, которые понадобятся при кросс компиляции
Код:
sudo apt-get update sudo apt-get install subversion build-essential libncurses5-dev libssl-dev xsltproc zlib1g-dev gawk gcc-multilib flex git-core gettext quilt mkisofs Код:
mkdir ~/openwrt cd ~/openwrt Код:
svn co svn://svn.openwrt.org/openwrt/trunk/@33482 svn update Код:
cd trunk Код:
./scripts/feeds update -a ./scripts/feeds install -a Код:
make defconfig Код:
make prereq Запускаем приложение для конфигурации и выбираем цель - наш роутер mr3020 Код:
make menuconfig остальные настройки пока не трогаем выходим и сохраняем настройки компилируем прошивку: Код:
make или с более подробным выводом make V=s если Вы уже прокомпилировали хотя бы один раз и внесли изменения, то что бы избежать полного компилирования с нуля используйте make V=99 Если у Вас процессор двухядерный, то можно ускорить компиляцию добавив параметр -J 3 Код:
make -j 3 V=s Для создания своих пакетиков *.ipk переходим в папку package Код:
cd ~/openwrt/trunk/package Код:
mkdir -p mr/src Содержимое Makefile Код:
#===================================== # OpenWrt Makefile #===================================== include $(TOPDIR)/rules.mk PKG_NAME:=mr PKG_VERSION:=1 PKG_RELEASE:=1 PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk define Package/mr SECTION:=utils CATEGORY:=Utilities TITLE:=mr - Mouse Remote test utility endef define Package/mr/description mr - Mouse Remote test utility endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Compile $(TARGET_CC) $(TARGET_CFLAGS) -c -o $(PKG_BUILD_DIR)/mr.o $(PKG_BUILD_DIR)/mr.c $(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/mr $(PKG_BUILD_DIR)/mr.o endef define Package/mr/install $(INSTALL_DIR) $(1)/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/mr $(1)/bin/ endef $(eval $(call BuildPackage,mr)) Код:
~/openwrt/trunk/package/mr/src/mr.c переходим в каталог trunk и запускаем конфиг компиляции Код:
cd ~/openwrt/trunk/ make menuconfig В этом разделе находим наш проект mr и выбираем режим, собирать отдельным пакетом(выделяем его символом M) Выходим из приложения с сохранением настроек Перед каждым следующим компилированием нужно выполнить команду Код:
make clean Или еще можно использовать команду Код:
make dirclean теперь собираем отдельно наш пакетик: Код:
make package/mr/compile V=s ~/openwrt/trunk/bin/ar71xx/packages Компиляция отдельного пакета происходит достаточно быстро, несколько секунд. Если при компиляции у Вас выскочит ошибка: *** missing separator. Stop. Это означает что в файле Makefile, перед командами внутри define, нужно заменить пробелы на TAB Вот еще статьи на русском по сборке прошивки и пакетов под роутер: Компиляция/портирование своей программы под OpenWRT Краткая инструкция по сборке OpenWRT Сборка собственных приложений (пакетов) для OpenWrt Допиливание MR3020... OpenWrt Buildroot – Использование Wiki openwrt Код:
Barrier Breaker Barrier Breaker 14.07: sudo svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker barrier_breaker_14.07 Attitude Adjustment Attitude Adjustment laatste versie: sudo svn co svn://svn.openwrt.org/openwrt/branches/attitude_adjustment attitude_adjustment Attitude Adjustment v12.09: sudo svn co -r 36088 svn://svn.openwrt.org/openwrt/branches/attitude_adjustment attitude_adjustment_12.09 Attitude Adjustment v12.09 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09 attitude_adjustment_12.09 Backfire Backfire laatste versie: sudo svn co svn://svn.openwrt.org/openwrt/branches/backfire backfire Backfire v10.03.1: sudo svn co -r 29594 svn://svn.openwrt.org/openwrt/branches/backfire backfire_10.03.1 Backfire v10.03.1 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03.1 backfire_10.03.1 Backfire v10.03: sudo svn co -r 20742 svn://svn.openwrt.org/openwrt/branches/backfire backfire_10.03 Backfire v10.03 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/backfire_10.03 backfire_10.03 Kamikaze Kamikaze laatste versie: sudo svn co svn://svn.openwrt.org/openwrt/branches/8.09 kamikaze Kamikaze v8.09.2: sudo svn co -r18961 svn://svn.openwrt.org/openwrt/branches/8.09 kamikaze_8.09.2 Kamikaze v8.09.2 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/8.09.2 kamikaze_8.09.2 Kamikaze v8.09.1: sudo svn co -r16279 svn://svn.openwrt.org/openwrt/branches/8.09 kamikaze_8.09.1 Kamikaze v8.09.1 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/8.09.1 kamikaze_8.09.1 Kamikaze v8.09: sudo svn co -r14547 svn://svn.openwrt.org/openwrt/branches/8.09 kamikaze_8.09 Kamikaze v8.09 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/8.09 kamikaze_8.09 Kamikaze v7.06: sudo svn co svn://svn.openwrt.org/openwrt/tags/kamikaze_7.06 kamikaze_7.06 Kamikaze v7.07: sudo svn co svn://svn.openwrt.org/openwrt/tags/kamikaze_7.07 kamikaze_7.07 Kamikaze v7.09: sudo svn co svn://svn.openwrt.org/openwrt/tags/kamikaze_7.09 kamikaze_7.09 White Russian White Russian laatse versie: sudo svn co svn://svn.openwrt.org/openwrt/branches/whiterussian white_russian White Russian 0.9: sudo svn co -r6268 svn://svn.openwrt.org/openwrt/branches/whiterussian white_russian_0.9 White Russian 0.9 met alle fixes en toevoegingen tot nu toe (TAG): sudo svn co svn://svn.openwrt.org/openwrt/tags/whiterussian_0.9 white_russian_0.9 Код:
trunk git clone git://git.openwrt.org/openwrt.git 14.07 branch (Barrier Breaker) git clone git://git.openwrt.org/14.07/openwrt.git 12.09 branch (Attitude Adjustment) git clone git://git.openwrt.org/12.09/openwrt.git Packages feed: ChangeLog git clone git://git.openwrt.org/12.09/packages.git Последний раз редактировалось andr128; 31.10.2013 в 23:17. |
03.02.2013, 23:26 | #2 | |
Junior Member
Регистрация: 02.02.2013
Адрес: Смоленск
Сообщений: 27
Вес репутации: 0 |
Здравствуйте andr128!
Спасибо Вам за то что помогаете мне со сборкой прошивки для TL-MR3040. Мне даже немного не удобно, что Вы тратите на меня столько своего времени. Я бы мог попробовать пособирать сборки самостоятельно, если бы этот Ваш гайд начался с описания подготовки инструмента. У меня машина с window 7. Как водрузить на неё и какую виртуальную машину мне самому понять сложно. И что делать до того момента как удастся написать Цитата:
|
|
04.02.2013, 11:35 | #3 |
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Я никогда ни ставил виртуальную машину на windows (не хочу, не люблю, и прочее..)
по этому вопросу ищите инфу сами (vmware, virtual pc). Для сборки прошивки очень легко поставить например Ubuntu. Нужно выделить свободный раздел на HDD. W7 не пострадает. Появится доп. меню загрузки. При этом вы "пощупаете" настоящий линукс. Последний раз редактировалось andr128; 04.02.2013 в 11:49. |
05.02.2013, 13:30 | #5 |
Junior Member
Регистрация: 02.02.2013
Адрес: Смоленск
Сообщений: 27
Вес репутации: 0 |
Установил Ubuntu 12.10 на отдельный раздел.
Собрал прошивку для TL-MR3020, проверил на роутерте - всё запустилось. Следующий шаг - сборка для TL-MR3040. Почему-то файловые менеджеры типа crusader и filezilla не хотят соединятся с роутером, хотя из под windows 7 winscp соединяется нормально.Неудобно постоянно перегружаться на винду для заливки файлов на роутер. Putty коннектиться из под ubuntu нормально. Посоветуйте в чём может быть прична? |
05.02.2013, 13:31 | #6 |
Junior Member
Регистрация: 02.02.2013
Адрес: Смоленск
Сообщений: 27
Вес репутации: 0 |
И ещё вопрос - есть ли виртуальная машина, эмулирующая роутер, чтобы на ней обкатывать прошивки?
|
30.09.2013, 22:23 | #7 | |
Junior Member
Регистрация: 07.04.2013
Сообщений: 14
Вес репутации: 0 |
Цитата:
не роутер конечно но хотябы не надо дергать питание да и работает несколько быстрее |
|
05.02.2013, 22:05 | #8 | ||
Senior Member
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1605 |
Цитата:
winscp использует код putty т.е. это как бы надстройка вернее GUI. по ssh в терминале ubuntu вы можете спокойно заходить на роутер. набрав: Код:
sudo ssh [email protected] Цитата:
Мое мнение. Реальное железо есть реальное и лучше испытывать на нем. |
||
05.02.2013, 22:21 | #9 | |
Junior Member
Регистрация: 02.02.2013
Адрес: Смоленск
Сообщений: 27
Вес репутации: 0 |
Никак не удаётся собрать прошивку для MR3040 так как это делается для MR3020. Проблемы начинаются уже при вводе команды make preq
Цитата:
|
|
06.02.2013, 17:06 | #10 | ||
Junior Member
Регистрация: 02.02.2013
Адрес: Смоленск
Сообщений: 27
Вес репутации: 0 |
Цитата:
Сейчас всё сделал с нуля по гайду и получил результат: 1. Прошивка на ройтере MR3020 компилируется без ошибок при включенных опцией M пакетах kmod-usb-uhci, kmod-usb-ohci, block-mount и всё в общемто. 2. Устанавливается , появляется окно dropbox, пароль вводится, переходит в ssh. 3. При попытке проинсталировать пакет kmod-usb-uhci опять таже ошбка Цитата:
Последний раз редактировалось Константин; 06.02.2013 в 17:11. |
||
Здесь присутствуют: 6 (пользователей: 0 , гостей: 6) | |
|
|