Główna » jak » Jak zainstalować dodatkowe oprogramowanie na twoim routerze domowym (DD-WRT)

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

    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:

    • Zamień 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. Ze względu na to, ż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. Musimy również korzystać z HD w formacie Linux lub przynajmniej z 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 na pracę menedżera pakietów OpenWRT Opkg 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 transmisji BitTorrent, nadawca e-mail ssmtp i Knockd demona, 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 geek, 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

    W celu wypełnienia tego przewodnika należy zwrócić uwagę na następujące kwestie:

    1. Jak wspomniano powyżej, niniejszy przewodnik został stworzony i przetestowany na urządzeniu Buffalo WZR-HP-AG300H z oprogramowaniem "Pro" firmy Buffalo w wersji 17135. Powinien działać na dowolnym routerze opartym na Atheros (ar71xx) z dowolną wersją DD-WRT o tej samej wersji lub wyższej , ale twój przebieg może bardzo.
    2. Będziesz musiał włączyć SSH na routerze, a także zainstalować i używać WinSCP do łączenia się z nim. 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 dlatego, że jeśli router nie ma co najmniej 4 MB pamięci po sformatowanej przestrzeni, nie odniesie to żadnych 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 w oprogramowaniu układowym 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ływać Opkg, podczas ręcznego określania 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 na routerze.
    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żer pakietów, użyjemy go do ręcznego zainstalowania 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: Może być możliwe, ż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 sprawdzone przez Ciebie..

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

      ipkg install 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?

    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 wyekstrahowaliś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 będzie 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 utworzyć 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 umożliwi paczkom, które oczekują tego zachowania, działają poprawnie.

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

      mkdir -p / jffs / geek / etc

    2. Rekurencyjnie skopiuj 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 znajduje się jeszcze na routerze, a zatem nadal 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 sprzętowe 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ć ten problem, ustawimy opcję "/ opt" na JFFS, który jest do odczytu i zapisu.

    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 podłączenia, aby wskazywać na HD.

    Dostosowywanie pliku konfiguracji Opkg
    Chcemy, aby plik konfiguracyjny Opkg był tam, gdzie Opkg domyślnie go szuka (czyli "/ 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 wykonaj zawartość pliku "opkg.conf":

      vi /etc/opkg.conf

      Niech wygląda to 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, a raczej na JFFS. Ułatwiłoby to aktualizację list, ale 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 będziesz musiał się zmierzyć z jej erozją.

    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 ustawić tak, aby wszystkie wymagane instalacje i ścieżki odbywał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óra 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 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".