/* СТИЛИ */

[#DCBEELINEKZ] БИЛАЙН ХАБЫ КАЗАХСТАН

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » [#DCBEELINEKZ] БИЛАЙН ХАБЫ КАЗАХСТАН » [OPENWRT/LEDE ] » Убрать, удалить, оптимизировать прошивку OpenWRT/LEDE


Убрать, удалить, оптимизировать прошивку OpenWRT/LEDE

Сообщений 1 страница 18 из 18

1

OpenWRT — отключение ipv6

Исключаем поддержку IPv6 из прошивки OpenWRT

Как прошивку собирать мы говорили в предыдущей статье. Теперь снова открываем конфигуратор сборки OpenWRT, если еще не запущен

Код:
make menuconfig

И отключаем следующие пункты в этом же порядке, иначе из-за зависимостей отключение может быть заблокировано.

Код:

1.Global build settings  --->
      *** Package build options ***
  [ ] Enable IPv6 support in packages
2.Base system  --->  <*> busybox  --->
  [*] Customize busybox options
      *** Applets ***
      Networking Utilities  --->
        [ ] Enable IPv6 support
3.Kernel modules  --->  Netfilter Extensions  --->
  < > kmod-nf-ipt6	#  в v >= 18.06.0 не всегда снимается автоматом вместе с п.1
4.Libraries  --->  Firewall  --->
  < > libip6tc
5.Network  --->
  < > odhcpd
  < > odhcpd-ipv6only	 # в v >= 18.06.0 вместо odhcpd 


OpenWRT — отказываемся от средств отладки

Еще одна небольшая заметка про уменьшение размера собираемой вручную прошивки OpenWRT В этот раз мы отключим информацию для отладки. Это позволит сэкономить еще 64 kb

Отключение Debug-инфо и DebugFS

Данные инструменты абсолютно бесполезны большинству пользователей, а существует для разработчиков ПО.
Итак, запускаем конфигуратор OpenWRT

Код:
make menuconfig

И отключаем:

Код:
Kernel modules
   wireless drivers
      [*] kmod-mac80211
         [ ] export mac80211 internal in DebugDS
Global build settings
   [ ] Compile the kernel with Debug FileSystem enabled
   [ ] Compile the kernel with debug information

Теперь после сборки освободится еще 64 kb места для установки своих пакетов прямо в прошивку.

+ Полезное от DCBEELINEKZ

Разблокирование 12, 13 и 14-го каналов wifi в openwrt

Kernel modules-->Wireless Drivers-->kmod-ath-->configuration <*> Force Atheros drivers to respect the user's regdomain settings

http://zetslash.blogspot.com/2017/02/openwrt.html
 

Как без программатора и usb-uart прошить u-boot:

Закидываем в папку наш загрузчик, через программу WinSCP в /tmp для роутера например 740n это u-boot-ar9331.bin
Переписываем загрузчик на наш: mtd -r write /tmp/u-boot-ar9331.bin u-boot

В обычной прошивке запись u-boot заблокированы.
Если надо поменять одну из частей, надо собирать самому, меняя как показано
В openwrt/target/linux/ar71xx/files/drivers/mtd/tplinkpart.c
и поменять "MTD_WRITEABLE" на "0"

Код:
parts[0].name = "u-boot";
parts[0].offset = 0;
parts[0].size = offset;
parts[0].mask_flags = 0;

https://4pda.ru/forum/index.php?s=&showtopic=447586&view=findpost&p=71037026

Выбираем оптимизацию — скорость или размер

Если для Вашей конфигурации памяти в устройстве точно хватит, то есть смысл поменять оптимизацию по умолчанию для меньшего размера на оптимизацию для лучшей производительности.

Код:
[*] Advanced configuration options (for developers)  --->
   [*] Target Options  --->
      Target Optimizations

Здесь первый параметр -Os — и есть флаг оптимизации размера. Поменяем его на -O2. Таким образом размер занимаемой прошивки вырастет процентов на 5-10, как и скорость работы. В принципе не очень и вырост в производительности, но в случае с такими медленными по современным меркам процессорами — уже приятно.

Включение дефолтного конфига в прошивку

* Просто кладём все файлы в openwrt/files (нужно сохранить структуру). Т.е. если вы хотите зашить в прошивку файл /etc/wireless, то надо создать файл files/etc/wireless
* после чего пере собираем прошивку: make

0

2

https://vk.com/@dchub_router-ubrat-lish … penwrtlede

0

3

Редактор Nano

Если место Вы экономить не планируете, а с редактором vi, идущем по умолчанию в OpenWRT у вас созревают конфликты, ибо не самое удобное творение человечества, то есть смысл так же добавить в состав прошивки редактор Nano. Хотя он и не очень то и много места займет в Вашем устройстве.

Код:
Utilities  --->
   [*] Editors  --->
      <*> nano

0

4

Скопировал со своего роутера, подчистил в ручную
Вот минимальный список пакетов

Код:
base-files Remove
busybox Remove
coreutils Remove
coreutils-stty Remove
dnsmasq Remove
dropbear Remove
iw Remove
jshn Remove
kernel Remove
kmod-ath Remove
kmod-ath9k Remove
kmod-ath9k-common Remove
kmod-cfg80211 Remove
kmod-crypto-aes Remove
kmod-crypto-arc4 Remove
kmod-crypto-core Remove
kmod-crypto-hash Remove
kmod-crypto-manager Remove
kmod-gpio-button-hotplug Remove
kmod-input-core Remove
kmod-leds-gpio Remove
kmod-ledtrig-default-on Remove
kmod-ledtrig-netdev Remove
kmod-ledtrig-timer Remove
kmod-lib-crc-ccitt Remove
kmod-lib-crc16 Remove
kmod-mac80211 Remove
kmod-nls-base Remove
kmod-usb-core Remove
kmod-usb2 Remove
libblobmsg-json Remove
libc Remove
libgcc Remove
libjson-c Remove
libjson-script Remove
libnl-tiny Remove
libpthread Remove
libubox Remove
libubus Remove
libuci Remove
mtd Remove
netifd Remove
opkg Remove
procd Remove
uboot-envtools Remove
ubox Remove
ubus Remove
ubusd Remove
uci Remove
uhttpd Remove
wpad-mini Remove
zlib Remove

https://cyber-place.ru/showpost.php?p=2 … ostcount=6

0

5

Включать wifi по умолчанию в сборке OpenWrt

самое простое - создать папку files и закинуть туда готовый файл /etc/config/network перед сборкой (с путями)

https://4pda.to/forum/index.php?showtop … p=82428534

https://4pda.to/forum/index.php?showtop … p=92915673

Для включения wifi

Создать файл с правами 0664
openwrt/package/base-files/files/etc/uci-defaults/99_wireless_on

Код:
#!/bin/sh

m1=$(cat /sys/class/net/wlan0/address | awk -F':' '{ print $5 }' | awk '{print toupper($0)}')
m2=$(cat /sys/class/net/wlan0/address | awk -F':' '{ print $6 }' | awk '{print toupper($0)}')

uci -q batch <<-EOF > /dev/null
	set wireless.@wifi-iface[0].ssid='OpenWrt-$m1$m2'
	set wireless.@wifi-device[0].disabled=0
	commit wireless
EOF

exit 0

0

6

Отредактировано DCBEELINEKZ (15.01.24 07:54)

0

7

Изменения в конфигурации для уменьшения размера прошивки

Код:
CONFIG_KERNEL_PRINTK=n
Global build settings / Kernel build options / Enable support for printk

CONFIG_KERNEL_CRASHLOG=n
Global build settings / Kernel build options / Crash logging

CONFIG_KERNEL_KALLSYMS=n
Global build settings / Kernel build options / Compile the kernel with symbol table information

CONFIG_KERNEL_DEBUG_INFO=n
Global build settings / Kernel build options / Compile the kernel with debug information

CONFIG_KERNEL_ELF_CORE=n
Global build settings / Kernel build options / Enable process core dump support

CONFIG_KERNEL_MAGIC_SYSRQ=n
Global build settings / Kernel build options / Compile the kernel with SysRq support

CONFIG_KERNEL_PRINTK_TIME=n
Global build settings / Kernel build options / Enable printk timestamps

CONFIG_PACKAGE_MAC80211_DEBUGFS=n
Kernel modules / Wireless Drivers / kmod-mac80211 / Export mac80211 internals in DebugFS

CONFIG_PACKAGE_MAC80211_MESH=n
Kernel modules / Wireless Drivers / kmod-mac80211 / Enable 802.11s mesh support

CONFIG_STRIP_KERNEL_EXPORTS=y
Global build settings / Strip unnecessary exports from the kernel image

CONFIG_USE_MKLIBS=y
Global build settings / Strip unnecessary functions from libraries

CONFIG_EARLY_PRINTK=n
Kernel hacking / Early printk This menu is available only via make kernel_menuconfig

0

8

Советую при сборке использовать не какой-то mate-terminal, а, к примеру tmux. Будет не очень приятно, если за время сборки, к примеру, упадут иксы.

Еще один нюанс. Чтобы после прошивки поднялась сеть, в прошивке должны быть конфиги настройки сети. Однако, для некоторых роутеров при сборке прошивки соответствующий конфиг не генерируется. В результате, роутер вроде-бы работает, но сеть не поднялась и мы получаем прекрасно работающий кирпич. Я, когда в первый раз собирал прошивку под свой tl-mr3220, столкнулся с этим и потом довольно долго искал нужный кабель и паял так называемый serial hack adapter, чтобы достучатся до железки.
Теперь о формате конфигов. В OpenWrt используется самопальный собственный формат конфигов UCI, общий для всего. Насколько я понял, они потом преобразуются в нормальные. Он, как мне кажется, достаточно хорошо документирован, так что останавливатся на нем не буду. Скажу только, что хранятся они в папке /etc/config/.
Чтобы добавить какие-то свои файлы, в том числе и конфиги, в прошивку, в папке с Buildroot нужно создать папку files и положить в нее нужные файлы. Например, тот же конфиг сети я положил в файл ./files/etc/config/network . Вот и сам конфиг для tl-mr3220 v1.2:

Код:
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option _orig_ifname 'eth0 radio0.network1'
        option _orig_bridge 'true'
        option ifname 'eth0'
        option ipaddr '192.168.5.1'
        option gateway '192.168.5.2'
        option broadcast '192.168.5.255'
        option dns '192.168.5.2'

config switch
        option name 'eth0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'eth0'
        option vlan '1'
        option ports '0 1 2 3 4'

Его я извлек из прошивки, взятой с сайта OpenWrt и немножко подправил. Что значат поля _orig_ifname и _orig_bridge не спрашивайте, сам не знаю. Отмечу, что этот конфиг предусматривает, что роутер торчит в одну и ту же сеть всеми своими портами, а не, например, каким-то одним в интернет.

https://habr.com/ru/companies/cjdns/articles/202536/

0

9

Из прошивки можно много чего повыкидывать, как пример:
#
Параметры компиляции

   

Код:
Включаем Strip
    Отключаем Debug
    Отключаем поддержку Mesh-сетей
    Отключаем поддержку IPv6
    Меняем размер блока SquashFS
    Удаляем информацию об установленных пакетах

Далее, с осторожностью, по мере нужности:
Какие пакеты можно удалить

   

Код:
OPKG Package Manager
    Dropbear — Сервер SSH
    uclient-fetch
    WPAd — демон, отвечающий за Wi-Fi
    iwinfo — информация о WiFi в командной строке
    USB 1.x aka OHCI

https://4pda.to/stat/go?u=https://www.denisyuriev.ru/linux/openwrt-linux/rukovodstvo-po-umensheniyu-razmera-proshivki-openwrt/&amp;e=69211075

OPKG по определению не нужен, раз уж Вы собираете прошивку сами, то и нужный пакет сумеете в нее включить при сборке.
Насчет сервера SSH я бы поспорил, особенно, если без LuCi, всё зависит от опасности среды, там на замену предлагается обычный телнет, так что, на Ваш выбор.
WPAd заменяется WPAd-mini, но автор предлагает и его заменить пакетами, разработка которых оставляет желать лучшего. Я, конечно не специалист, но, всё таки, дыры по безопасности надо закрывать, а кто их закрывает, если пакеты не обновляются, вопрос риторический.
Ну и, USB, если нет в роутере, удалять однозначно, если есть, то определиться, для каких целей и выбрать только нужные пакеты.

Далее, STRIP и DEBUG нормально так вычищает, а Вы как раз боретесь за размер... Однако, учтите, что без дебага, некоторые глюки, если таковые будут, Вы можете и не отловить.
Подводя итог: Мне помогло, места осталось прилично.

Отредактировано DCBEELINEKZ (16.01.24 06:37)

0

10

По умолчанию размер блоков squashfs равен 256kib (target моего роутера, за другие не скажу), чтобы засунуть как можно больше пакетов, значение меняют на 512 или 1024kib. Последний гарантирует максимальное сжатие файловой системы и почти мегабайт свободы, но работа с такими блоками сильно нагружает процессор. На сторонних сборках(squashfs1024), которые я испытывал, роутер часто уходит в ребут, на собственных "блинчиках" - реже, но процик горит (iptv захлебывается). Поэтому собрал без сжатия.
https://ds-blobs-1.cdn.devapps.ru/13849519.jpg

https://4pda.to/forum/index.php?showtop … p=76983890

0

11

Можно выпилить uhttpd и поставить нормальный lighttpd.

0

12

Как найти пакеты?

Нахдясь в menuconfig нажимаете '/' и вводите в строку поиска имя пакета или параметра (можно неполное), в окне с результатами поиска слева от каждого результата будет отображаться цифра, нажав которую перейдёте к соответствующему пункту внутри menuconfig:

https://ds-blobs-1.cdn.devapps.ru/23526117/menuconfig_search.png
https://4pda.to/forum/index.php?showtop … =108513579

0

13

https://forum.openwrt.org/t/discussion- … ages/19146
There is https://openwrt.org/faq/before_installa … save_space 48, but it's also possible to do some extra tweaking using make menuconfig and make kernel_menuconfig. I have been testing various settings with my Asus RT-N56U. Here is a list of things I have disabled seemingly without breaking anything:

Global build settings / Kernel build options / Crash logging
CONFIG_KERNEL_CRASHLOG
Global build settings / Kernel build options / Support for paging of anonymous memory (swap)
CONFIG_KERNEL_SWAP
Global build settings / Kernel build options / Compile the kernel with symbol table information
CONFIG_KERNEL_KALLSYMS
Global build settings / Kernel build options / Compile the kernel with debug information
CONFIG_KERNEL_DEBUG_INFO
CONFIG_KERNEL_DEBUG_KERNEL (unset by disabling CONFIG_KERNEL_INFO)
Global build settings / Kernel build options / Enable process core dump support
CONFIG_KERNEL_ELF_CORE
CONFIG_KERNEL_COREDUMP (unset by disabling CONFIG_KERNEL_ELF_CORE)
Global build settings / Kernel build options / Compile the kernel with SysRq support
KERNEL_MAGIC_SYSRQ
Kernel modules / Wireless Drivers / kmod-mac80211 / Export mac80211 internals in DebugFS
PACKAGE_MAC80211_DEBUGFS
Kernel modules / Wireless Drivers / kmod-mac80211 / Enable 802.11s mesh support
PACKAGE_MAC80211_MESH
I also tested disabling printk, but the kernel log disappeared completely, and disabling kernel debug fs made the overlay file system disappear so it used a temporary RAM FS instead.

Things that can be enabled to save space:

Global build settings / Strip unnecessary exports from the kernel image
CONFIG_STRIP_KERNEL_EXPORTS=y
Global build settings / Strip unnecessary functions from libraries
CONFIG_USE_MKLIBS=y
On systems with little RAM it may help to enable these:

Base system
PACKAGE_zram-swap
Base system / procd Configuration
PROCD_ZRAM_TMPFS
Increase block size to improve compression:

Target Images / squashfs / Block size
TARGET_SQUASHFS_BLOCK_SIZE=256
If you are low on RAM you should also run make kernel_menuconfig and set fragments cached = 1, especially if you increased the block size.

(Не нашёл)
File systems / Miscellaneous filesystems / Additional option for memory-constrained systems / Number of fragments cached
SQUASHFS_EMBEDDED=y
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=1

The savings aren't radical. Maybe 100-300 KB in total, but sometimes that's what's needed. I hope others will add their suggestions about what can be removed or information about what bad may happen if you do. Maybe I'll write a separate wiki page about optimizations later.

0

14

3.3 Конфигурация сборки (menuconfig)
Наверное самая сложная и длинная часть. Конфигурировать придётся много, часто, и методом тыка определять влезет столько пакетов в прошивку или нет. (Если не влезет, то файлы с прошивкой не появятся в папке bin/target/xxx а в консоли будет сообщение типа overhead by 20597bytes. Чтобы наловчиться и чувствовать размеры пакетов тебе придётся раз 10-15 пересобрать прошивку. Но я постараюсь ниже изложить основные пункты меню, на которые стоит обратить внимание, а также размер, который можно освободить если снять галочку. (надеюсь ты разберёшься в подуровнях меню.).
Навигация: [ESC][ESC] - назад. [SPACE] - отметить. [ENTER] - перейти\выбрать.
Поехали:
=Target System - Тут вы должны знать таргет своего роутера (смотреть в toh на сайте OpenWRT)
=Subtarget - Обычно это "Devices with small flash" для 4МБ и "Generic" для 8+ МБ
=Target Profile - Сдесь ищете вашу модель роутера
=Target Images - Настройка образа прошивки
==ramdisk - память в ОЗУ
==-compression [gzip] - тип сжатия рамдиска. Не знаю работает ли и есть ли смысл, но ставлю gzip
==-squashfs [1024] - размер блока. по умолчанию 1024 (раньше было 256). Чем больше блок - тем больше пакетов влезет, но больше нагрузка на процессор. Короче если не знаешь зачем это - не лезь!
=Global build settings
==Kernel build options
==-[ ] Enable support for printk
==-[ ] Crash logging
==-[ ] Compile the kernel with debug filesystem enabled - снимается только после снятия галочки в 8012.11 -> DebugFS . Придётся вернуться за ней.
==-[ ] Compile the kernel with SysRq support
==-[ ] Enable printk timestamps
=-[*] Strip unnecessary exports from the kernel image
=-[*] Strip unnecessary functions from libraries
=Base system
==busybox
===[*] Customize busybox options
====Shells
====-[*] Optimize for size instead of speed | TODO: Узнать сколько экономит
====System Logging Utilities
====-[ ] logger - зачем он?
==< > logd - Зачем нам логи? | TODO: Узнать сколько экономит
==< > opkg - Менеджер пакетов. ~86KB | TODO: Узнать сколько экономит
=Kernel modules
==Wireless Drivers
===kmod-ath
===-[ ] Enable DFS support - Чтото про Debug file system. | TODO: Узнать сколько экономит
===-[ ] Support for Ubiquiti UniFi Outdoor+ access point - Незнаю зачем, но отключу | TODO: Узнать сколько экономит
===kmod-mac80211
===-[ ] Export mac80211 internals in DebugFS - Помогает снять галочку выше (в Kernel Build options) | TODO: Узнать сколько экономит
===-[ ] Enable 802.11s mesh support - поддержка Mesh-сети. Не пробовал. Неужели работает? | TODO: Узнать сколько экономит, работает ли, и как настраивать
=Libraries
==<*> libustream-mbedtls - Библиотека для работы OpenVPN. Зависимость: SSL->libmbedtls (148KB). снимается. | TODO: Узнать сколько экономит
=LuCI
==Collections
===<*> luci - Гуй
==Modules
==-[*] Minify Lua sources
==-[*] Minify JavaScript sources
==-[*] Minify CSS files
===Translations
===-<*> Russian
==Applications
==-<*> luci-app-adblock
==-< > luci-app-aria2
==-<*> luci-app-ddns
==-< > luci-app-dnscrypt-proxy
==-< > luci-app-https-dns-proxy
==-< > luci-app-mwan3
==-< > luci-app-noddos
==-<*> luci-app-openvpn
==-<*> luci-app-sqm
==-<*> luci-app-udpxy
==-< > luci-app-vnstat
==-< > luci-app-wifischedule
==-< > luci-app-wireguard
==-<*> luci-app-wol
=Network
==VPN
==-<*> openvpn-mbedtls
=-< > ppp
=--< > ppp-mod-pppoe
=--< > ppp-mod-pppol2tp

https://4pda.to/forum/index.php?showtop … ry84823119

0

15

6. Старый гайд
Мой топорный мануал по сборке OpenWRT :)
(если ты могёшь лучше\знаешь больше - пиши в лс!)
Короче раз ты читаешь сейчас прямо вот эти слова, прямо вот это, да это именно его, то я контроллирую твой мозг :) Расслабился? Пошли терять нервные клетки!
Итак, предположим, ты умеешь прошивать свой любимый роутер готовыми прошивками. Но идеальных нет, и тебе хочется сделать всё по красоте, для себя, любимого. Или же твой роутер настолько древний, что в теме на 4пда только вопросы как перепаять умершую память. Если я угадал - приступим!

ПОДГОТОВКА

0.0 Сначала тебе понадобится ПК. Или даже лучше - доступ к мощному серверу или халявный Google Cloud. Требования просты: Максимум процессора, средненько ОЗУ и минимум места. Примерно 8потоков\4ГБ ОЗУ\ 20ГБ диска будет достаточно. Больше - лучше.
\\время первой компиляции прошивки (когда компилируются ещё и сами компиляторы. внезапно. да? :) ) - может быть от 40минут до 1,5 часа. Скажем так, компиляция окружения это 70%, компиляция прошивки - 30%.
0.1 Устанавливаем Ubuntu. На железо/виртуалку/облако/WSL (в Windows 10. GUI нет). Любой вариант который тебя устроит (консоль или гуй). Я ставлю стандартную с графикой, ибо потом удобно через браузер заливать прошивки в телеграм. (Если есть вариант попроще, например указать сетевую папку или вообще место на облаке - пишите в ЛС!)
0.2 Значит теперь ты загрузился в убунту. Для начала поставим необходимые пакеты:
sudo apt-get install subversion git g++ libncurses5-dev zlib1g-dev gawk libssl-dev unzip make
0.3 Подготавливаем место. Идём в корень
cd ~/
Создадим корневую папку. (Предлагаю назвать её версией OpenWRT). В моём примере - 18062.
mkdir 18062
Переходим в папку
cd ~/18062
(Все команды оптом, для скорострелов)
cd ~/ && mkdir 18062 && cd ~/18062
Качаем Исходники
git clone git://github.com/openwrt/openwrt.git -b v18.06.2
Переходим в скачанную папку
cd ~/18062/openwrt
Обновляем (Feeds? что это?)
./scripts/feeds update -a
Устанавливаем Feeds
./scripts/feeds install -a
Проверяем зависимости
make prereq
И дальше должно открыться меню конфигурации. (Если не появилось - пишем make menuconfig)

2. НАСТРАИВАЕМ КОНФИГ
//Тут очень много текста и вариантов, поэтому я выбрал стиль "по мере поступления". Тоесть идём по пунктам вниз, попутно выставляя и снимая галочки.
Управление: [esc][esc] - назад. space - отметить. Enter - выбор/переход.
Обозначения: < > - галочка снята. <*> - Компиляция в прошивку. < M > - Компиляция в отдельный пакет.(Кто-нибудь, обьясните как оно работает).
В мануале ниже опции обозначены в КОНЕЧНОМ варианте, тоесть если у меня перед названием опции стоит <*> , а у вас < > - значит вам нужно поставить галочку. И наоборот, если у меня < > а у вас <*> - значит сделайте как у меня.
ТОЛЬКО! повторюсь, ТОЛЬКО! если вы уже освоились в сборке и хотите собрать прошивку с другим набором чем у меня, тогда - можете выставлять как вам удобно. Заодно и пишите в ЛС какие у вас получились размеры пакетов, зачем они, какой профит и т.д.
В примере я буду собирать прошивку для старичка WR741ND v2.4 . Для роутеров на чипах MediaTek надо выбирать Ramips (также у них немножко иные меню в выборе модели роутера и типа прошивки). Надеюсь с логикой у вас всё в порядке. Также стоит сказать, что для роутеров на MediaTek можно собрать прошивку Padavan (через скрипт PROMETHEUS.

Сначала выбираем Target System (Семейство процессора).
- Atheros AR7XXX/9xxx
Дальше Subtarget (Для роутеров с 4мб флеш - Devices with small flash)
- Devices with small flash
Потом Target Profile (Конкретно модель вашего роутера, либо Multiple Devices - ниже появится пункт где можно выбрать несколько устройств, или Default Profile (all drivers) - для вообще вех из списка. Я выбираю TL-WR741nd v2 (т.к. у меня v2.4). Хотя теоретически если начинка роутеров одинаковая - можно выбрать что-то соседнее или похожее (например если вашего роутера нет в списке, либо вы намеренно хотите прошить прошивку от "соседа". Например WR840n v4 и WR841nd v13 это одно и то же. Но этим мазохизмом можно заниматься только если точно уверен что ты делаешь и зачем.
- TL-WR741nd v2

Ну всё, дальше конфиги:

=Target Images (какой формат прошивки получить на выходе. нам ничего менять не нужно, ибо только squashfs. Также можно задать размер блока, но опять же, в нашем случае стандартный 256кб отлично подходит. (Менять можно только если ты спец. но тогда ты уже знаещь этот гайд наизусть и даже больше. Кстати напишите в ЛС на что он влияет и зачем его меняют!

=Global Build Settings (Ну вроде и так понятно. Общие настройки. Сдесь немного остановимся.
<*> Remove ipkg/opkg status data files in final images | UNK | Удалять какоё-то мусор от opkg
=Kernel build options
< > Enable support for printk | UNKNOWN | (Подскажите что это). Отключаем для економии ОЗУ.
< > Crash logging | UNK | Отключаем логи
< > Support for paging of anonymous memory (swap) | UNK | Отключаем SWAP. //Своп - это ОЗУ на диске, а у нас и так памяти нет свободной. Есть ещё похожая технология - Zram. Это сжатие в ОЗУ. Полезно, но на сжатие\разжатие тратится процессорное время.
< > Compile the kernel with debug information | UNK | Какой к чёрту дебаг?, если у нас либо соберётся, либо нет
< > Compile the kernel with SysRq support | UNK | (Что это?) Точно не знаю. но тоже скорее всего логи\дебаги. Отключаем.
< > Enable process core dump support | UNK | Дамп ядра? Зачем? Отключаем.
< > Enable printk timestamps | UNK | Printk Отключили, значит и метки времени для него нам не нужны :)
< > Enable IPv6 multicast routing | UNK | Мы будем вырезать IPv6 полностью, чтобы освободить место. Поэтому и мультикаст IPv6 (для IPTV) нам не нужен. Есть же нормальный IPv4.
< > Enable IPv6 support in packages | UNK | Массовый отключатель IPv6. //Автоматически снимаются и некоторые галочки IPv6 в конфигах.
<*> Strip unnecessary exports from the kernel image | UNK | Очищаем ненужный мусор из ядра
<*> Strip unnecessary functions from libraries | UNK | Очищаем ненужные функции из библиотек
=Base system
<*>= busybox. Core utilities for embedded Linux (Это и пункт меню тоже)
<*> Customize busybox options (включаем настройку бизибокса)
=Busybox Library Tuning (Сдесь ничего не меняем. Но тут настраиваются минимальная длинна пароля, качество шифрования MD5 и SHA и т.д. Помогите описанием в ЛС)
=Archival Utilities (Ничего не трогаем. ПОКА кто-то не обьяснит зачем мне в роутере поддерожка .gz , распаковки архивов и т.д. Если это нужно для работы системы - тогда норм. Если оно не используется - кандидат на удаление.!)
=Coreutils (Не трогаем). Сдесь настройки команд для ssh. Не знаю много ли они места занимают, но многими из них я вообще не пользуюсь. Например вычислением хэша или сортировкой файлов. Гуру, пособите :) вдруг отключение этих команд поможет уменьшить итоговый размер бизибокса (200кб).
=Console Utilities (Не трогаем). Clear и Reset нам слишком нужны?
=Debian Utilities (Не трогаем). Что делает Which?
=Editors | UNK | Всё что связано с редактированием текста. (Нужен ли sed? есть ли он в скриптах OpenWRT?
<*> vi | ~12kB | Редактор из АДА
=Finding Utilities (всё что относится к выводу каких-то переменных. и сортировке\обработке строк. (оно нам надо в прошивке?)
=Linux System Utilities (dmesg, hexdump, mkswap - можно удалить?)
=Networking Utilities (Настройка программ для сети) //Что из этого списка нам вообще не нужно?
< > Enable IPv6 support | UNK | Отключаем IPv6
=Shells (настройка командной строки)
<*> Optimize for size instead of speed | UNK | Я так понял это типа скомпилить сильнее, в ущерб скорости ORIG: Compile ash for reduced size at the price of speed
=System Logging Utilities (Логгирование)
< > logger | UNK | Он нам нужен вообще?
< > opkg. opkg package manager | 58.3 kB | (Удаляем менеджер приложений) //Не нужен, ибо на 4мб флеш мы и так пихаем невпихуемое, а лишние 58,3 КБ вовсе не лишние.
= Configuration
< > Mount /tmp using zram | UNK | Не трогаем. Использовать zram сжатие для раздела /tmp (он в оперативке). Нагружает процессор, но можно больше уместить в ОЗУ
< > zram-swap. ZRAM swap scripts | UNK | По идее - включение Zram. Гуру, просветите что за опция.
= Administration (Проги для администрирования)
< > htop. Interactive processes viewer | 51.2kB | Нормальный диспетчер задач :) ///Требует libncurses (147kB)
=Kernel modules
= Network Support (Тут всякие l2tp, pptp и т.д.)
= Other modules (Тут что-то о zram, кнопках и поддержке внешнего оборудования)
= USB Support (Модули для поддержки USB. Но нам не влезут. Гуру - напишите описание к пунктам в ЛС)
= Wireless Drivers (Всё что касается драйверов WiFi
-*- kmod-ath. Atheros common driver part (Это пункт меню)
< > Enable DFS support | UNK | Что это? Но советуют отключать для экономии места :)
-*- kmod-mac80211. Linux 802.11 Wireless Networking Stack (Это тоже меню)
< > Export mac80211 internals in DebugFS | UNK | (Что Это? Все советуюь отключать)
< > Enable 802.11s mesh support | UNK | (Это либо поддержка WiFI моста, либо бесшовного вайфая, который и так никто не использует. Гуру, хелп!
=Libraries (Библиотеки(драйвера)) //Пособите, может там есть ещё полезные плюшки?
<*> libustream-mbedtls. ustream SSL Library (mbedtls) | 4.7kB | Нужно. Включаем. (А для чего нужно?)
=LuCI (Графический интерфейс)
=Collections
<*> luci. LuCI interface with Uhttpd as Webserver (default) | UNK | WEB-интерфейс.
=Modules (Модули управления для ВЕБ-морды)
<*> Minify Lua sources | UNK | Сжимаем код
= Translations (Язык интерфейса в добавок к ENG).
=Applications (Плагины)
<*> luci-app-adblock. LuCI support for Adblock | 8.3 kB | Управление AdBlock
< > luci-app-ddns. LuCI Support for Dynamic DNS Client (ddns-scripts) | 20.4kB + 16kB | Поддержка DDNS
<*> luci-app-openvpn. LuCI Support for OpenVPN | 8,4 kB | OpenVPN Клиент
<*> luci-app-udpxy. LuCI Support for udpxy | 2.1kB | ВЕБ-конфигуратор для udpxy для IPTV
< > luci-app-wol. LuCI Support for Wake-on-LAN | UNK | Включение ПК через сетевую карту. Иногда полезно.
=Themes (Темы)
<*> luci-theme-bootstrap. Bootstrap Theme (default) | 12kB | Стандартная тема. Пишите в ЛС сколько занимают другие
=Protocols (Можно обавить протоколы. Например поддержка 3G или VNC.
=Network (Настройка сетевых инструментов. Есть вообще всё, от поддержки печати, до телефонии, впн и балансировки. Также тут есть модули блокировки рекламы, pppoe, udpxy и всего того, что можно настраивать через WEB-морду LuCI. Даже больше. Короче тут включаются именно сами пакеты (а в секции LuCI - только веб-плагины для настройки).
=VPN (Настройки ВПН)
<*> openvpn-mbedtls. Open source VPN solution using mbedTLS | 154kB | Нужно для работы OpenVPN
-*- adblock... Powerful adblock script to block ad/abuse domains by using DNS | 12kB | Adblock. Отмечается автоматом при выборе Adblock в секции LuCI. Но если Гуй не ставить - то надо отмечать. Тогда настраивать придётся через SSH.
<*> ppp. PPP daemon | 99kB | Демон PPPoE и др PPPoX
-*- udpxy. Convert UDP IPTV streams into HTTP streams | 29kB | udpxy

=Utilities (Различный софт). //Советуйте ништяки!
=Editors (редакторы)
< > nano. An enhanced clone of the Pico text editor | 58.3kB | Редактор от бога (после vi так точно кажется таким)

===============================Пакеты и их размеры:
- noddos
noddos 169kb
libc, libssp, libstdcpp, libnetfilter-conntrack, libcurl, libopenssl, openssl-util, ca-bundle, ca-certificates, wget, bzip2, libtins, ipset, libpthread, libyaml-cpp
luci-app-noddos 4kb
luci-i18-rus 2kb
- OpenVPN
luci-app-openvpn 8kb
luci-i18n-openvpn-ru 4kb
openvpn-mbedtls 158kb
kmod-tun 12kb
libmbedtls 138kb
liblzo 31kb
- adblock
adblock 11kb
luci-app-adblock 8kb
luci-i18n-adblock-ru
- ddns
ddns-scripts 15kb
luci-app-ddns 26kb
luci-i18n-ddns-ru 2.4.9-3
- udpxy
luci-app-udpxy 2kb
udpxy 30kb
- DNScrypt
dnscrypt-proxy 59kb
libsodium 85kb
dnscrypt-proxy-resolvers 9kb
luci-app-dnscrypt-proxy 6kb
luci-i18n-dnscrypt-proxy-ru 4kb
hostip 37kb (not need)
- SQM (balance)
luci-app-sqm 5kb
sqm-scripts 16kb
tc 134kb
libmnl 6kb
kmod-sched-core 45kb
kmod-sched-cake 16kB
iptables-mod-ipopt 28kB
iptables-mod-conntrack-extra 10kb
sqm-scripts-extra 3kb
- wavemon (wifi Monitoring) (needs libncurses 147kb) 28kB
- mwan3 (WAN multi)
mwan3 13kb
luci-app-mwan3 12kb
luci-i18n-mwan3-ru 6kb
ip,?
iptables-mod-conntrack-extra 11kb
iptables-mod-ipopt 28kb
kmod-ipt-conntrack-extra 12kb
kmod-ipt-ipopt 7kb
- nano 59kb (need libncurses 147kb)
- WakeOnLan
luci-app-wol 3kB
etherwake 6kb
luci-i18n-wol-ru 2kB
?wakeonlan 4 kb
- opkg 59kb
- kmod-sched-cake (balance traffic for cli) 17kb (SQM analog)
- mini DLNA server
minidlna 110kb
luci-app-minidlna 4kb
luci-i18n-minidlna-ru 4kb
- luci-app-upnp
luci-app-upnp 4kb
miniupnpd 50kb

//////////// Разные коменты из сети////////////////////////////
If you're not the only one doing P2P in your house: luci-app-upnp
If your printer does't have built in WiFi: luci-app-p910nd
If your ISP changes IPv6 prefix very often: luci-app-radvd and some tricks.
If you want lag free connectivity (like everybody else): luci-app-sqm
If you want to start your PC remotely for remote access: luci-app-wol
If you want VPN: openvpn-polarssl
If you want to access your router/PC/VPN remotely but ISP has locked you behind CG-NAT: miredo-client
squashfs block size 1024 Kib
dropbear - це ssh

Обычно я удаляю LuCI и связанные пакеты для максимального уменьшения размера прошивки OpenWRT, то есть, для освобождения нескольких сотен КБ пространства на флеш-накопителе маршрутизатора. Ниже приведен список пакетов, которые я обычно удаляю:
libiwinfo-lua liblua libubus-lua libuci-lua lua luci luci-app-firewall luci-base luci-lib-ip luci-lib-nixio luci-mod-admin-full luci-proto-ipv6 luci-proto-ppp luci-theme-bootstrap uhttpd uhttpd-mod-ubus

Removed the packages, -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd-ipv6only

kmod-ppp 21kb
luci-proto-ppp 3kb

0

16

Как оптимизировать сборку по скорости?

https://forum.archive.openwrt.org/viewt … p?id=30141

For enabling O2:

make menuconfig
Change OS to O2 in this box dialog:

Код:
Location:
  -> Advanced configuration options (for developers) (DEVEL [=y])
    -> Target Options (TARGET_OPTIONS [=y])
??????????????????????????????????? Target Options ?????????????????????????????
? ???????????????????????????????????????????????????????????????????????????? ?
? ? --- Target Options                                                       ? ?
? ? (-O2 -pipe -mips32 -mtune=mips32 -fno-caller-saves) Target Optimizations ? ? 
? ? [*]   Use software floating point by default                             ? ?
? ???????????????????????????????????????????????????????????????????????????? ?
????????????????????????????????????????????????????????????????????????????????   
?                          <Select>    < Exit >    < Help >                    ?   
????????????????????????????????????????????????????????????????????????????????

make kernel_menuconfig
Uncheck "optimize for size" in this box dialog:

Код:
Location:
    -> General setup
?????????????????????????????????? General setup ?????????????????????????????
? ?????^(-)????????????????????????????????????????????????????????????????? ?
? ?    [ ] Control Group support  --->                                     ? ?   
? ?    [ ] Namespaces support  --->                                        ? ?
? ?    [ ] enable deprecated sysfs features to support old userspace tools ? ?
? ?    [*] Kernel->user space relay support (formerly relayfs)             ? ?
? ?    [*] Crash logging                                                   ? ?
? ?    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support  ? ?
? ?    ()    Initramfs source file(s)                                      ? ?
? ?    [ ]   Support initial ramdisks compressed using gzip                ? ?
? ?    [ ]   Support initial ramdisks compressed using bzip2               ? ?
? ?    [*]   Support initial ramdisks compressed using LZMA                ? ?
? ?    [ ] Optimize for size                                               ? ?
? ?    [*] Configure standard kernel features (for small systems)  --->    ? ?
? ?        Kernel Performance Events And Counters  --->                    ? ?
? ?    [*] Enable VM event counters for /proc/vmstat                       ? ?
? ?????v(+)????????????????????????????????????????????????????????????????? ?
??????????????????????????????????????????????????????????????????????????????
?                        <Select>    < Exit >    < Help >                    ?
??????????????????????????????????????????????????????????????????????????????

Now make the world to produce your images

make V=99

0

17

Полное руководство для флэш-устройств емкостью 4 МБ – только для экспертов.

https://forum.openwrt.org/t/ultimate-gu … only/81860

https://openwrt.org/docs/guide-user/add … ving_space

0

18

Если собираете ath79 для устройства с заменённой флеш памятью, то кроме изменения размера в /target/linux/ath79/image/***.mk необходимо править разметку в соответствующих вашему устройству файлах в /target/linux/ath79/dts/
Например, для MR3220 v1 c 16 MB флеш необходимо в /target/linux/ath79/dts/ar7241_tplink.dtsi заменить

Код:
partition@20000 {
        compatible = "tplink,firmware";
        reg = <0x20000 0x3d0000>;
        label = "firmware";
    	};

    	partition@3f0000 {
        reg = <0x3f0000 0x10000>;
        label = "art";
        read-only;

на

Код:
partition@20000 {
        compatible = "tplink,firmware";
        reg = <0x20000 0xfd0000>;
        label = "firmware";
    	};

    	partition@ff0000 {
        reg = <0xff0000 0x10000>;
        label = "art";
        read-only;

Но лучше создать отдельный профиль для модернизированного устройства в /target/linux/ath79/image/***.mk со своими файлами в /target/linux/ath79/dts/

0


Вы здесь » [#DCBEELINEKZ] БИЛАЙН ХАБЫ КАЗАХСТАН » [OPENWRT/LEDE ] » Убрать, удалить, оптимизировать прошивку OpenWRT/LEDE