Как установить дополнительное программное обеспечение на домашнем маршрутизаторе (DD-WRT)
Вы когда-нибудь хотели иметь дополнительные функции, такие как электронная почта, бит-торрент или даже MySQL, прямо на вашем маршрутизаторе? Ну, может быть, теперь вы можете. How-To Geek углубляется в инструкции по установке программного обеспечения Opkg на DD-WRT.
Фото Жан Спектор и Авиад Равив
Если вы еще этого не сделали, обязательно ознакомьтесь с предыдущими статьями этой серии:
- Превратите свой домашний маршрутизатор в сверхмощный маршрутизатор с DD-WRT
- Как удалить рекламу с Pixelserv на DD-WRT
Предполагая, что вы знакомы с этими темами, продолжайте читать. Имейте в виду, что это руководство является немного более техническим, и новички должны быть осторожны при модификации своего маршрутизатора..
Несчастья
Недавно я купил новый Buffalo WZR-HP-AG300H, который поставляется с версией DD-WRT, выпущенной под новым брендом. Из-за того, что у этого маршрутизатора есть порт USB, я сразу подключил HD и попытался воспользоваться вики-руководством «Optware, The Right Way». К сожалению, я быстро обнаружил, что маршрутизатор, который я получил, основан на Atheros, и сценарий с этой вики-страницы не поддерживает его. Поэтому я начал копать (как я всегда делаю) и наткнулся на несколько руководств (1, 2, 3 и 4), целью которых было объяснить, как заставить работать Opkg вручную. Хотя их вклад (среди других источников в Интернете) в это руководство был неоценим, некоторые инструкции (ИМХО) просто не достаточно просты. Например, предоставляя вам «lib» файлы fish, но не учите, как ловить их из источника. Также необходимо использовать HD в формате Linux или, по крайней мере, один раздел (который на самом деле даже не работает с прошивками, которые я тестировал). Вот почему я почувствовал необходимость создания приведенной ниже краткой, простой в использовании и воспроизводимой процедуры, чтобы заставить менеджер пакетов OpenWRT Opkg работать на таких маршрутизаторах..
Обновление: возможность установки разделов была повторно введена в обновленную версию альфа-версии 17798.
Что такое Opkg?
Opkg - менеджер пакетов, такой как apt / aptitude и yum. Он служит заменой диспетчера пакетов Ipkg и может использоваться для установки программного обеспечения, такого как: демон передачи BitTorrent Transmission, отправитель электронной почты ssmtp и демон Knockd, который выполняет сценарии после указанной последовательности запуска порта, чтобы назвать несколько. С сайта OpenWRT:
Утилита opkg (вилка ipkg) представляет собой облегченный менеджер пакетов, используемый для загрузки и установки пакетов OpenWrt из локальных репозиториев пакетов или из расположенных в Интернете..
Opkg
пытается разрешить зависимости с пакетами в репозиториях - если это не удастся, он сообщит об ошибке и прервет установку этого пакета.
Таким образом, используя Opkg, мы можем установить то же самое, что и в Ipkg, в руководстве «Получите еще больше энергии от вашего домашнего маршрутизатора». Основными отличиями являются:
- Чтобы привести примеры SSMTP и Knockd, вам, действительно, нужно было выяснить зависимости вручную. Процедура сделать это вручную утомительна и не очень прямолинейна. Opkg делает это автоматически.
- На этот раз мы будем добавление Программное обеспечение поверх встроенного программного обеспечения, а не его замена. Его замена была отличным занятием, но без сомнения: опасным, подверженным проблемам, необратимым и, что хуже всего, специфичным для маршрутизатора. Излишне говорить, что это намного проще и безопаснее.
Предпосылки
Для завершения этого руководства обратите внимание на следующее:
- Как указано выше, это руководство было создано и протестировано на Buffalo WZR-HP-AG300H с версией прошивки Buffalo «Pro» 17135. Оно должно работать на любых маршрутизаторах на базе Atheros (ar71xx) с любой версией DD-WRT той же ревизии или выше , но ваш пробег может очень.
- Вам нужно будет включить SSH на маршрутизаторе, а также установить и использовать WinSCP для подключения к нему. Это было объяснено в руководстве «Как удалить рекламу с помощью Pixelserv на DD-WRT». Фактически, предполагается, что вы можете делать все, что объясняется в этом руководстве..
- Вы должны иметь возможность подключиться к маршрутизатору с помощью терминала (рекомендуется SSH). Некоторые указания о том, как это сделать, есть в вики DD-WRT..
- Место для JFFS и около 4 МБ послеформатированного пространства для базовой установки. Пространство JFFS является не только обязательным условием, но и ограничителем показа. Это связано с тем, что, если на вашем маршрутизаторе нет как минимум вышеупомянутых 4 МБ пространства после форматирования, вы не получите никакой реальной выгоды от этого руководства, и вам будет лучше, если вы воспользуетесь «Еще больше энергии от вашего домашнего маршрутизатора». Руководство по установке пакетов Ipkg непосредственно в прошивку или установка пакетов Ipkg вручную. Следуйте инструкциям в руководстве «Как удалить рекламу с Pixelserv на DD-WRT», чтобы включить JFFS и посмотреть, сколько свободного места у вас на самом деле есть. после это отформатировано.
Замечания: Это можно сделать только с 2 МБ свободного места для установки, но тогда мы потеряем результат «/ etc», который станет доступным для чтения и будет вынужден вызывать Opkg, каждый раз указывая файл конфигурации вручную каждый раз… тааак хромой ...
Давайте взломать
На этом этапе вы должны были включить JFFS и иметь возможность SSH / WinSCP в маршрутизатор.
- Откройте сеанс терминала для маршрутизатора.
- Создайте временный каталог, в котором мы будем работать:
mkdir / tmp / 1
CD / TMP / 1
Используйте Ipkg для установки Opkg
Пока мы собираемся заменить Ipkg в качестве менеджера пакетов, мы будем использовать его для ручной установки установочного пакета Opkg..
- Для этого загрузите установочный пакет Opkg для архитектуры ar71xx из ствола проекта OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk
Note1: На момент написания этой статьи 618 является самой последней версией, в будущем она может измениться, поэтому отрегулируйте ее соответствующим образом..
Заметка 2: Вполне возможно, что единственное различие в том, как заставить это руководство работать для других архитектур, состоит в том, чтобы получить установщик Opkg от соответствующей архитектуры для вашего маршрутизатора ... однако это действительно не проверено вашими. - Вызовите Ipkg для ручной установки Opkg, используя:
ipkg установить opkg_618-2_ar71xx.ipk
Замечания: При желании вы также можете вручную установить каждый пакет в хранилище. Однако это будет означать, что вам придется разрешать зависимости самостоятельно ... и что будет в этом забавным?
Получение файлов динамической библиотеки («lib»)
Файлы «lib», необходимые для работы Opkg, являются частью дистрибутива OpenWRT. Чтобы получить их, нужно извлечь их из «корневой файловой системы» указанного дистрибутива..
- Для этого загрузите последнюю базовую «корневую файловую систему» для дистрибутива openWRT, которая содержит необходимые «lib» из ствола проекта OpenWRT:
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz
- Извлеките его, используя:
tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz
- Скопируйте файлы «libs» из «rootfs», которые мы извлекли выше, в каталог «libs» в нашей JFFS, сохранив их атрибуты и символические ссылки:
cp -Pp / tmp / 1 / lib / * / jffs / usr / lib /
Замечания: Вы получите сообщения о том, что подкаталоги опущены. Поскольку нам ничего не нужно, кроме файлов «lib», это нормально, и вы можете спокойно игнорировать эти сообщения.
Исправление LD_LIBRARY «PATH»
Нам нужно указать маршрутизатору, где искать разделяемые библиотеки (libs), которые мы только что «установили» и что для этого нужно сделать до те, что пришли с прошивкой.
- Чтобы сделать это, установите переменную среды LD_LIBRARY вручную (на данный момент), чтобы сделать так, чтобы место, куда мы скопировали новые файлы lib, было первым в «PATH»:
export LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Доступный для записи «/ etc»
Мы собираемся скопировать «/ etc» в JFFS и затем сделать обычную точку монтирования «/ etc», указать на нее. Это откроет целый мир возможностей, потому что «/ etc» станет доступным для чтения (что я лично ждал, чтобы дать или взять 7 лет) и позволит пакетам, которые ожидают такого поведения, работать правильно..
- Создайте каталог, который будет содержать «/ etc»:
mkdir -p / jffs / geek / etc
- Рекурсивно скопируйте весь «/ etc», сохранив все подкаталоги, атрибуты файлов и символические ссылки..
cp -a / etc / * / jffs / geek / etc /
- Вручную (на данный момент) «привязать» каталог «/ etc» к каталогу JFFS:
mount -o bind / jffs / geek / etc / / etc /
Установите каталог Optware («/ opt»)
Opkg из OpenWRT, предполагается использовать при сборке прошивки маршрутизатора. Поскольку в это время файловая система еще не подключена к маршрутизатору и, следовательно, все еще может изменяться, проблем с установкой в любом месте файловой системы не возникает. Вот почему файл конфигурации Opkg указывает пакеты для установки в «корень» (/) файловой системы. Тем не менее, мы используем Opkg после прошивка была собрана и установлена на маршрутизаторе, и поскольку мы не можем изменить корень файловой системы для чтения и записи, мы укажем все установки, которые будут установлены в «/ opt». Однако в настоящее время «/ opt» также указывает на место только для чтения в прошивке маршрутизатора. Чтобы преодолеть это, мы сделаем «/ opt» указателем на JFFS, которая доступна для чтения.
- Для этого создайте каталог, который будет содержать пакеты Optware:
mkdir -p / jffs / opt
- Вручную (на данный момент) «связать монтирование» каталога «/ opt» с JFFS:
mount -o bind / jffs / opt / / opt /
Примечание. Хотя это выходит за рамки данного руководства, более опытные пользователи могут захотеть изменить эту точку монтирования, чтобы указать на HD.
Настройка файла конфигурации Opkg
Мы хотим, чтобы файл конфигурации Opkg находился там, где Opkg ищет его по умолчанию (то есть «/ etc») и настроил для установки в «/ opt».
- Для этого переместите файл конфигурации opkg, установленный пакетом Opkg, в место для чтения / записи «/ etc»:
mv /jffs/etc/opkg.conf / etc /
- Измените место назначения для установок Optware на «/ opt» вместо «root» (/).
Для этого с помощью редактора «vi» или WinSCP перейдите к «/ etc /» и создайте содержимое файла «opkg.conf»:vi /etc/opkg.conf
Сделайте так, чтобы это выглядело так:
снимки src / gz http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
Dest root / Opt
Dest Ram / TMP
lists_dir ext / var / opkg-lists
опция overlay_root / overlayЗамечания: Вы можете изменить директиву lists_dir, чтобы она указывала на местоположение, которое находится не в ОЗУ, а в JFFS. Хотя это избавит вас от обновления списков, прежде чем вы сможете установить дополнительное программное обеспечение (если ваш маршрутизатор был перезагружен в последний раз), вы потеряете около 1,5 МБ дефицитного пространства JFFS и будете усугублять его разрушение..
Привет, малыш
Вы должны увидеть, что Opkg работает, выполнив команду update и перечисляет.
- Если все прошло хорошо, вы должны увидеть, что списки Opkg были обновлены без ошибок, и вы готовы реализовать скрипт на следующем шаге:
opkg update; список opkg
- Потратьте время, чтобы начать изучать пакеты, доступные в хранилище ... .
Скрипт запуска
Теперь нам нужно сделать так, чтобы при загрузке маршрутизатора все необходимые подключения и пути выполнялись автоматически. С этой целью мы создали для вас этот скрипт инициализации geek-init.
- Загрузите, затем распакуйте его и поместите в «/ jffs / geek / etc /». (Подумайте об этом с WinSCP).
- Сделайте скрипт исполняемым, перейдя в его свойства с помощью WinSCP или выполнив:
chmod + x /jffs/geek/etc/geek-init.sh
- Выполните скрипт при запуске маршрутизатора, используя WebGUI. В разделе Администрирование -> Команды в текстовом поле введите:
/jffs/geek/etc/geek-init.sh web-gui
И нажмите «Сохранить стартап».
Пинать шины
Если все прошло хорошо, теперь вы сможете перезагрузить маршрутизатор и по-прежнему использовать диспетчер пакетов Opkg. То есть обновлять, перечислять и устанавливать приложения.
Давайте проверим, что все работает, установив команду «netstat», которая по какой-то причине была опущена в сборках DD-WRT в последнее время. Прежде чем мы сделаем это, выполните команду netstat в терминале, и вы увидите, что вы получили ошибку из оболочки, говорящую «-sh: netstat: not found».
- Ваш первый шаг всегда будет, чтобы обновить списки Opkg, чтобы иметь список последних пакетов из хранилища:
opkg update
- Если вы не знаете, какой пакет содержит команду «netstat», вы можете отфильтровать результаты, используя.
список opkg | Grep Netstat
- А теперь установите «netstat», используя:
opkg установить net-tools-netstat
А теперь, когда вы снова выполните команду netstat, она заработает… аккуратно, ха? :)
До будущих статей, в которых мы будем устанавливать и настраивать пакеты программного обеспечения с использованием этого метода, возможно, вам придется потратить массу удовольствия на изучение огромного количества программного обеспечения, которое теперь у вас под рукой.
Если такая машина является виртуальной невозможностью, она должна быть логически конечной невероятностью. Поэтому все, что мне нужно сделать, чтобы понять, как это невероятно, подать эту фигуру в генератор конечной невероятности, дать ей свежую чашку действительно горячего чая и включить ее……… Единственное, что они действительно не нравится, это «Smart-Ass».