Компиляция своих приложений для openwrt

Сборка ОС Openwrt на ОС Ubuntu

Как добавить свои настройки в прошивку openwrt при кросс компиляции

Команды операционной системы OpenWRT

Устанавливаем пакеты для сборки:

sudo apt-get update
sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk flex quilt git-core mkisofs

Скачиваем исходники openwrt в папку:

~/openwrt/

 

Для создания своих пакетов *.ipk переходим в папку package:

cd ~/openwrt/package

Создаём каталоги для приложения:

mkdir -p program1/src

Создаём файл для сборки пакета:

cd ~/openwrt/package/program1

mcedit  Makefile

с содержимым:

#=====================================
# OpenWrt Makefile
#=====================================

include $(TOPDIR)/rules.mk

PKG_NAME:=program1
PKG_VERSION:=1
PKG_RELEASE:=1

PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/package.mk
define Package/program1
SECTION:=utils
CATEGORY:=Utilities
TITLE:=program1 — Test program
endef

define Package/program1/description
program1 — Test program
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)/program1.o $(PKG_BUILD_DIR)/program1.c
$(TARGET_CC) $(TARGET_LDFLAGS) -o $(PKG_BUILD_DIR)/program1 $(PKG_BUILD_DIR)/program1.o
endef

define Package/program1/install
$(INSTALL_DIR) $(1)/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/program1 $(1)/bin/
endef

$(eval $(call BuildPackage,program1))

Файлы для компиляции на C копируем в созданную нами папку src:

~/openwrt/package/program1/src/program1.c

Переходим в каталог openwrt и запустим конфигурацию:

cd ~/openwrt/
make menuconfig

Выбираем категорию Utilities, в ней мы увидим название нашей программы (program1), чтобы собрать отдельным пакетом нам нужно установить букву М напротив названия нашей программы (* — компиляция в прошивку). После выбора, сохраняем конфигурацию в выходим. Перед компилированием выполним команду:

make clean

Эта команда удаляет содержимое каталогов bin и build_dir.

Теперь соберём отдельно наш пакет:

make package/program1/compile V=s

После окончания сборки пакета, ищем его в папке:

~/openwrt/bin/тип процессора/packages