Skip to content

OpenWrt

Dmitry Ponyatov edited this page Sep 19, 2019 · 7 revisions

OpenWrt

установка базовой системы сборки

project$ mkdir gz ; wget -c -O gz/openwrt-18.06.4.tar.gz https://github.com/openwrt/openwrt/archive/v18.06.4.tar.gz
project$ tar zx < gz/openwrt-18.06.4.tar.gz
project$ ln -fs openwrt-18.06.4 openwrt

установка пакетов расширений

project$ cd openwrt
openwrt$ ./scripts/feeds update -a
openwrt$ ./scripts/feeds install -a

преконфигурация для проекта

project$ mkdir firmware
project$ echo "CONFIG_VERSION_NUMBER=\"`date +%y.%m.%d`\"" >> openwrt/.config
project$ echo "CONFIG_VERSION_CODE=\"`git rev-parse --short=4 HEAD`\"" >> openwrt/.config
project$ echo "CONFIG_BINARY_FOLDER=\"`pwd`/firmware\"" >> openwrt/.config
project$ echo "CONFIG_DOWNLOAD_FOLDER=\"`pwd`/gz\"" >> openwrt/.config
project$ cat config.br >> openwrt/.config

файл с полезными опциями

config.br

# задание целевой системы

CONFIG_TARGET_ramips=y
CONFIG_TARGET_ramips_rt305x=y

# \ эти опции необходимы для сборки, не отключать
CONFIG_TARGET_ROOTFS_INITRAMFS=y
TARGET_INITRAMFS_COMPRESSION_LZMA=y
CONFIG_TARGET_ROOTFS_SQUASHFS=y
CONFIG_PACKAGE_kmod-fs-squashfs=y
CONFIG_KERNEL_DEVTMPFS=y
CONFIG_KERNEL_DEVTMPFS_MOUNT=y
# /

# настройки для soft realtime и необслуживаемой системы

CONFIG_KERNEL_SWAP=n

# в логе загрузки полезно иметь метки времени
CONFIG_KERNEL_PRINTK_TIME=y

# отключение роутинга и ip.v6

CONFIG_KERNEL_IP_MROUTE=n
CONFIG_KERNEL_IPV6_MROUTE=n
CONFIG_IPV6=n

# опции сборки gnu toolchain (кросс-компилятора)

CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_EXTRA_BINUTILS_CONFIG_OPTIONS="--disable-nls --enable-lto"
CONFIG_EXTRA_GCC_CONFIG_OPTIONS="--disable-nls --enable-lto"
CONFIG_GCC_USE_GRAPHITE=y
CONFIG_GDB=y
CONFIG_MAKE_TOOLCHAIN=n

# настройки метаинформации по устройству

CONFIG_IMAGEOPT=y
CONFIG_VERSIONOPT=y
CONFIG_VERSION_FILENAMES=y
CONFIG_VERSION_CODE_FILENAMES=y
CONFIG_VERSION_DIST="myLinux"
CONFIG_VERSION_REPO=""
CONFIG_VERSION_HOME_URL="http://samara.itstep.ru"
CONFIG_VERSION_MANUFACTURER="supervasia"
CONFIG_VERSION_MANUFACTURER_URL="http://github.com/supervasia/myLinux"
CONFIG_VERSION_PRODUCT="noname Router"
CONFIG_VERSION_BUG_URL="[email protected]"

CONFIG_KERNEL_BUILD_USER="supervasia"
CONFIG_KERNEL_BUILD_DOMAIN="nomail.com"

# включаем пакетную систему и веб-интерфейс

CONFIG_PACKAGE_opkg=y
CONFIG_PACKAGE_uci=y

# несколько пакетов для примера

CONFIG_PACKAGE_gdbserver=m
CONFIG_PACKAGE_binutils=m

# поддержку WiFi вкомпиливаем в основную систему, а не в пакетах
# т.е. без сети пакеты не поставить

CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_kmod-rt2800-soc=y
CONFIG_PACKAGE_wpa-cli=y
CONFIG_PACKAGE_wpa-supplicant=y
CONFIG_PACKAGE_wpad-mini=y
CONFIG_PACKAGE_iwinfo=y

сборка

project$ cd openwrt
openwrt$ make menuconfig
openwrt$ make

openwrt/Makefile

OpenWrt: кросс-компиляция для RT5350

Clone this wiki locally