Как да инсталирате допълнителен софтуер на домашния си маршрутизатор (DD-WRT)
Искали ли сте някога да имате допълнителна функционалност като Email, 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 и скриптът от тази wiki страница не го поддържа. Така че аз започнах да копая (както винаги) и попаднах на няколко ръководства (1, 2, 3 и 4), които имаха за цел да обяснят как да накарам Opkg да работи ръчно. Докато техният принос (сред другите източници в мрежата) към този наръчник е безценен, някои от инструкциите (IMHO) просто не са достатъчно напред. Например, давайки ви “lib” файловете риба, но не ви научи как да я изваждате от източника. Също така трябва да се използва HD форматиран Linux или поне един дял (който всъщност дори не работи с тестваните с). Ето защо, почувствах нуждата да създам следната кратка, лесна за следване и възпроизводима процедура, за да накарам мениджъра на пакети OpenWRT Opkg да работи на такива рутери.
Актуализация: Възможността за монтиране на дяловете е била въведена отново в ре-брандираната версия на 17798 alpha build.
Какво е Opkg?
Opkg е пакет мениджър като apt / aptitude и yum. Той действа като заместител на Ipkg пакетния мениджър и може да се използва за инсталиране на софтуер, като например демона на предаването на BitTorrent, изпращача на ssmtp email и Knockd демон, който изпълнява скриптове след определена последователност за задействане на порт, за да назовем само няколко. От сайта на OpenWRT:
Помощната програма opkg (ipkg fork) е лек мениджър на пакети, използван за изтегляне и инсталиране на пакети от 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 и около 4MB място за форматиране на базата. Пространството на JFFS е не само предпоставка, но и ограничител. Това е така, защото ако вашият маршрутизатор няма поне споменатите по-горе 4MB от форматирано място, няма да получите никаква реална полза от това ръководство и ще бъдете по-добре да използвате „Дайте воля на още по-голяма мощност от вашия рутер“ ръководство за инсталиране на Ipkg пакети директно във фърмуера или ръчно инсталиране на Ipkg пакети. Следвайте инструкциите в ръководството „Как да премахнете рекламите с Pixelserv на DD-WRT“, за да активирате JFFS, и да видите колко свободно място всъщност имате след той е форматиран.
Забележка: Възможно е да направите това само с 2MB пространство за настройката, но тогава ще загубим резултат от “/ etc”, който ще стане read-writable и ще трябва да извика 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 install opkg_618-2_ar71xx.ipk
Забележка: Ако искате, можете да инсталирате всеки пакет в хранилището ръчно по този начин. Това обаче би означавало, че ще трябва да разрешите зависимостите си сами… и какво би било забавно в това?
Получаване на файлове с динамична библиотека („lib“)
Изискваните “lib” файлове, които да работят с Opkg, са част от дистрибуцията на OpenWRT. За да ги получи, трябва да ги извлечете от “Root FileSystem” на споменатото разпространение.
- За да направите това, изтеглете най-новата основна “Root FileSystem” за openWRT distrebution, която съдържа необходимите “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":
експортиране 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“ към JFFS:
mount -o bind / jffs / geek / etc / / etc /
Задайте директорията Optware („/ opt“)
Opkg от OpenWRT, очаква да се използва, когато фърмуерът на рутера е изграден. По това време FileSystem все още не е на маршрутизатора и поради това все още подлежи на промяна, няма проблем да се инсталира на което и да е място във FileSystem. Ето защо конфигурационният файл на Opkg сочи пакети, които да се инсталират на "root" (/) на FileSystem. Ние обаче използваме Opkg след фърмуерът е бил построен и инсталиран на рутера, и тъй като не можем да променим корена на файловата система, за да може да се чете-записва, ще насочим всички инсталации да бъдат инсталирани под “/ opt”. Въпреки това в момента “/ opt” също сочи към място само за четене на фърмуера на рутера. За да преодолеем това, ще направим "/ opt" точка към JFFS, която може да се чете.
- За да направите това, създайте директорията, която ще съдържа пакетите Optware:
mkdir -p / jffs / opt
- Ръчно (засега) "bind mount" директорията "/ 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”, за да сочи към местоположение, което не е в RAM, а по-скоро в JFFS. Макар че това ще ви освободи от актуализирането на списъците, преди да можете да инсталирате допълнителен софтуер (ако вашият рутер се рестартира от последно време), ще загубите около 1.5MB от малкото пространство на JFFS и ще се влоши ерозията му.
Здрасти бейби
Трябва да можете да видите, че Opkg работи чрез издаване на команди за актуализация и списъци.
- Ако всичко върви добре, трябва да виждате, че списъците на Opkg са актуализирани без грешка и сте готови да приложите скрипта в следващата стъпка:
opkg update; opkg списък
- Отделете време да започнете да проучвате наличните пакети в хранилището ... .
StartUp скрипт
Сега трябва да го направим така, че всички необходими монтаж и трасе ще се случват автоматично, когато рутерът се зареди. За тази цел, ние сме създали за вас, този инициализиращ се скрипт.
- Изтеглете, след това го извлечете и поставете под “/ 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 install net-tools-netstat
И сега, когато изпълните командата netstat отново работи… чист ха? :)
Докато бъдещите статии, в които ще инсталираме и конфигурираме софтуерни пакети, използвайки този метод, може да имате тонове забавни изпитания, които изследват огромното количество софтуер, който сега е точно на пръв поглед..
Ако такава машина е виртуална невъзможност, то логично трябва да е крайно невероятно. Така че всичко, което трябва да направя, за да накарам човек е да измисля как точно е невероятно, да храня тази фигура в крайния генератор за невероятност, да й даде нова чаша наистина горещ чай и да я включи……… Единото наистина не ми харесва, това е „умен“.