Домашня » як » Як встановити додаткове програмне забезпечення на домашньому маршрутизаторі (DD-WRT)

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

    Ви коли-небудь хотіли мати додаткові функціональні можливості, такі як електронна пошта, Bit-torrent або навіть 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" файли риби, але не вчать вас, як ловити рибу з джерела. Крім того, щоб використовувати Linux відформатований HD або принаймні розділ з одного (який насправді навіть не працює на прошивки я тестував з). Ось чому, я відчував необхідність створити нижченаведену нижче просту процедуру, яку можна було б слідувати і відтворювати, для того, щоб менеджер пакетів OpenWRT Opkg працював на таких маршрутизаторах.

    Оновлення: Можливість монтажу перегородок була знову введена в ребрендірованную версію на 17798 alpha build.

    Що таке Opkg?

    Opkg - це менеджер пакетів, наприклад apt / aptitude і yum. Вона є заміною для менеджера пакетів Ipkg і може бути використана для встановлення програмного забезпечення, наприклад: Демон передачі BitTorrent, відправника електронної пошти ssmtp і Knockd демон, який виконує сценарії після вказаної послідовності запуску портів, щоб назвати декілька. З сайту OpenWRT:

    Утиліта opkg (ipkg fork) - це легкий менеджер пакетів, який використовується для завантаження та встановлення пакетів 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 на 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 install opkg_618-2_ar71xx.ipk

      Примітка: Ви можете, якщо захочете, також встановити кожен пакет у сховище вручну. Проте це означатиме, що вам доведеться вирішувати свої залежності… і що це буде весело?

    Отримання файлів динамічної бібліотеки (“lib”)
    Необхідні файли "lib" для роботи Opkg є частиною дистрибутиву OpenWRT. Щоб отримати їх, потрібно витягти їх з “Root FileSystem” згаданого розподілу.

    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 / і т.д.

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

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

    3. Вручну (поки) "прив'язувати" каталог "/ etc" до JFFS:

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

    Встановіть каталог Optware ("/ opt")
    Opkg з OpenWRT, очікується, буде використано, коли вбудована маршрутизатор маршрутизатора. Як і в той час, файлова система ще не перебуває на маршрутизаторі, і, таким чином, все ще може змінюватися, не існує проблем з інсталяцією в будь-якому місці файлової системи. Ось чому файл конфігурації Opkg вказує на пакунки для встановлення у "root" (/) файлової системи. Однак ми використовуємо 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-списки
      опція overlay_root / overlay

      Примітка: Ви можете змінити директиву “lists_dir”, щоб вказувати на розташування, яке не знаходиться в оперативній пам'яті, а на JFFS. Хоча це звільняє вас від оновлення списків, перш ніж ви зможете встановити додаткове програмне забезпечення (якщо ваш маршрутизатор перезавантажився з останнього часу), ви втратите близько 1,5 Мб вільного простору JFFS, і ви будете приєднуватися до його ерозії..

    Привіт, крихітко
    Ви повинні бачити, що Opkg працює, видаючи команди оновлення та списки.

    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 install net-tools-netstat

      А тепер, коли ви виконуєте команду netstat, знову це працює… охайний га? :)

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


    Якщо така машина є віртуальною неможливістю, вона повинна логічно бути кінцевою неправдоподібністю. Таким чином, все, що я повинен зробити, щоб зробити один, це випрацювати, наскільки це неймовірно, годувати цю фігуру в кінцевий генератор неймовірності, дати їй свіжу чашку справді гарячого чаю і включити його……… Єдине, що вони дійсно не подобається, це "розумна дупа".