Как установить дополнительное программное обеспечение на домашнем маршрутизаторе (DD-WRT)

Вы когда-нибудь хотели иметь дополнительные функции, такие как электронная почта, бит-торрент или даже MySQL, прямо на вашем маршрутизаторе? Ну, может быть, теперь вы можете. TutoryBird углубляется в инструкции по установке программного обеспечения 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, в руководстве «Получите еще больше энергии от вашего домашнего маршрутизатора». Основными отличиями являются:

  1. Чтобы привести примеры SSMTP и Knockd, вам, действительно, нужно было выяснить зависимости вручную. Процедура сделать это вручную утомительна и не очень прямолинейна. Opkg делает это автоматически.
  2. На этот раз мы будем добавлять программное обеспечение поверх установленной прошивки, а не заменять его. Его замена была отличным занятием, но без сомнения: опасным, подверженным проблемам, необратимым и, что хуже всего, специфичным для маршрутизатора. Излишне говорить, что это намного проще и безопаснее.

Предпосылки

Для завершения этого руководства обратите внимание на следующее:

  1. Как указано выше, это руководство было создано и протестировано на Buffalo WZR-HP-AG300H с версией прошивки Buffalo «Pro» 17135. Оно должно работать на любых маршрутизаторах на базе Atheros (ar71xx) с любой версией DD-WRT той же ревизии или выше но твой пробег может очень.
  2. Вам нужно будет включить SSH на маршрутизаторе, а также установить и использовать WinSCP для подключения к нему. Это было объяснено в руководстве «Как удалить рекламу с помощью Pixelserv на DD-WRT». Фактически, предполагается, что вы можете делать все, что объясняется в этом руководстве.
  3. Вы должны иметь возможность подключиться к маршрутизатору с помощью терминала (рекомендуется SSH). Некоторые указания о том, как это сделать, есть в вики DD-WRT.
  4. Место для JFFS и около 4 МБ послеформатированного пространства для базовой установки. Пространство JFFS является не только обязательным условием, но и ограничителем показа. Это связано с тем, что, если на вашем маршрутизаторе нет как минимум вышеупомянутых 4 МБ пространства после форматирования, вы не получите никакой реальной выгоды от этого руководства, и вам будет лучше, если вы воспользуетесь «Еще больше энергии от вашего домашнего маршрутизатора». Руководство по установке пакетов Ipkg непосредственно в прошивку или установка пакетов Ipkg вручную. Следуйте инструкциям в руководстве «Как удалить рекламу с помощью Pixelserv on DD-WRT», чтобы включить JFFS, и посмотрите, сколько свободного места у вас есть на самом деле после его форматирования.

Примечание: Можно сделать это только с 2 МБ свободного места для установки, но тогда мы потеряем результат «/ etc», который станет доступным для чтения и будет вынужден вызывать Opkg, каждый раз указывая файл конфигурации вручную. время … которое как ооочень хромое …

Давайте взломать

На этом этапе вы должны были включить JFFS и иметь возможность SSH/WinSCP в маршрутизатор.

  1. Откройте сеанс терминала для маршрутизатора.
  2. Создайте временный каталог, в котором мы будем работать:

    mkdir/tmp/1
    CD/TMP/1

Используйте Ipkg для установки Opkg
В то время как мы собираемся заменить Ipkg в качестве менеджера пакетов, мы будем использовать его для ручной установки установочного пакета Opkg.

  1. Для этого загрузите установочный пакет Opkg для архитектуры ar71xx из ствола проекта OpenWRT:

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/opkg_618-2_ar71xx.ipk

    Примечание 1: На момент написания этой статьи 618 является последней версией, в будущем она может измениться, поэтому внесите соответствующие изменения.
    Примечание 2: Вполне возможно, что единственное различие в том, как заставить это руководство работать для других архитектур, заключается в том, чтобы получить установщик Opkg из подходящей архитектуры для вашего маршрутизатора … однако это действительно не проверено вашими пользователями.

  2. Вызвать Ipkg для ручной установки Opkg, используя:

    ipkg установить opkg_618-2_ar71xx.ipk

    Примечание: Вы также можете, если хотите, установить каждый пакет в хранилище вручную таким образом. Однако это будет означать, что вам придется самостоятельно разрешать зависимости … и что в этом будет интересного?

Получение файлов динамической библиотеки («lib»)
Файлы «lib», необходимые для работы Opkg, являются частью дистрибутива OpenWRT. Чтобы получить их, нужно извлечь их из «корневой файловой системы» указанного дистрибутива.

  1. Для этого загрузите последнюю базовую «корневую файловую систему» ​​для дистрибутива openWRT, которая содержит необходимые «lib» из ствола проекта OpenWRT:

    wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-rootfs.tar.gz

  2. Распакуйте его, используя:

    tar xvzf openwrt-ar71xx-generic-rootfs.tar.gz

  3. Скопируйте файлы «libs» из «rootfs», которые мы извлекли выше, в каталог «libs» в нашей JFFS, сохранив их атрибуты и символические ссылки:

    cp -Pp/tmp/1/lib/*/jffs/usr/lib/

    Примечание: Вы получите сообщения о том, что подкаталоги опущены. Поскольку нам ничего не нужно, кроме файлов «lib», это нормально, и вы можете спокойно игнорировать эти сообщения.

Исправление LD_LIBRARY «PATH»
Нам нужно указать маршрутизатору, где искать разделяемые библиотеки (libs), которые мы только что «установили», и что он должен сделать это перед теми, которые поставлялись с прошивкой.

  1. Для этого установите переменную среды LD_LIBRARY вручную (на данный момент), чтобы сделать так, чтобы место, куда мы скопировали новые файлы lib, было первым в «PATH»:

    экспорт LD_LIBRARY_PATH =/jffs/usr/lib: $ LD_LIBRARY_PATH

Доступная для чтения «/ etc»
Мы собираемся скопировать «/ etc» в JFFS и затем сделать обычную точку монтирования «/ etc», указать на нее. Это откроет мир возможностей, потому что «/ etc» станет доступным для чтения и записи (что я лично ждал, дай или возьму уже 7 лет) и позволит пакетам, которые ожидают такого поведения, работать правильно.

  1. Создайте каталог, который будет содержать «/ etc»:

    mkdir -p/jffs/geek/etc

  2. Рекурсивно скопируйте весь «/ etc», сохранив все подкаталоги, атрибуты файлов и символические ссылки.

    cp -a/etc/*/jffs/geek/etc/

  3. Вручную (на данный момент) «привязать» каталог «/ etc» к каталогу JFFS:

    mount -o bind/jffs/geek/etc// etc/

Установите каталог Optware («/ opt»)
Opkg из OpenWRT, предполагается использовать при сборке прошивки маршрутизатора. Поскольку в это время FileSystem еще не подключена к маршрутизатору и, следовательно, все еще подвержена изменениям, проблем с установкой в ​​любом месте FileSystem не возникает. Вот почему файл конфигурации Opkg указывает пакеты для установки в «корень» (/) файловой системы. Однако мы используем Opkg после прошивки, которая была собрана и установлена ​​на маршрутизаторе, и поскольку мы не можем изменить корень файловой системы для чтения и записи, мы укажем все установки, которые будут установлены в «/ opt». Однако в настоящее время «/ opt» также указывает на место только для чтения в прошивке маршрутизатора. Чтобы преодолеть это, мы сделаем «/ opt» указателем на JFFS, которая доступна для чтения и записи.

  1. Для этого создайте каталог, который будет содержать пакеты Optware:

    mkdir -p/jffs/opt

  2. Вручную (на данный момент) «связать монтирование» каталога «/ opt» с JFFS:

    mount -o bind/jffs/opt// opt/

    Примечание. Несмотря на то, что за пределами этого руководства, более опытные пользователи могут изменить эту точку монтирования, указав на HD.

Настройка файла конфигурации Opkg
Мы хотим, чтобы файл конфигурации Opkg находился там, где Opkg ищет его по умолчанию (то есть «/ etc») и настроил для установки в «/ opt».

  1. Для этого переместите файл конфигурации opkg, установленный пакетом Opkg, в место для чтения/записи «/ etc»:

    mv /jffs/etc/opkg.conf/etc/

  2. Измените место назначения для установок 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 и list.

  1. Если все прошло хорошо, вы должны увидеть, что списки Opkg были обновлены без ошибок, и вы готовы реализовать скрипт на следующем шаге:

    opkg update; список opkg

  2. Потратьте время, чтобы начать изучать пакеты, доступные в хранилище …

Сценарий запуска
Теперь нам нужно сделать так, чтобы при загрузке маршрутизатора все необходимые подключения и пути выполнялись автоматически. Для этого мы создали для вас этот скрипт инициализации geek-init.

  1. Загрузите, затем распакуйте его и поместите в «/ jffs/geek/etc /». (Рассмотрим это с WinSCP).
  2. Сделайте сценарий исполняемым, перейдя в его свойства с помощью WinSCP или выполнив:

    chmod + x /jffs/geek/etc/geek-init.sh

  3. Запустите скрипт при запуске маршрутизатора, используя WebGUI. В разделе Администрирование -> Команды в текстовом поле введите:

    /jffs/geek/etc/geek-init.sh web-gui

    И нажмите «Сохранить автозагрузку».

Пинаем шины
Если все прошло хорошо, вы сможете перезагрузить маршрутизатор и по-прежнему использовать диспетчер пакетов Opkg. То есть обновлять, перечислять и устанавливать приложения.
Давайте проверим, что все работает, установив команду «netstat», которая по какой-то причине была опущена в сборках DD-WRT в последнее время. Прежде чем мы сделаем это, выполните команду netstat в терминале, и вы увидите, что вы получили ошибку от оболочки, которая говорит: -sh: netstat: not found.

  1. Ваш первый шаг всегда будет, чтобы обновить списки Opkg, чтобы иметь список последних пакетов из хранилища:

    opkg update

  2. Если вы не знаете, какой пакет содержит команду «netstat», вы можете отфильтровать результаты, используя.

    список opkg | Grep Netstat

  3. А теперь установите «netstat», используя:

    opkg установить net-tools-netstat

    И теперь, когда вы снова выполните команду netstat, она заработает… аккуратно, ха? 🙂

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

Если такая машина является виртуальной невозможностью, она должна быть логически конечной невероятностью. Поэтому все, что мне нужно сделать, чтобы понять, как это невероятно, подать эту фигуру в генератор конечной невероятности, дать ей свежую чашку действительно горячего чая и включить ее………. …… .. .. Единственное, что им действительно не нравится, это «умница».

Оцените статью
TutoryBird.Ru
Добавить комментарий