If-Koubou

Jak zainstalować dodatkowe oprogramowanie na twoim routerze domowym (DD-WRT)

Jak zainstalować dodatkowe oprogramowanie na twoim routerze domowym (DD-WRT) (Jak)

Czy kiedykolwiek chciałeś mieć dodatkowe funkcje, takie jak e-mail, Bit-torrent, a nawet MySQL bezpośrednio na routerze? Cóż, może teraz możesz. How-To Geek opisuje jak zainstalować oprogramowanie Opkg na DD-WRT.

Zdjęcie: Jean Spector i Aviad Raviv

Jeśli jeszcze tego nie zrobiłeś, zapoznaj się z poprzednimi artykułami z serii:

  • Zmień swój domowy router w super-zasilany router z DD-WRT
  • Jak usunąć reklamy z Pixelserv na DD-WRT

Zakładając, że znasz te tematy, czytaj dalej. Należy pamiętać, że ten przewodnik jest nieco bardziej techniczny, a początkujący powinni zachować ostrożność podczas modyfikowania swojego routera.

Udręki

Niedawno kupiłem nowy Buffalo WZR-HP-AG300H, który jest dostarczany z re-brandowaną wersją DD-WRT. Z racji tego, że router ten ma port USB, natychmiast podłączyłem HD i próbowałem użyć przewodnika wiki "Optware, The Right Way". Niestety szybko odkryłem, że router, który mam, jest oparty na Atheros i skrypt z tej strony wiki, nie obsługuje go. Zacząłem więc kopać (jak zawsze) i natknąłem się na kilka przewodników (1, 2, 3 i 4), które miały na celu wyjaśnienie, jak sprawić, by Opkg działał ręcznie. Chociaż ich wkład (między innymi źródłami w Internecie) do tego przewodnika był nieoceniony, niektóre instrukcje są (IMHO) po prostu nie dość proste. Na przykład dajesz plik "lib", ale nie nauczysz się go łowić ze źródła. Konieczne jest także użycie HD w formacie Linux lub przynajmniej jednej partycji (która nawet nie działa na oprogramowaniu firmowym, z którym testowałem). Właśnie dlatego poczułem potrzebę stworzenia poniższej, zwięzłej, prostej do naśladowania i powtarzalnej procedury pozwalającej menedżerowi pakietów OpenWRT Opkg działać na takich routerach.

Aktualizacja: Funkcja montowania partycji została ponownie wprowadzona do wersji rebrandingowej w wersji 17798 alfa.

Co to jest Opkg?

Opkg jest menedżerem pakietów, takim jak apt / aptitude i yum. Działa jako zamiennik dla menedżera pakietów Ipkg i może być używany do instalowania oprogramowania, takiego jak: demon Transmission BitTorrent, nadawca e-mail ssmtp i Knockd demon, który wykonuje skrypty po określonej sekwencji wyzwalania portu, aby wymienić tylko kilka. Z witryny OpenWRT:

Narzędzie opkg (fork ipkg) jest lekkim menedżerem pakietów służącym do pobierania i instalowania pakietów OpenWrt z lokalnych repozytoriów pakietów lub znajdujących się w Internecie. Opkg próbuje rozwiązać zależności z pakietami w repozytoriach - jeśli to się nie powiedzie, zgłosi błąd i przerwie instalację tego pakietu.

Używając Opkg możemy instalować rzeczy takie, jak zrobiliśmy z Ipkg w przewodniku "Uwolnij nawet więcej mocy z twojego routera domowego". Główne różnice to:

  1. Aby podać przykłady SSMTP i Knockd, naprawdę trzeba było ręcznie określić zależności. Procedura ręczna jest uciążliwa i niezbyt prosta. Opkg robi to automatycznie.
  2. Tym razem będziemy dodawanie oprogramowanie zainstalowane na oprogramowaniu, zamiast je zastępować. Podczas wymiany był doskonałym ćwiczeniem dla maniaków, to bez wątpienia: niebezpieczne, podatne na problemy, nieodwracalne i najgorsze ze wszystkich routerów. Nie trzeba dodawać, że jest to o wiele prostsze i bezpieczniejsze.

Wymagania wstępne

Aby wypełnić ten przewodnik, należy pamiętać o następujących kwestiach:

  1. Jak wspomniano powyżej, niniejszy przewodnik został stworzony i przetestowany na Buffalo WZR-HP-AG300H z wersją oprogramowania "Pro" Buffalo Pro 17135. Powinien działać na dowolnym routerze opartym na Atheros (ar71xx) z dowolną wersją DD-WRT tej samej wersji lub powyżej , ale twój przebieg może bardzo.
  2. Będziesz musiał włączyć SSH na routerze, a także zainstalować i używać WinSCP, aby się z nim połączyć. Zostało to wyjaśnione w poradniku "Jak usunąć reklamy za pomocą Pixelserv na DD-WRT". W rzeczywistości zakłada się, że jesteś w stanie zrobić wszystko, co wyjaśniono w tym przewodniku.
  3. Musisz mieć możliwość połączenia się z routerem za pomocą terminala (zalecany jest SSH). Kilka wskazówek, jak to zrobić, znajduje się na wiki DD-WRT.
  4. Przestrzeń dla JFFS i około 4 MB przestrzeni po sformatowaniu dla podstawowej konfiguracji. Przestrzeń JFFS to nie tylko warunek wstępny, ale także stoper show. Dzieje się tak, ponieważ, jeśli router nie ma co najmniej 4 MB pamięci po sformatowanej przestrzeni, nie odniesie to żadnej korzyści z tego przewodnika, a lepiej będzie skorzystać z opcji "Uwolnij nawet więcej energii z domowego routera" przewodnik do instalowania pakietów Ipkg bezpośrednio do oprogramowania układowego lub instalowania pakietów Ipkg ręcznie. Postępuj zgodnie z instrukcjami na stronie "Jak usunąć reklamy za pomocą Pixelserv na DD-WRT", aby włączyć funkcję JFFS i sprawdzić, ile wolnego miejsca masz w rzeczywistości po jest sformatowany.

Uwaga: Można to zrobić za pomocą tylko 2 MB miejsca na instalację, ale wtedy stracilibyśmy wynik "/ etc", który stałby się zapisywalnym do odczytu i musiałby wywołać Opkg, przy ręcznym określaniu pliku konfiguracyjnego za każdym razem ... co jest jak sooo lame ...

Do roboty

W tym momencie powinieneś włączyć JFFS i móc SSH / WinSCP do routera.

  1. Otwórz sesję terminalu do routera.
  2. Utwórz katalog tymczasowy, w którym będziemy pracować:

    mkdir / tmp / 1
    cd / tmp / 1

Użyj Ipkg, aby zainstalować Opkg
Podczas gdy zamierzamy zastąpić Ipkg jako menedżera pakietów, będziemy go używać do ręcznego instalowania pakietu instalacyjnego Opkg.

  1. Aby to zrobić, pobierz pakiet instalacyjny Opkg dla architektury ar71xx z pnia projektu OpenWRT:

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

    Notatka 1: W chwili pisania tego artykułu, 618 jest najnowszą wersją, może to ulec zmianie w przyszłości, więc odpowiednio się dostosuj.
    Uwaga 2: Być może jedyną różnicą w uzyskaniu tego poradnika dla innych architektur jest uzyskanie instalatora Opkg z odpowiedniej architektury dla twojego routera ... jednak nie jest to prawdą.

  2. Wywołaj Ipkg, aby ręcznie zainstalować Opkg, używając:

    ipkg zainstaluj opkg_618-2_ar71xx.ipk

    Uwaga: Możesz także, jeśli chcesz, ręcznie zainstalować każdy pakiet w repozytorium w ten sposób. Jednak to oznaczałoby, że będziesz musiał sam rozwiązać te zależności ... i co w tym będzie fajnego?

Uzyskiwanie plików biblioteki dynamicznej ("lib")
Wymagane pliki "lib" do działania Opkg są częścią dystrybucji OpenWRT. Aby je uzyskać, należy wyodrębnić je z "Root FileSystem" wspomnianej dystrybucji.

  1. Aby to zrobić, pobierz najnowszy podstawowy "Root FileSystem" dla distribution openWRT, który zawiera wymagane "lib" z pnia projektu OpenWRT:

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

  2. Wyodrębnij za pomocą:

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

  3. Skopiuj pliki "libs" z "rootfs", które wyodrębniliśmy powyżej, do katalogu "libs" na naszym JFFS, zachowując ich atrybuty i dowiązania symboliczne:

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

    Uwaga: Otrzymasz komunikat informujący, że podkatalogi zostały pominięte. Ponieważ nie potrzebujemy niczego poza plikami "lib", jest to w porządku i można bezpiecznie zignorować te wiadomości.

Naprawianie "ŚCIEŻKI" LD_LIBRARY
Musimy poinformować router, gdzie szukać wspólnych bibliotek (bibliotek), które właśnie "zainstalowaliśmy" i że musi to zrobić przed te, które zostały dostarczone z oprogramowaniem układowym.

  1. Aby to zrobić, ustaw ręcznie zmienną środowiskową LD_LIBRARY (na razie), aby była to lokalizacja, w której skopiowaliśmy nowe pliki lib, jako pierwsza w "PATH":

    export LD_LIBRARY_PATH = / jffs / usr / lib: $ LD_LIBRARY_PATH

Zapis do odczytu "/ etc"
Zamierzamy skopiować "/ etc" do JFFS, a następnie zrobić zwykły punkt montowania "/ etc", wskazać go. Spowoduje to otworzenie świata możliwości, ponieważ "/ etc" stanie się gotową do odczytu (którą osobiście czekałem na przekazanie lub zabiorę 7 lat) i sprawi, że pakiety, które oczekują tego zachowania, będą działać poprawnie.

  1. Utwórz katalog, w którym będzie przechowywane "/ etc":

    mkdir -p / jffs / geek / etc

  2. Rekursywnie kopiuj całość "/ etc", zachowując wszystkie podkatalogi, atrybuty plików i dowiązania symboliczne.

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

  3. Ręcznie (na razie) "bind mount" katalog "/ etc" do JFFS:

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

Ustaw katalog Optware ("/ opt")
Opkg z OpenWRT, spodziewa się, że będzie używany, gdy zbudowane zostanie oprogramowanie układowe routera. W tej chwili FileSystem nie jest jeszcze na routerze, a zatem wciąż może ulec zmianie, nie ma problemu z instalacją w dowolnej lokalizacji w FileSystem. Dlatego plik konfiguracyjny Opkg wskazuje pakiety do zainstalowania na "root" (/) w FileSystem. Jednak używamy Opkg po oprogramowanie wbudowane zostało zbudowane i zainstalowane na routerze, a ponieważ nie możemy zmienić katalogu głównego systemu plików, który ma być przeznaczony do odczytu, wskażemy wszystkie instalacje, które mają być zainstalowane w "/ opt". Jednak obecnie "/ opt" wskazuje również na lokalizację tylko do odczytu na oprogramowaniu rutera routera. Aby przezwyciężyć to, ustawimy "/ opt" na JFFS, który jest zapisywalny.

  1. Aby to zrobić, utwórz katalog, który będzie zawierał pakiety Optware:

    mkdir -p / jffs / opt

  2. Ręcznie (na razie) "bind mount" katalogu "/ opt" do JFFS jeden:

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

    Uwaga: poza zakresem tego przewodnika bardziej zaawansowani użytkownicy mogą chcieć zmienić ten punkt instalacji, aby wskazywać na HD.

Dostosowywanie pliku konfiguracji Opkg
Chcemy, aby plik konfiguracyjny Opkg był tam, gdzie Opkg szuka go domyślnie (który jest "/ etc") i dostosowany do instalacji na "/ opt".

  1. Aby to zrobić, przenieś plik konfiguracyjny opkg zainstalowany przez pakiet Opkg do zapisywalnej lokalizacji "/ etc":

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

  2. Zmień miejsce docelowe instalacji Optware na "/ opt" zamiast "root" (/).
    Aby to zrobić, z edytorem "vi" lub WinSCP przejdź do "/ etc /" i ustaw zawartość pliku "opkg.conf":

    vi /etc/opkg.conf

    Niech wygląda tak:

    src / gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
    dest root / opt
    dest ram / tmp
    list_dir ext / var / opkg-list
    opcja overlay_root / overlay

    Uwaga: Możesz zmienić dyrektywę "lists_dir" tak, aby wskazywała lokalizację, która nie znajduje się w pamięci RAM, ale raczej na JFFS. Chociaż mogłoby to odciążyć Cię od aktualizacji list, zanim będzie można zainstalować dodatkowe oprogramowanie (jeśli router zostanie ponownie uruchomiony po raz ostatni), stracisz około 1,5 MB ograniczonej przestrzeni JFFS, a Ty będziesz się przyczyniał do jej erozji.

Cześć kochanie
Powinieneś być w stanie zobaczyć, że Opkg działa, wydając aktualizację i listę poleceń.

  1. Jeśli wszystko poszło dobrze, powinieneś zobaczyć, że listy Opkg zostały zaktualizowane bez błędów i jesteś gotowy do wdrożenia skryptu w następnym kroku:

    aktualizacja opkg; lista opkg

  2. Poświęć trochę czasu, aby zacząć odkrywać pakiety dostępne w repozytorium ....

Skrypt startowy
Musimy teraz sprawić, aby cały wymagany montaż i ścieżka odbyły się automatycznie po uruchomieniu routera. W tym celu stworzyliśmy dla Ciebie ten skrypt inicjalizujący geek-init.

  1. Pobierz, a następnie wyodrębnij i umieść go w "/ jffs / geek / etc /". (Rozważ to z WinSCP).
  2. Wykonaj skrypt wykonywalny, wchodząc w jego właściwości za pomocą WinSCP lub wykonując:

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

  3. Spraw, aby skrypt był uruchamiany podczas uruchamiania routera za pomocą WebGUI. W obszarze Administracja -> Polecenia w polu tekstowym umieść:

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

    I kliknij "Zapisz start".

Kopanie opon
Jeśli wszystko poszło dobrze, teraz powinieneś móc ponownie uruchomić router i nadal używać menedżera pakietów Opkg. To jest aktualizacja, lista i instalacja aplikacji.
Sprawdźmy, czy wszystko działa, instalując komendę "netstat", która z jakiegoś powodu została niedawno pominięta w kompilacjach DD-WRT. Zanim to zrobimy, uruchom polecenie netstat w terminalu, a zobaczysz, że jesteś ucieszony przez błąd z powłoki, mówiąc "-sh: netstat: not found".

  1. Pierwszym krokiem będzie zawsze uaktualnienie list Opkg, tak aby mieć najnowszą listę pakietów z repozytorium:

    Aktualizacja opkg

  2. Jeśli nie wiesz, który pakiet zawiera polecenie "netstat", możesz filtrować wyniki za pomocą.

    lista opkg | grep netstat

  3. A teraz zainstaluj "netstat" używając:

    opkg install net-tools-netstat

    A teraz, kiedy ponownie wykonasz komendę netstat, działa ... zgrabne ha? :)

Do przyszłych artykułów, w których będziemy instalować i konfigurować pakiety oprogramowania za pomocą tej metody, możesz mieć mnóstwo fajnej zabawy odkrywania ogromnej ilości oprogramowania, które jest teraz na wyciągnięcie ręki.

Jeśli taka maszyna jest wirtualną niemożliwością, musi być logicznie skończona nieprawdopodobieństwem. Więc wszystko, co muszę zrobić, aby to zrobić, to ustalić, jak dokładnie jest to nieprawdopodobne, wprowadzić tę postać do skończonego generatora nieprawdopodobieństwa, dać mu filiżankę naprawdę gorącej herbaty i włączyć ... ... ... Jedną rzecz naprawdę nie lubię, jest "Smart-Ass".