- PVSM.RU - https://www.pvsm.ru -
«Этим полукреслом мастер Гамбс начинает новую партию мебели. 1865 г. Санкт-Петербург» (И. Ильф, Е. Петров).
Вы не ошиблись, это еще одна статья о сборке альтернативной прошивки для домашних маршрутизаторов, этих горячих в некоторых местах повелителей наших малых локальных сетей. На резонный вопрос почему бы сразу не писать там, где такому материалу самое место [1] отвечу: хочу описать процесс начав с подготовки виртуальной машины для сборки (да, это будет Ubuntu на VirtualBox), пройдя через сборку прошивки, подключение внешнего жёсткого диска и настройку загрузки с него, подключение принтера, установку и настройку пакетов вроде медиасервера и torrent клиента, и попытаться закончить описанием такой настройки StrongSwan [2], которая позволит подключаться к нему с IPhone, IPad и Windows Phone без установки сторонних клиентов. При этом хочется не обойти стороной как важные вещи вроде безопасности, так и полезные мелочи вроде скрипта, который будет отключать на ночь вырвиглазные синие светодиоды моего TL-WDR3600. И я совсем не уверен в полноте своих знаний по многим из озвученных сейчас вопросов.
Одним словом, на данном этапе у меня громадьё планов и сумбур. Поэтому важны любые советы и предложения. Текст статьи точно будет меняться и дополняться с течением времени, а вся статья может быть скрыта в черновики по итогам голосования чтобы не засорять Хабр. Если вы заинтересовались, хотите помочь советом или вам просто захотелось бросить в автора тапком — добро пожаловать. Далее по тексту я постараюсь подробно описать это обещающее интересное времяпрепровождение действо, суть которого схематично изобразил средневековый японский художник [3].
Сначала кратко о возможностях стандартной прошивки TL-WDR3600 из обзора устройства [4] заявленных на сайте производителя:
Из всего этого великолепия отдельно хочется отметить «легкость» совместного доступа к принтерам, реализуемую через фирменную утилиту страшноватого вида. Навскидку большая часть из вышеперечисленного легко реализуется с помощью OpenWrt. Но не будем забывать, наша цель не сравняться с прошивкой TP-LINK. Мы хотим выяснить насколько OpenWrt сможет её обойти.
Переход на Openwrt можно выполнить несколькими способами. Для поддерживаемых устройств можно скачать готовый образ, залив его прямо из заводской прошивки. Далее, при наличии USB-порта, к маршрутизатору подключается заранее разбитая на несколько разделов и отформатированная флешка. Настраивается загрузка с флешки, доустанавливаются необходимые пакеты. Как говорится: «Мадам! Фаустпатрон это просто».
Можно собрать собственный образ из исходников с помощью OpenWrt Buildroot [5], эта штука строит прошивку как чудовище Франкенштейна [6], собирая куски исходных кодов со множества адресов. Процесс частенько прерывается, тем чаще, чем больше времени прошло с даты релиза. Тогда новоявленный Виктор Франкенштейн с помощью лейкопластыря в виде бесконечных патчей и симлинков должен заставить работать свою кофеварку чудо-машину. Этот метод открывает множество возможностей, например, можно таки заставить BusyBox [7] показывать кириллические символы вместо вопросительных знаков в именах файлов. Но при этом скорее всего придётся самостоятельно собирать все необходимые пакеты, большая часть пакетов из репозитория OpenWrt станет недоступна.
Мы попытаемся удержаться на золотой середине и будем использовать Image Builder [8], который обещает нам относительно легкую сборку прошивки из предварительно скомпилированных пакетов и совместимость нашей прошивки с пакетами из репозитория OpenWrt.
Что мы точно потеряем, не считая потраченного времени:
Неисправность товара вызвана использованием встроенного программного обеспечения, которое не было одобрено производителем и не было опубликовано на официальном сайте производителя. Также на неисправности, вызванные нарушением техники обновления программного обеспечения товара или сбоя в процессе обновления, в частности, выключения питания или нажатия кнопки сброса во время процедуры обновления программного кода.
cd "C:Program FilesOracleVirtualBox"
VBoxManage setextradata "Test" "CustomVideoMode1" "1366x768x32"
sudo aptitude update && sudo aptitude upgrade
sudo aptitude install dkms build-essential mc
Подключаем к виртуальной машине образ диска дополнений гостевой системы, запускаем с него скрипт установки дополнений:
cd /media/%username%/VBOXADDITIONS_4.3.20_96996/
sudo ./VBoxLinuxAdditions.run
После завершения работы скрипта закрываем терминал, отключаем образ дополнений гостевой системы и перезагружаем виртуальную машину. Если все прошло хорошо, то при переходе в полноэкранный режим разрешение экрана виртуальной машины будет соответствовать нормальному разрешению вашего монитора. Но пока только в графическом режиме, при переходе в консоль вы все равно увидите что она занимает небольшую часть по центру экрана. Чтобы это исправить, нужно немного подправить настройки загрузчика. Открываем эмулятор терминала, редактируем настройки загрузчика:
sudo nano /etc/default/grub
Настраиваем отображение меню Grub при загрузке:
#GRUB_HIDDEN_TIMEOUT=0
Настраиваем разрешение графического меню Grub, сохраняем для консоли разрешение, установленное загрузчиком:
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command 'vbeinfo'
GRUB_GFXMODE=1366x768
GRUB_GFXPAYLOAD_LINUX=keep
Сохраняем настройки, обновляем конфигурацию загрузчика и перезагружаемся:
sudo update-grub && sudo reboot
У меня после обновления конфигурации загрузчика при перезагрузке меню не отображалось. Если у вас так же, выключаем и опять включаем виртуальную машину. При запуске в полноэкранном режиме должно в полный экран отобразиться меню загрузчика, а при переходе в первую консоль по Ctrl+Alt+F1 она тоже займет весь экран. Если всё так и есть, можете ввести логин, пароль и настроить шрифты. Тут все конечно индивидуально, но мне стандартный шрифт обычно кажется мелковатым. Если вам тоже, делаем так:
sudo dpkg-reconfigure console-setup
Если любите полужирные шрифты — выбирайте TerminusBold, если нет — Terminus. Размер — по своему зрению, чтобы определиться можно попробовать несколько.
Боюсь оскорбить вас мелочной опекой, но в Ubuntu вернуться из консоли в графический режим можно по Ctrl+Alt+F7.
clean:
rm -rf $(TOPDIR)/tmp $(TOPDIR)/dl $(TARGET_DIR) $(BIN_DIR)
И приводим к такому виду:
clean:
rm -rf $(TOPDIR)/tmp $(TOPDIR)/dl/* $(TARGET_DIR) $(BIN_DIR)
После этой небольшой доработки напильником можно провести пробную сборку, она выполняется командой:
make image PROFILE=WNDR3700 PACKAGES="pkg1 pkg2 pkg3 -pkg4 -pkg5 -pkg6" FILES=files/
Где: WNDR3700 — профиль вашего устройства; pkg1 — пакет, который будет добавлен в прошивку; -pkg4 — пакет, который будет удален из прошивки. Список профилей можно посмотреть в выводе команды «make info». Почитать подробнее о работе с Image Builder можно в OpenWrt Wiki [8]. До начала сборки нужно еще добавить репозитории в файл repositories.conf. Открываем его в редакторе и приводим к такому виду:
src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/base
src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/luci
src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/management
src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages
src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/packages
src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/routing
src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/telephony
## This is the local package repository, do not remove!
src imagebuilder file:packages
Мы добавили официальные репозитории Openwrt. Учитывая громадьё наших планов и чтобы облегчить запуск сборщика прошивок создаем в каталоге OpenWrt-ImageBuilder небольшой скрипт:
#!/bin/bash
# Build OpenWRT 14.07 for TP-LINK TL-WDR3500/3600/4300/4310/MW4350R
echo "Prepare OpenWRT images for Tp-Link TL-WDR3500/3600/4300/4310/MW4350R n"
make image PROFILE="TLWDR4300" PACKAGES="luci openssh-sftp-server nano" FILES="files/"
Сохраним скрипт, например, как tl-wdr3600.sh, разрешим его выполнение, и запустим сборку прошивки:
chmod +x tl-wdr3600.sh
./tl-wdr3600.sh
По окончании сборки в каталоге bin должны появиться несколько файлов. Определить который из них ваша прошивка можно по модели устройства в имени файла. Слово factory в имени значит, что такой файл можно заливать на ваше устройство поверх заводской прошивки. Подробнее об этом, еще раз о разнице между JFFS2 и SquashFS, а также о многом другом собираюсь рассказывать дальше.
Ну а пока, «Рядовой Хомяк к бою готов!», продолжение следует…
Автор: 069056
Источник [26]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/76550
Ссылки в тексте:
[1] самое место: http://wiki.openwrt.org/
[2] StrongSwan: http://en.wikipedia.org/wiki/StrongSwan
[3] средневековый японский художник: http://en.wikipedia.org/wiki/Keisai_Eisen
[4] обзора устройства: http://www.tp-linkru.com/products/details/?model=TL-WDR3600#/overview
[5] OpenWrt Buildroot: http://wiki.openwrt.org/doc/howto/build
[6] чудовище Франкенштейна: https://en.wikipedia.org/wiki/Frankenstein%27s_monster
[7] BusyBox: https://en.wikipedia.org/wiki/BusyBox
[8] Image Builder: http://wiki.openwrt.org/doc/howto/obtain.firmware.generate
[9] гарантийных обязательствах: http://www.tp-linkru.com/support/service-centers/
[10] есть мнение: https://dev.openwrt.org/ticket/11779
[11] Скачиваем: https://www.virtualbox.org/wiki/Downloads
[12] альтернативных загрузок: http://www.ubuntu.com/download/alternative-downloads
[13] Unity: https://en.wikipedia.org/wiki/Unity_%28user_interface%29
[14] Xubuntu desktop: https://en.wikipedia.org/wiki/Xubuntu
[15] Xfce: https://en.wikipedia.org/wiki/Xfce
[16] Midnight Commander: https://en.wikipedia.org/wiki/Midnight_Commander
[17] Насколько я знаю: https://www.virtualbox.org/manual/ch09.html#idp58694864
[18] dkms: https://packages.debian.org/en/wheezy/dkms
[19] build-essential: https://packages.debian.org/en/wheezy/build-essential
[20] aptitude: https://en.wikipedia.org/wiki/Aptitude_%28software%29
[21] nano: https://en.wikipedia.org/wiki/GNU_nano
[22] Скачиваем: http://downloads.openwrt.org/barrier_breaker/14.07/
[23] TL-WDR3600: http://www.tp-link.com/en/products/details/?model=TL-WDR3600#over
[24] таблице поддерживаемых устройств: http://wiki.openwrt.org/toh/start
[25] тикет: https://dev.openwrt.org/ticket/18002
[26] Источник: http://habrahabr.ru/post/245103/
Нажмите здесь для печати.