Lazarus project http://lazarus.iboards.ru/ |
|
OpenWrt/LEDE http://lazarus.iboards.ru/viewtopic.php?f=51&t=922 |
Страница 1 из 1 |
Автор: | Lazarus [ 12 июн 2021, 17:02 ] |
Заголовок сообщения: | OpenWrt/LEDE |
Создание прошивки OpenWrt/LEDE с помощью Image Generator (Image Builder) Самый простой способ самому собрать прошивку OpenWrt с необходимыми вам пакетами - это воспользоваться Image Builder. Преимущества данного способа перед сборкой из исходников с помощью Buildroot: 1) Простота; 2) Быстрая сборка в течение нескольких минут; 3) Совместимость с модулями из репозитория. Недостатки: 1) Поскольку сборка идет не из исходников, последние изменения в коде не попадут в сборку. Как и в случае сборки прошивки из исходных кодов, все манипуляции делаются на компьютере с linux (в нашем примере это будет Ubuntu). Для начала установим все необходимое. Открываем эмулятор терминала и выполняем команду Код: sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget Дальше я буду рассказывать на примере моего роутера NETGEAR WNDR4300 v.1. 1) На сайте https://openwrt.org/toh/hwdata/start ищем NETGEAR, потом находим свою модель, спускаемся в Dataentry и запоминаем значения Target: ar71xx-ath79 и Subtarget: nand. 2) На сайте https://downloads.openwrt.org выбираем нужную версию прошивки, например OpenWrt 19.07.7, далее выбираем по значениям Target и Subtarget из предыдущего пункта, в нашем случае это -> ar71xx -> nand. Убеждаемся, что в списке Image Files есть наш роутер, после чего из Supplementary Files скачиваем openwrt-imagebuilder-19.07.7-ar71xx-nand.Linux-x86_64.tar.xz (в вашем случае после openwrt-imagebuilder- окончание может быть другим). 3) Распаковываем архив в домашний каталог. В результате должен появиться каталог openwrt-imagebuilder-19.07.7-ar71xx-nand.Linux-x86_64, в котором мы и будем производить дальнейшие действия. Если у вас есть файлы настроек (например настройки сетевого подключения, transmission, samba, и т.п.) с уже установленной OpenWrt, их можно сразу внести в прошивку. Для этого создаем в openwrt-imagebuilder-19.07.7-ar71xx-nand.Linux-x86_64 каталог files и копируем в нее наши настройки. Для своего роутера в $HOME/openwrt-imagebuilder-19.07.7-ar71xx-nand.Linux-x86_64/files/etc/config/ я скопировал файлы dhcp, system, wireless. 4) Теперь можно приступать к сборке прошивки следующей командой Код: make image PROFILE=WNDR4300V1 PACKAGES="luci luci-i18n-base-ru luci-i18n-firewall-ru luci-i18n-opkg-ru luci-i18n-p910nd-ru luci-i18n-samba4-ru luci-proto-3g luci-proto-relay kmod-nf-nathelper-extra kmod-usb-net-asix kmod-usb-net-cdc-ether kmod-usb-net-rndis kmod-usb-storage usb-modeswitch 6to4 wpad hostapd-utils xl2tpd ppp-mod-pptp block-mount -wpad-mini -wpad-basic -wpad-basic-wolfssl" FILES=files/ где PROFILE=WNDR4300V1 - роутер, для которого мы собираем прошивку. Наименование профайлов смотрим командой Код: make info Ищем название, похожее на ваш роутер, и подставляем его в ключ PROFILE= Дальше с помощью ключа PACKAGES= задаем пакеты, которые нужно убрать или добавить в прошивке. В моем примере я добавил в прошивку пакеты: luci ... block-mount и убрал wpad-mini ... wpad-basic-wolfssl. Чтобы убрать пакет, перед ним нужно поставить знак минус. Ключ FILES=files/ задает месторасположение конфигурационных файлов, которые я скопировал выше. Данный ключ можно убрать, тогда конфигурационные файлы будут настроены по умолчанию. Собранную прошивку смотрим в каталоге bin. Ссылки: https://autohome.org.ua/12-openwrt/36-o ... agebuilder https://oldwiki.archive.openwrt.org/doc ... e.generate |
Автор: | Lazarus [ 04 май 2022, 21:59 ] |
Заголовок сообщения: | Re: OpenWrt/LEDE |
Сборка OpenWrt/LEDE из исходных кодов Все манипуляции делаются на компьютере с linux (в нашем примере будет для Debian/Ubuntu) Для начала установим все необходимое. Открываем консоль и копируем туда команды Код: sudo apt-get install subversion git Далее Код: sudo apt-get install g++ libncurses5-dev zlib1g-dev gawk libssl-dev unzip make Готово. Далее нужно скачать исходники прошивки Скачиваем необходимую нам ветку (в данном примере это OpenWrt v19.07.0) Код: git clone https://github.com/openwrt/openwrt.git -b v19.07.0 Далее, переходим в каталог с тем что у нас скачалось. ~/ (то есть home, он же домашний каталог) у нас создался каталог openwrt, нужно перейти в него для продолжения Код: cd ~/openwrt Теперь нужно выполнить Код: ./scripts/feeds update -a После завершения процесса обновления выполняем Код: ./scripts/feeds install -a Почти все готово, далее выполняем Код: make prereq Если все ок, то будет вот такое сообщение: Collecting package info: done Запуск интерфейса выбора компонентов прошивки (в последних версиях появляется автоматически после предыдущего шага) Код: make menuconfig Перемещение по пунктам осуществляется клавишами клавиатуры: вверх-вниз, пробел и esc. Выбираем Target System по аналогии с предыдущим постом. Target Profile можно выбрать для нужной модели, если оставить default profile, тогда будет создано множество скомпилированных прошивок для всех устройств сразу из профиля Target System. Отмечаем к установке <*> нужные пакеты, после чего сохраняем нашу конфигурацию кнопкой <Save> Для сборки прошивки OpenWRT/LEDE нужны свои встроенные в исходный код инструменты компиляции. Как правило они собираются и устанавливаются один раз, после чего сборка прошивок с разными пакетами происходит гораздо быстрее. Вводим команду и ждем результата: Код: make tools/install make toolchain/install Приступаем к сборке. Для использования 4-х ядер процессора команда будет такой: (число ядер +1, т.е. -j5) Код: make -j5 V=-1 Ждем, через полчаса-час находим свою прошивку в каталоге ~/openwrt/bin Если перед сборкой выбран правильный target, но прошивка получается размером больше допустимого для размера флеш-памяти вашего роутера - файлы *sysupgrade.bin и *factory.bin не будут созданы. Очистка Код: make clean Удаляет содержимое каталогов /bin и /build_dir. Код: make dirclean Удаляет содержимое каталогов /bin и /build_dir, а также дополнительно /staging_dir и /toolchain (инструментарий кросс-компиляции). Dirclean - основная команда для полной очистки. Код: make distclean Удаляет все что вы собрали или настроили, а также удаляет все загруженное из репозитория и исходные коды пакетов. ВНИМАНИЕ : Кроме всего прочего будет стерта ваша конфигурация сборки (.config), ваш набор инструментов (toolchain) и все прочие исходные коды. Используйте с осторожностью! Адреса используемых репозиториев находится в файле feeds.conf.default Ссылки: https://4pda.to/forum/index.php?showtopic=821686 https://openwrt.su/sborka/sborka-svoej- ... skhodnikov https://openwrt.org/ru/doc/howto/build |
Автор: | Lazarus [ 04 май 2022, 22:04 ] |
Заголовок сообщения: | Re: OpenWrt/LEDE |
О несовпадении хэша в версии ядра (vermagiс) при установке модулей ядра из репозитория в собственную сборку Очень часто пользователи OpenWrt вырезают из сборки для своего устройства те пакеты, которые им не нужны, и наоборот включают требуемые. Но как быть, когда манипуляции произведены минимальные, а каждая попытка поставить какие-нибудь дополнительные пакеты из официального репозитария какой-нибудь стабильной ветки заканчивается возмущением менеджера пакетов opkg на несоответствие зависимостей ядра, несмотря на то, что версии ядра одинаковые? Тут то и придется прибегнуть к своеобразному хаку на свой страх и риск. При каждой сборке OpenWrt, при минимальном изменении конфиг файлов в итоге меняется уникальный hash-код сборки. Он присваивается как в зависимости пакетов, так и к самому ядру OpenWrt. Например, при установке в самособранной OpenWRT 18.06.1 пакетов из официального репозитария несмотря на то, что версии ядра одинаковые, opkg будет ругаться что не может выполнить зависимости. И --force-depends тут не всегда помогает. Для тех, кто хочет чтобы все проходило гладко - есть один непопулярный способ ниже. 1. Узнаем hash-код ядра из официальной сборки вашей версии OpenWrt Открываем репозитарий нашей версии OpenWrt и нашей архитектуры. Например https://downloads.openwrt.org/releases/ ... /packages/ - это версия OpenWrt 18.06.1 и популярная архитектура ar71xx. Находим пакет kernel_4.9.120-1-adfb989aae12e239d65a2c73ca35b8a3_mips_24kc.ipk. 32 cимвола "adfb989aae12e239d65a2c73ca35b8a3" в его названии это есть md5 hash ядра официальной сборки. У вас соответственно он может быть иной. 2. Указываем md5 hash сборки принудительно для кросс-компилятора OpenWrt Открываем папку с исходниками OpenWRT, находим и открываем для редактирования файл openwrt/include/kernel-defaults.mk Находим примерно 102ю строку следующего содержания: Код: grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | mkhash md5 > $(LINUX_DIR)/.vermagic И приводим ее к вижу Код: grep '=[ym]' $(LINUX_DIR)/.config.set | LC_ALL=C sort | echo "нашхэшкодтут" > $(LINUX_DIR)/.vermagiс Далее собираем сборку и пользуемся официальным репозитарием без лишних возмущений. Источник: https://openwrt.su/sborka/maskirovka-sv ... epozitarij |
Автор: | Lazarus [ 04 май 2022, 22:07 ] |
Заголовок сообщения: | Re: OpenWrt/LEDE |
Что можно отключить/удалить в сборке OpenWrt (n = disable, y = enable) Menu path Comments CONFIG_KERNEL_SWAP=y/n Global build settings / Kernel build options / Support for paging of anonymous memory (swap) 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 |
Автор: | Lazarus [ 06 май 2022, 21:01 ] |
Заголовок сообщения: | Re: OpenWrt/LEDE |
Сборка OpenWrt/LEDE онлайн |
Автор: | Lazarus [ 13 май 2022, 12:15 ] |
Заголовок сообщения: | Re: OpenWrt/LEDE |
Настройка в OpenWrt соединения PPTP 1. Установить пакеты ppp-mod-pptp kmod-nf-nathelper-extra 2. Включить CONNTRACK для iptables (PPtP PASSTHROUGH via OpenWRT router) - создать файл /etc/sysctl.d/local.conf - прописать туда одну строчку: Код: net.netfilter.nf_conntrack_helper = 1
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |