Ви коли-небудь хотіли мати додаткові функції, такі як електронна пошта, біт-торрент або навіть MySQL безпосередньо на вашому маршрутизаторі? Ну, можливо, тепер ви можете. How-To Geek занурюється в те, як встановити програмне забезпечення Opkg на DD-WRT.
Зображення Жан Спектор і Авіад Равів
Якщо ви цього ще не зробили, будьте впевнені та перегляньте попередні статті з серії:
- Перетворіть свій домашній маршрутизатор у суперпотужний маршрутизатор з DD-WRT
- Як видалити рекламу за допомогою Pixelserv на DD-WRT
Припускаючи, що ви знайомі з цими темами, продовжуйте читати. Майте на увазі, що цей посібник є трохи більш технічним, і новачкам слід бути обережними під час модифікації маршрутизатора.
Смутки
Нещодавно я купив новий
Буйвол WZR-HP-AG300H
який поставляється з ребрендованою версією
DD-WRT
. Через те, що цей маршрутизатор має USB-порт, я відразу ж підключив HD і спробував використати “
Оптичне програмне забезпечення, правильний шлях
”Wiki guide. На жаль, я швидко виявив, що маршрутизатор, який я отримав, базується на Atheros, і сценарій на цій вікі-сторінці його не підтримує. Отже, я почав копати (як завжди) і натрапив на кілька посібників (
1
,
2
,
3
і
4
), який мав на меті пояснити, як змусити Opkg працювати вручну. Хоча їх внесок (серед інших джерел в Інтернеті) у цей посібник був неоціненним, деякі інструкції (ІМХО) просто недостатньо прямі. Наприклад, надаючи вам файли “lib” рибу, але не навчіть, як ловити її з джерела. Також доводиться використовувати HD у форматі Linux або принаймні розділ одного (
який насправді навіть не працює на прошивках, з якими я тестував
). Ось чому, я відчув потребу створити нижчу стислу, просту і відтворювану процедуру отримання
OpenWRT
Менеджер пакетів Opkg для роботи на таких маршрутизаторах.
Оновлення: Можливість монтажу розділів була знову введена у ребрендовану версію в альфа-збірці 17798.
Що таке Opkg?
Opkg - це менеджер пакетів, такий як apt / aptitude та yum. Він виступає як заміна Менеджер пакетів Ipkg , і може використовуватися для встановлення такого програмного забезпечення, як: Спосіб передавання Демон BitTorrent, відправник електронної пошти ssmtp та Стук демон, який виконує сценарії після вказаної послідовності запуску портів, щоб назвати декілька. Від Сайт OpenWRT :
Утиліта opkg (вилка ipkg) - це легкий диспетчер пакунків, який використовується для завантаження та встановлення пакетів OpenWrt із локальних сховищ пакетів або тих, що знаходяться в Інтернеті.
Opkgнамагається вирішити залежності за допомогою пакетів у сховищах - якщо це не вдасться, він повідомить про помилку та припинить установку цього пакета.
Отже, використовуючи Opkg, ми можемо встановити речі, як це було зроблено з Ipkg, на “ Вимкніть ще більше енергії від домашнього маршрутизатора ”Путівник. Основними відмінностями є:
- Для того, щоб навести приклади SSMTP та Knockd, вам по-справжньому довелося з’ясувати залежності вручну. Процедура зробити це вручну є докучливою і не дуже прямою. Opkg робить це автоматично.
- Цього разу ми будемо додавання програмне забезпечення поверх встановленого програмного забезпечення, а не замінюючи його. Замість того, щоб замінити його, це була відмінна вправа для вундеркіндів, вона, без сумніву, була небезпечною, схильною до проблем, незворотною і найгіршою з усіх особливостей маршрутизатора. Само собою зрозуміло, що це набагато простіше і безпечніше.
Передумови
Щоб заповнити цей посібник, зверніть увагу на наступне:
- Як зазначено вище, цей посібник створено та протестовано на Буйвол 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 ”, Щоб дізнатись, скільки вільного місця у вас є після він відформатований.
Примітка: Це можна зробити лише з 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
Примітка 1: На момент написання цієї статті 618 є останньою версією, це може бути змінено в майбутньому, тому відрегулюйте відповідно.
Вимова: Можливо, єдина різниця в тому, щоб цей посібник працював для інших архітектур, полягає в тому, щоб отримати програму встановлення Opkg із відповідної архітектури для вашого маршрутизатора ... проте це не перевірено вашими справді. -
Викликайте Ipkg, щоб вручну встановити Opkg, використовуючи:
ipkg встановити opkg_618-2_ar71xx.ipk
Примітка: Ви можете, якщо ви теж хотіли, встановити кожен пакет у сховищі вручну таким чином. Однак це означало б, що вам доведеться вирішувати залежності самостійно ... і що в цьому буде цікавого?
Отримання файлів динамічної бібліотеки (“lib”)
Необхідні файли “lib”, щоб Opkg працював, є частиною дистрибутива OpenWRT. Для їх отримання потрібно витягти їх із “Root FileSystem” згаданого розподілу.
-
Для цього завантажте останню базову “Root FileSystem” для дистрибутива openWRT, який містить необхідні “libs з
Магістраль проекту 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 ”
Нам потрібно сказати маршрутизатору, де шукати спільні бібліотеки (бібліотеки), які ми щойно «встановили», і що він повинен це зробити
раніше
ті, що постачаються з прошивкою.
-
Для цього встановіть змінну середовища LD_LIBRARY вручну (поки що), щоб зробити так, щоб місце, куди ми скопіювали нові файли lib, було першим у “PATH”:
експортувати LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH
Читається "/ etc"
Ми збираємося скопіювати “/ etc” у JFFS, а потім зробити звичайну точку монтування “/ etc”, вказати на неї. Це одночасно відкриє цілий світ можливостей, тому що “/ etc” стане для читання (чого я особисто чекав зараз чи прийму вже 7 років) і дозволить пакетам, які очікують такої поведінки, працювати коректно.
-
Створіть каталог, який міститиме “/ etc”:
mkdir -p / jffs / geek / тощо
-
Рекурсивно копіюйте всю “/ etc”, зберігаючи всі підкаталоги, атрибути файлів та символічні посилання.
cp -a / etc / * / jffs / geek / etc /
-
Вручну (наразі) “прив’язати монтування” каталог “/ etc” до каталогу JFFS:
mount -o bind / jffs / geek / etc / / etc /
Встановіть каталог Optware (“/ opt”)
Opkg від OpenWRT, очікується, що він буде використаний при побудові мікропрограми маршрутизатора. Оскільки на той момент FileSystem ще не на маршрутизаторі, і, отже, все ще може бути змінений, немає проблем з установкою в будь-якому місці на FileSystem. Ось чому файл конфігурації Opkg вказує пакети на встановлення до “кореня” (/) FileSystem. Однак ми використовуємо 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”: