Изображение от Жан Спектър и Авиад Равив
Ако все още не сте го направили, бъдете сигурни и проверете предишните статии от поредицата:
- Превърнете домашния ви маршрутизатор в супер-захранван маршрутизатор с DD-WRT
- Как да премахнете рекламите с Pixelserv на DD-WRT
Ако приемете, че сте запознати с тези теми, продължавайте да четете. Имайте предвид, че това ръководство е малко по-технически и начинаещите трябва да внимават, когато модифицират маршрутизатора си.
Изпитания
Наскоро закупих нов Buffalo WZR-HP-AG300H, който се предлага с преименувана версия на DD-WRT. Поради факта, че този маршрутизатор има USB порт, незабавно свързах HD и се опитах да използвам ръководството за wiki "Optware, The Right Way". За съжаление бързо намерих, че маршрутизаторът, който получих, е базиран на Atheros и скриптът от тази страница, не го поддържа. Така че започнах да копая (както винаги го правех) и срещнах няколко ръководства (1, 2, 3 и 4), които имаха за цел да обяснят как да се работи ръчно с Opkg. Въпреки че техният принос (освен други източници в мрежата) към това ръководство е безценен, някои от инструкциите (IMHO) просто не са достатъчно ясни. Например, да ви даде "lib" файлове риба, но не ви научи как да го рибата от източника. Също така трябва да се използва Linux форматиран HD или поне дял от един (което всъщност дори не работи на firmwares, с които съм тествал). Ето защо почувствах необходимостта от създаване на описаната по-долу кратка, простичка и възпроизводима процедура за получаване на OpenWRT Opkg пакетен мениджър да работи по такива маршрутизатори.
Актуализация: Възможностите за монтиране на дяловете отново бяха въведени в преработената версия на 17798 алфа версията.
Какво представлява Opkg?
Opkg е пакет мениджър като apt / aptitude и yum. Той действа като заместител на Ipkg пакетен мениджър и може да бъде използван за инсталиране на софтуер като: демона BitTorrent за предаване, sender на имейл ssmtp и Knockd демон, който изпълнява скриптове след определена последователност за задействане на порт, за да назове няколко. От сайта OpenWRT:
The opkg utility (an ipkg fork) is a lightweight package manager used to download and install OpenWrt packages from local package repositories or ones located on the Internet.
Opkg
опитите за разрешаване на зависимости от пакетите в хранилищата - ако това не е успешно, то ще подаде сигнал за грешка и ще прекрати инсталирането на този пакет.
Така че, използвайки Opkg, можем да инсталираме неща, като тези, които направихме с Ipkg, върху ръководството "Разгръщане още повече мощност от вашия домашен маршрутизатор". Основните разлики са:
- За да дадете примерите за SSMTP и Knockd, наистина, трябваше да разберете зависимостите ръчно. Процедурата, която трябва да направите ръчно, е притеснителна и не много права. Opkg прави това автоматично.
- Този път ще бъдем добавяне софтуер на върха на фърмуера, който е на мястото си, а след това да го замените. Докато го заместваше, това беше отлично упражнение, което несъмнено беше: опасно, склонно към проблеми, необратимо и най-лошото от всички специфични маршрутизатори. Излишно е да се каже, че това е по-лесно и по-безопасно.
Предварителни
За да допълните това ръководство, направете следното:
- Както бе посочено по-горе, това ръководство е създадено и тествано на Buffalo WZR-HP-AG300H с версията на Firmware 17135 "Pro" на Buffalo. Тя трябва да работи на базата на маршрутизатори базирани на Atheros (ar71xx) с всяка версия на DD-WRT със същата редакция или по-горе, но вашият пробег може много.
- Ще трябва да активирате SSH в рутера, както и да инсталирате и използвате WinSCP, за да се свържете с него. Това бе обяснено в ръководството "Как да премахнете рекламите с Pixelserv на DD-WRT". Всъщност ще се предположи, че сте в състояние да направите всичко, което е обяснено в това ръководство.
- Трябва да можете да се свържете с маршрутизатора чрез терминал (препоръчително е SSH). Някои указания за това как да направите това, са в wiki на DD-WRT.
- Пространство за JFFS и около 4MB пространство след форматиране за базовата настройка. Пространството на JFFS е не само предпоставка, а е илюстрираща запушалка. Това е така, защото ако маршрутизаторът ви няма поне посочените по-горе 4 МБ форматиран формат, няма да спечелите никаква реална полза от това ръководство и ще бъде по-добре да използвате "Разгънете още повече енергия от вашия домашен рутер" ръководство за инсталиране на Ipkg пакети директно във фърмуера или инсталиране на пакетите Ipkg ръчно. Следвайте инструкциите в наръчника "Как да премахнете рекламите с Pixelserv на DD-WRT", за да активирате JFFS и да видите колко свободно пространство всъщност имате след тя е форматирана.
Забележка: Възможно е да направите това само с 2 МБ пространство за настройката, но тогава ще загубим резултата от "/ etc", за да станем четливи за писане и ще трябва да се позовем на Opkg, като в същото време определяме конфигурационния файл ръчно всеки път … sooo lame …
Позволявам да се счупят
В този момент трябва да сте активирали JFFS и сте в състояние да SSH / WinSCP в рутера.
- Отворете сесия на терминала към маршрутизатора.
-
Създайте временна директория, в която ще работим:
mkdir /tmp/1 cd /tmp/1
Използвайте Ipkg за инсталиране на Opkg Докато ще заменим Ipkg като мениджър на пакети, ще го използваме, за да инсталираме ръчно инсталационния пакет на Opkg.
-
За да направите това, изтеглете инсталационния пакет Opkg за ar71xx архитектурата от OpenWRT project trunk:
wget https://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" s) Необходимите "lib" файлове, за да работят с Opkg, са част от разпределението на OpenWRT. За да ги получи, трябва да ги извлечете от "Root FileSystem" на споменатото разпространение.
-
За да направите това, изтеглете най-новата основна "Root FileSystem" за разпознаване на openWRT, която съдържа необходимите "lib" от проекта на OpenWRT:
wget https://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
Read-writable "/ и т.н." Ние ще копираме "/ и т.н." в JFFS и след това ще направим редовната "/ etc" mount point, сочи към него. По този начин и двете ще отворят свят на възможности, защото "/ и т.н." ще станат четливи за писане (които аз лично чаках да дадат или да вземат 7 години сега) и да позволят на пакетите, които очакват това поведение да работи правилно.
-
Създайте директорията, която ще задържи "/ etc":
mkdir -p /jffs/geek/etc
-
Рекурсивно копирайте цялата "/ и т.н.", като запазвате всички поддиректории, файлови атрибути и символни връзки.
cp -a /etc/* /jffs/geek/etc/
-
Ръчно (за сега) "bind mount" директорията "/ etc" към JFFS:
mount -o bind /jffs/geek/etc/ /etc/
Задайте директорията Optware ("/ opt") Opkg от OpenWRT, очаква да се използва, когато е изграден фърмуер на рутера. Тъй като по това време файловата система все още не е на рутера и по този начин все още се подлага на промяна, няма проблем да се инсталира на всяко място в 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/
-
Променете местоназначението на инсталациите за оптимизация като "/ opt" вместо "root" (/). За да направите това, с редактора "vi" или WinSCP отидете на "/ etc /" и направете съдържанието на файла "opkg.conf":
vi /etc/opkg.conf
Направете го като:
src/gz snapshots https://downloads.openwrt.org/snapshots/trunk/ar71xx/packages dest root /opt dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay
Забележка: Можете да промените директивата "lists_dir", за да посочите местоположение, което не е в RAM, а по-скоро в JFFS. Макар че това би ви освободило от актуализирането на списъците, преди да можете да инсталирате допълнителен софтуер (ако вашият рутер е рестартиран от последния път), ще загубите около 1,5 МБ от оскъдното пространство на JFFS и ще се влошите в неговата ерозия.
Здрасти бейби Трябва да можете да видите, че Opkg работи, като издава актуализацията и изписва командите.
-
Ако всичко върви добре, трябва да виждате, че списъците на Opkg са актуализирани без грешка и сте готови да изпълните скрипта в следващата стъпка:
opkg update; opkg list
- Отделете време, за да започнете да проучвате наличните пакети в хранилището ….
Сценарий за стартиране Сега трябва да го направим, така че всички необходими монтаж и пътуване ще се случи автоматично, когато рутер ботуши. За тази цел създадохме за вас този инициализиращ скрипт 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's builds напоследък. Преди да направим това, изпълнете командата netstat в терминала и ще видите, че сте издълбани от грешка от черупката, като казахте "-sh: netstat: not found".
-
Вашата първа стъпка винаги ще бъде да актуализирате списъците на Opkg, за да имате последната малка папка от хранилището:
opkg update
-
Ако не знаете кой пакет съдържа командата "netstat", можете да филтрирате резултатите.
opkg list | grep netstat
-
И сега инсталирайте "netstat" като използвате:
opkg install net-tools-netstat
И сега, когато изпълнявате командата netstat отново работи … чист ха?:)
Докато в бъдещите статии, в които ще инсталираме и конфигурираме софтуерни пакети, използвайки този метод, може да ви се наложи да разгледате огромното количество софтуеър, който сега е на ваше разположение.
Ако такава машина е виртуална невъзможност, логично трябва да е ограничена невъзможност. Така че всичко, което трябва да направя, за да направя такава, е да разбера колко невероятно е, да храня тази фигура в генератора на неограничена невъзможност, да й дам чиста чаша наистина горещ чай и да го включа … … ………….. Едно нещо, което те наистина не харесват, е "Smart-Ass".