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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2012, 19:39   #1
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию Кросс компиляция прошивки 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
Создаем папку openwrt и переходим в нее
Код:
mkdir ~/openwrt
cd ~/openwrt
Получаем исходники для нашей версии OpenWrt (33482)
Код:
svn co svn://svn.openwrt.org/openwrt/trunk/@33482
svn update
переходим в каталог trunk
Код:
cd trunk
И выполняем
Код:
./scripts/feeds update -a
./scripts/feeds install -a
Конфигурирование сборки, включая проверку зависимостей и условий для окружения сборки
Код:
make defconfig
Потом проверим установленные компоненты:
Код:
make prereq
И мы узнаем каких пакетов не хватает у нас в операционной системе

Запускаем приложение для конфигурации
и выбираем цель - наш роутер mr3020
Код:
make menuconfig
Название: menuconfig.png
Просмотров: 19927

Размер: 4.3 Кб
остальные настройки пока не трогаем выходим и сохраняем настройки
компилируем прошивку:
Код:
make
или с более подробным выводом
make V=s
если Вы уже прокомпилировали хотя бы один раз и внесли изменения, 
то что бы избежать полного компилирования с нуля используйте 
make V=99
Процесс компиляции идет достаточно долго около 1 часа. В процессе компиляции будет компилироваться не только прошивка, но и инструменты для кросс компиляции. Поэтому этот процесс нужно пройти хотя бы раз.
Если у Вас процессор двухядерный, то можно ускорить компиляцию добавив параметр -J 3
Код:
make -j 3 V=s
Компиляция своих приложений
Для создания своих пакетиков *.ipk переходим в папку package
Код:
cd ~/openwrt/trunk/package
и создаем папку под наш проект (у меня он называется mr), а в нем еще одну папку src
Код:
mkdir -p mr/src
Создаем в папке ~openwrt/trunk/package/mr файл Makefile
Содержимое 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))
Файлы для компиляции на Си кладем в созданную нами папку src
Код:
 ~/openwrt/trunk/package/mr/src/mr.c
более наглядно это выглядит так
Нажмите на изображение для увеличения
Название: path1.png
Просмотров: 1138
Размер:	14.8 Кб
ID:	727
переходим в каталог trunk и запускаем конфиг компиляции
Код:
cd ~/openwrt/trunk/
make menuconfig
выбираем Utilities
Название: menuconfig_util.png
Просмотров: 19833

Размер: 2.1 Кб
В этом разделе находим наш проект mr и выбираем режим, собирать отдельным пакетом(выделяем его символом M)
Нажмите на изображение для увеличения
Название: menuconfig_util_mr.png
Просмотров: 822
Размер:	5.1 Кб
ID:	730
Выходим из приложения с сохранением настроек

Перед каждым следующим компилированием нужно выполнить команду
Код:
make clean
Команда удаляет содержимое каталогов bin и build_dir.
Или еще можно использовать команду
Код:
make dirclean
Производится полная очистка

теперь собираем отдельно наш пакетик:
Код:
make package/mr/compile V=s
готовый пакетик ищем в папке:
~/openwrt/trunk/bin/ar71xx/packages
Нажмите на изображение для увеличения
Название: ipk.png
Просмотров: 896
Размер:	9.0 Кб
ID:	726
Компиляция отдельного пакета происходит достаточно быстро, несколько секунд.
Если при компиляции у Вас выскочит ошибка: *** 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.
andr128 вне форума   Ответить с цитированием
 


Здесь присутствуют: 117 (пользователей: 0 , гостей: 117)
 

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

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

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


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


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