![]() |
Попробую и я себя в роли пейсателя... думаю Ачатовцы будут не против...
В данной статье я попытаюсь раписать от А до Я весь процесс сборки кастомной прошивки для ОпенВРТ + ништячок в виде балансировки между провайдерами. Собственно для чего нужна кастомная прошивка если на фтп-сервере ОпенВРТ выливают Гигабайты прошивок? Кастомные прошивки нужны для исключительных ситуаций: - Разработка своего функционала и доп.софта - Когда для дополнительных пакетов просто не хватает места - Когда хочется собрать пакет All-In-One (предустановленый софт) Сборка прошивки из исходников. 1) Для начала нужно скачать сурс с которого всё будет собираться в одну кучу... Выбор сурсов тут ... https://dev.openwrt.org/wiki/GetSource Trunk- "основной ресурс OpenWRT" Код:
Code:Код:
Code:Пока имеет множество небольшое количество о умолчанию не доступных дополнительных пакетов, но если вы не планируете запускать на маршрутизаторе Web-сервер или еще какое нестандартное извращение, то проблем у Вас не возникнет." Код:
Code:Код:
Code:apt-get update apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev libssl1.0-dev subversion mercurial 3) Далее подготавливаем зависимости... (запускаем скрипт в папке с сурсом) ./scripts/feeds update -a ./scripts/feeds install -a 4) Подготовка компиляции (находясь в папке с сурсом ввести) make prereq 5) Выбор платформы. make menuconfig после этой команды должно появится вот такое окошко... http://savepic.ru/13183829.png Управление тут примитивное Стрелками Вверх-Вниз перемещаемся между строками, вход в подуровень Enter, пометить\снять метку - пробелом. Выбираем Target System, Subtarget, Targer Peofile. Нажимаем Save и Exit. Далее вводим. make defconfig и еще раз make menuconfig и собственно сама сборка... make -j2 V=s FORCE_UNSAFE_CONFIGURE=1 флаг -j указывает количество ядер процессора. флаг s=V значит подробный вывод текущего состояния компилирования флаг FORCE_UNSAFE_CONFIGURE=1 значит сборка под рутом (без этого флага не запустится компиляция) 6) Осталось забрать готовую прошивку по адресу: .../bin/тип процессора/ Предупреждение: После компиляции возможно раздутие папки до 7 Gb! ****************************************** В данной статье использовались следующие материалы Источник - https://github.com/freifunk-gluon/gluon/issues/973 Источник - http://wiki.openwrt.org/doc/howto/buildroot.exigence Источник - https://www.denisyuriev.ru/linux/ope...iz-isxodnikov/ Примечание: Для полноценного запуска пришлось столкнутся с костылями которые в процессе пришлось решить что потребовало небольших усилий... Самое печальное что об этих костылях не пишут не в офф.мануале по сборке не в видео-обзорах Ютуба... у них всё в шоколаде! )))) P.S - Время компиляции на моём нетбуке составило ~ 4 часов. 48 минут с ключем j2 .SpoilerTarget" type="button">Spoiler: Конфигурация такая: - CPU Intel Atom N450 1.66 Ghz (1 ядро x 2 потока) - DDR 2 - 2 Gb - SSD OCZ - 120 Gb |
Модификация прошивки из исходников
5.1) Сначала указываем целевое устройство... Допустим для TP-Link TL-WR842ND
https://wiki.openwrt.org/toh/start 5.2) Далее подключаем/удаляем модули... Что можно добавить? .SpoilerTarget" type="button">Spoiler: Web-интерфейс LuCI Управлять прошивкой из командной строки — дело благородное, но не всегда удобное. Посему я всем рекомендую использовать Web-интерфейс. Для этого выбираем следующие пункты LuCI ---> 1. Collections ---> luci 5. Translations ---> luci-i18n-english luci-i18n-russian .SpoilerTarget" type="button">Spoiler: Протоколы подключения к интернету Зачем нам маршрутизатор, который не умеет подключаться к интернету? Выберем необходимые протоколы: Network ---> ppp ppp-mod-pppoe ppp-mod-pppol2tp ppp-mod-pptp Примечание: если роутер будет использоваться в качестве клиента DHCP или по статическому адресу, тот этот пункт можно отключить... .SpoilerTarget" type="button">Spoiler: Подключение USB-устройств Наиболее популярной задачей, с которой сталкиваются пользователи OpenWRT — подключение внешних накопителей. Подключение USB-модемов и принтеров рассматривать в этой статье не будем, так как её размер увеличится до бесконечности. Для подключения USB дисков нам первым делом понадобится пакет block-mount, который в прочем не обязателен, но поможет нам подключать диски через Web-интерфейс, а так же автоматически их монтировать после перезагрузки устройства. Иначе придется всё ручками прописывать. Base system ---> block-mount Kernel modules ---> USB Support ---> kmod-usb-core kmod-usb-ohci kmod-usb-storage kmod-usb-usb2 Kernel modules ---> Filesystems ---> kmod-fs-ext4 Примечание: Также советую добавить пакет hd-idle, он отвечает за отключение винчестера во время простоя, очень легко настраивается через консоль. Если консоль НЕОК, тогда добавляем GUI LuCI ---> Application ---> luci-app-hd-idle .SpoilerTarget" type="button">Spoiler: Transmission Старый добрый трансмишн ну куда без него? Хотите что б роутер сам тянул торренты? Нефиг делать! Network ---> BitTorrent ---> transmission-daemon transmission-remote Если через консоль НЕОК, тогда запиливаем через Люсю... тобишь GUI. LuCI ---> Application ---> luci-app-transmission .SpoilerTarget" type="button">Spoiler: Редактор Nano Если место Вы экономить не планируете, а с редактором vi, идущем по умолчанию в OpenWRT у вас созревают конфликты, ибо не самое удобное творение человечества, то есть смысл так же добавить в состав прошивки редактор Nano. Хотя он и не очень то и много места займет в Вашем устройстве. Utilities ---> [*] Editors ---> nano .SpoilerTarget" type="button">Spoiler: WPA-HACK Если вы хотите использовать роутер не по своему назначению, тогда нужно выбрать след. пункты. Network ---> Wireless ---> aircrack-ng Base System ---> wireless-tools .SpoilerTarget" type="button">Spoiler: MacChanger Обход мак-блокировки? Легко! Utilitues ---> macchanger .SpoilerTarget" type="button">Spoiler: MultiWAN Очень ништяковый пакет, позволяет добавить WAN'ы путём отрезания "лишних" LAN-портов... очень рекомендую! LuCI ---> Applications ---> luci-app-multiwan Что можно удалить? .SpoilerTarget" type="button">Spoiler: IPv6 Можно удалить таблицы IPv6 , освободится приблизительно 128 Кб... Global build settings ---> Enable IPv6 support in packages .SpoilerTarget" type="button">Spoiler: OPKG Зачем на устройстве с кастомной прошивкой подливка доп.пакетов? Base system ---> opkg .SpoilerTarget" type="button">Spoiler: PPP У себя я выпилил все PPP пакеты, т.к. инет получаю по DHCP Network ---> <> ppp Kernel modules ---> Network Support ---> kmod-ppp 5.3) После окончания выбора пакетов конфигурацию можно сохранить, что бы в дальнейшем нужно было делать меньше действий... В главном меню нажимаем Save http://savepic.ru/13265064.png И указываем имя файла конфигурации P.S. буду дальше редактировать статью... так как после прошивки Люся не появилась, я так понимаю нужно добавить веб-сервер на котором крутится веб-морда... |
Сборка при помощи ImageBuilder
Не только лишь все знают (с) , что собирать прошивку можно иначе! Еще не до конца понял в чём разница, просто оставлю это здесь ... Есть еще один способ собрать .... точнее пересобрать прошивку, с помощью ImageBuilder. Идём на офф.сайт ОпенВРТ и ищем нужный нам ImageBuilder... В данном случае я искал для TP-Link 741 wget https://downloads.openwrt.org/chaos_...r71xx/generic/OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64.tar.bz2 теперь нужно это дело распаковать ... tar -xjvf OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64.tar.bz2 Переходим с папку с буилдером... cd OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64 теперь собственно пересобираем прошивочку... make image PROFILE=TLWR741 PACKAGES="luci luci-app-qos luci-app-mwan3 -ppp -ppp-mod-pppoe -wget -opkg -ip6tables -kmod-ip6tables -kmod-ipv6 -odhcp6c" теперь по-порядку: make image - собрать образ PROFILE=TLWR741 - указываем какой именно роутер нас интересует PACKGES=... тут мы описываем что мы хотим добавить\удалить в образе... в данном случае я добавил люсю и мультиван а также QoS(для уменьшения аппетитов ВАНов), и удалил ppp-типы подключений , IPv6-таблицы а также wget и opkg так как он мне более не нужен и занимает лишнее драгоценное место (флеш всего 4 Мбайта) И всё ... забираем готовые ништяки тут ../bin/ar71xx/ В пересборке с помощью буилдера весь процесс занимает около 3-4 минут. (в отличие от компиляции ~ 4 часа) |
Модификация LAN -> WAN
В этой статье я также поведаю как сделать из обычного роутера ... не обычный.... Точнее как заставить наш 741 работать с несколькими провайдерами, сделать это не просто но возможно! Поможет нам в этом пакет - app-luci-mwan3 В настройке есть куча подводных камней, ло этого момента мне казалось что настройка нескольких WAN'ов на Микротике это сложно, но нет... я ошибался. Но познакомившись с ОпенВРТ поближе эта прошивка мне начала даже немножко нравится... Итак приступим... Для начала давайте немного разберёмся с интерфейсами в ОперВРТ. Ethernet Switch: "eth0"- это наши физические порты LAN Ethernet Adapter: "eth1" - это собственно родной WAN (он стоит особняком об этом позже) Wireless Network: Master "OpenWrt" (lan) - это наш физический Вай-Фай Теперь нужно определится какие порты из LAN'ов мы будем рвать.... тут есть один прикольный момент опишу его чуть ниже. Допустим мы хотим завести в 741 три провайдера. Для этого нам необходимо 3 порта 2 порта (заводской WAN + 2 x LAN ) RJ-45, один мы будем брать родной и два придётся "хирургическим путём" отрезать от LAN'а. Далее мы разбираемся какой физический порт соотв. аппаратному в прошивке. Network -> Interfaces -> Switch http://savepic.ru/13289136.jpg Физически мой кабель подключен к 741 в порт 3, а ОпенВРТ думает иначе )))) Не скажу почему так происходит... я просто принял суровую реальность и проверил каждый порт... в итоге получилась довольно забавная ситуация... PHYS - APP ---1-----2 ---2-----3 ---3-----4 ---4-----1 Всё очень сложно ! )))) Первый порт лана в роутере это 2 аппаратный, 2 порт в лане это 3 аппаратный и так далее. Теперь когда мы определились с портами приступим далее... Нажимаем Add и добавляем VLANы... максимальное кол-во для ТП-Линка составляет 4 Vlan'a (3 под WAN и один для сети.) http://savepic.ru/13335009.jpg Нажимаем Save (только Сейв! пока рано применять!) http://savepic.ru/13313505.jpg Далее идём в интерфейсы и грохаем WAN6. Тоже нажимаем только Сейв! Идём в LAN. http://savepic.ru/13316577.jpg Interfaces -> LAN -> Physical settings -> Убираем галочку с creates a bridge over specified interface(s) Переставляем галочку с Interface -> Ethernet Adapter: "eth0" (lan) На Interface -> VLAN Interface: "eth0.101" Нажимаем Save Если необходимо изменить настройки DHCP , тогда корректируем... идём во вкладку General setup http://savepic.ru/13365728.jpg А теперь можно нажать Save + Apply! Роутер ребутнётся и вы должны получить айпи адресс из нового диапазона или из старого если вы не меняли настройки DHCP. Теперь собственно переходим к подготовке WAN-интерфейсов... http://savepic.ru/13345248.jpg Переходим в Interfaces и нажимаем Add new interfaces. указываем имя второго Вана Name of the new interface --> WAN2 указываем тип подключения Protocol of the new interface --> DHCP Client (у вас может быть PPTP или иной) http://savepic.ru/13352416.jpg И нажимаем Submit http://savepic.ru/13338080.jpg Переходим опять в настройки этого ВАНа и создаём зону фаервола... http://savepic.ru/13336032.jpg И указываем метрику интерфейсов... (она необходима нам будет позже) Для WAN - 10, WAN2 - 20, WAN3 - 30, WAN4 - 40 Далее Save and Apply Далее добавляем остальные WANы... Я ограничился 1+2 по витой паре, теоретически можно отрезать еще один ЛАН, но я решил оставить два порта под сеть... А теперь фокус-покус... добавляем еще один Ванчик по вафельке! Переходим в Network --> Wifi --> И нажимаем Scan http://savepic.ru/13309408.jpg Выбираем сеть от которой у нас есть ключик и нажимаем Join network. http://savepic.ru/13360611.jpg http://savepic.ru/13351395.jpg указываем ключ WPA passphrase указываем имя доп.вана Name of the new network: WAN4 указываем зону фаервола: Create / Assign firewall-zone: wan4 Дальше Submit Далее можно тонко настроить беспроводную сеть... http://savepic.ru/13338083.jpg Operating frequency я выставил на Legacy и канал auto Save and Apply http://savepic.ru/13332963.jpg Далее роутер должен показать что он подключился по вафле , но инета у нас пока еще нет, мы не настроили фаерволл... Собственно что мы и сделаем... Переходим Network --> Firewall http://savepic.ru/13313507.jpg В качестве эталона у нас штатный WAN, собственно чекаем по аналогии... http://savepic.ru/13316579.jpg http://savepic.ru/13310435.jpg http://savepic.ru/13364706.jpg Клацаем Save and Apply. Всё после этого у нас появится инет... Ура мы проделали 50% работы! ))))) |
Настройка MultiWAN(Failover+Load Balancing)
Переходим в Network --> Load Balancing http://savepic.ru/14570728.jpg По-умолчанию стоят два вана, они не рабочие, просто игнорируем их... Переходим во вкладку Configuration и убиваем интерфейсы... http://savepic.ru/14549224.jpg http://savepic.ru/14609643.jpg Тут же создаём новые, прописываем имена интерфейсов которые мы создавали ранее... WAN,WAN2,WAN3,WAN4 .... тут регистрозависимые имена! http://savepic.ru/14594283.jpg В графе Tracking IP , указываем адрес который будет пинговатся для того что бы понять есть инет на порту или нет, я выбрал Гугловский DNS-сервак... вы можете указать какой угодно хост, для подстраховки можно указать хоть три-четыре хоста.. http://savepic.ru/14575851.jpg Если интерфейсы прописаны верно, то в колоке метрика вы увидите заданные ранее значения! Это факт того что МВАН3 правильно понял вас! http://savepic.ru/14568683.jpg Далее переходим во вкладку Member, тоже сносим предустановленные настройки... И создаём свои... Тут всё равно что вы напишете... т.к. далее нужно будет указать интерфейс и метрику отдельно, строку Weight укажите 1. http://savepic.ru/14554347.jpg http://savepic.ru/14601450.jpg По концовке должно получится что-то похожее... http://savepic.ru/14590186.jpg Далее идём в Policy, сносим всё кроме строки balanced, её мы редактируем. http://savepic.ru/14588138.jpg http://savepic.ru/14574826.jpg Сносим все указаные Member used, и добавляем ранее нами созданные... http://savepic.ru/14567658.jpg Должно получится что-то такое... http://savepic.ru/14563562.jpg Далее идём в MWAN Rule Configuration. http://savepic.ru/14549226.jpg Тут просто сносим две верхние строки и оставляем нижнюю и жмём Save and Apply. Ну кажись всё! Теперь проверяем! http://savepic.ru/14599405.jpg У нас появились все Ванчики, и один из них горит (Вафля) если мы подрубим три витухи в порты то все провайдеры буду работать но в порядке приоритета... Т.е. если отваливается WAN тогда роутер садится на WAN2, если отваливается WAN2 идёт на WAN3, если отваливается WAN3 идёт на WAN4. В фоновом режиме он пингует хосты по каждому ВАНу, если на каком то появляется инет он перескакивает на него в порядке приоритета! Этот метод называется FAILOVER. Также есть еще один метод LOAD BALANCING. Получить его очень легко, достаточно изменить настройки в MWAN Member Configuration на единицы, то есть для MWAN вы делаете каждого провайдера равноценным и он балансирует между ними (простыми словами суммирует скорости со всех ВАНов) http://savepic.ru/13323775.jpg Проверить как он балансирует можно тут... http://savepic.ru/14581997.jpg В будущем я добавлю сюда скрин с заведёнными витухами по ВАНам и сделаю скрин с балансировкой и спидтестом.... Сеть будет выглядеть приблизительно так ... Код:
Code:Чуть ниже я оставил сегодняшние практические данные полученные на коленке в полевых условиях... ************************************************** ************* Результаты работы LoadBalancing (балансировка WAN-ов) SpeedTest по витой паре... Ping | Download | Upload | 23 | 29.86 Mb | 30.77 Mb | 23 | 31.15 Mb | 30.79 Mb | 23 | 29.78 Mb | 30.79 Mb | SpeedTest через 3g (на смарте) Ping | Download | Upload | 47 | 6.92 Mb | 3.65 Mb | 35 | 8.66 Mb | 3.58 Mb | 49 | 4,76 Mb | 4.11 Mb | Балансировка на роутере (Витая пара + WiFi Client -->(3G)) тут наверное подробнее... В порт WAN ключен кабель от провайдера (пакет 30 Мбит) Через WAN4 (WiFi интерфейс) роутер подключен к смартфону ( считаем 6Мбит) На смартфоне поднята точка доступа.... ниже я привёл пример спидтеста отдельно и вместе. Ping | Download | Upload | 50 | 34.46 Mb | 34.10 Mb | 40 | 35.53 Mb | 34.25 Mb | 39 | 35.49 Mb | 34.17 Mb | Источник - https://habrahabr.ru/post/264299/ ************************************************** ***** До сегодняшнего эксперимента с балансировкой у меня было не очень хорошее отношение к ОпенВРТ т.к. эта прошивка менее дружелюбная чем ДД-ВРТ, но если вникнуть и проникнутся то потенциал её очень огромен! И фактически можно сделать с железкой за копейки потенциал железа который в 2-3 раза дороже, например если бы у меня не получилось сделать балансировку на TP-Link WR741-ND тогда пришлось бы покупать TL-R470T+ сравнить цены на него можете сами если вам будет интересно... Вот статья про 470+ https://geektimes.ru/post/131933/ тут чел купил его и покрутил, но получил кучу минусов по репе ))))) Мне было очень интересно поковырять эту прошивку. Во время написания данного мана, я прокурил наверное статей 5-6 и просмотрел минимум 7-8 роликов на Ютубе, честно говоря в каждом ролике или статье скрывается часть настроек что не позволяет сразу вьехать где горбыль, приходилось много импровизировать. Раз 10-15 я перепрошивал Туполинк, но он жив здоров и будет далее трудится на благо нации! |
|
Цитата:
|
Здравствуйте. Есть роутер, Petatel PSR-680W. Ещё давно был прошит на OpenWrt. Подключался я к нему через UART, через ethernet кабель подключится не получается. После многих попыток редактирования файла network подключится удалось. Далее был включен и добавлен в автозагрузку WEB интерфейс и все вроде бы должно работать, но соединения с сетью не было. Следуя по инструкции из интернета соединение с роутером опять пропало. Роутер не выдает IP адрес и компьютер не может подключиться. При изменении адреса на статический было ровно тоже самое. Объясните, пожалуйста, как надо отредактировать файл network, чтобы сеть работала правильно.
|
Еще можно удалить:
Отключение Debug-инфо и DebugFS Данные инструменты абсолютно бесполезны большинству пользователей, а существует для разработчиков ПО. 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 места для установки своих пакетов прямо в прошивку. |
Привет, прошу помощи! Хочу собрать свою прошивку ImageBuiler'ом, делаю все как тут написано. Запускается, пишется много текста, но скоро выскакивает ошибка:
make[2]: *** [Makefile:131: package_install] Error 126 make[2]: Leaving directory '/home/test2/OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64' make[1]: *** [Makefile:106: _call_image] Error 2 make[1]: Leaving directory '/home/test2/OpenWrt-ImageBuilder-15.05.1-ar71xx-generic.Linux-x86_64' make: *** [Makefile:178: image] Ошибка 2 Система стоит Kali Linux (Light). Два дня мучаюсь, исшерстил весь интернет, не могу найти решения... |
| Время: 05:03 |