Temat: [HOWTO] OpenWrt 8.09.1 (Kernel 2.4) + SpeedTouch USB 330
Witam
Ten krótki przewodnik opisuje jak zmusić OpenWrt Kamikaze w wersji 8.09.1 na Kernelu serii 2.4 do obsługi modemu ADSL SpeedTouch 330 firmy Alcatel/Thomson.
Modem ten jest obsługiwany w OpenWrt na Kernelu z serii 2.6, jednak z powodu braku sterowników dla karty WiFi tkwiącej w routerze Asus WL-500w zostałem zmuszony na wprowadzenie takiej funkcjonalności do starszego Kernela.
Efektem moich prac postanowiam podzielić się ze społecznością. Dołożyłem starań, aby wdrożenie nowej funkcjonalności było możliwie najłatwiejsze - oprócz skompilowania odpowiednich modułów i programów utworzyłem do nich paczki oraz napisałem skrypt, ale o tym później.
Ze względu na brak czasu z mojej strony, opis będzie przedstawiał co należy zrobić aby uzyskać nową funkcjonalność, a nie jak to zrobić. Jeżeli jesteś chętny trochę rozpisać się na ten temat, nie krępuj się
Zabieramy się więc do roboty
Ze strony http://downloads.openwrt.org/kamikaze/8 … /packages/ należy pobrać oraz zainstalować następujące paczki:
kmod-usb-core
kmod-usb-uhci
kmod-usb-usb2
linux-atm
Z mojej strony, tj. http://likemandrake.pl.pl/openwrt/packages/ należy pobrać oraz zainstalować następujące paczki:
kmod-atm
kmod-pppoa
ppp-mod-pppoa
kmod-usb-speedtouch
speedtouch-usb-firmware
speedtouch
Istnieje również możliwość dodania mojego repozytorium do konfiguracji OpenWrt, co polecam zrobić, ze względu na możliwość pojawienia się aktualizacji w/w paczek. Możliwe, że pojawią się kiedyś jakieś inne, nowe paczki.
W tym celu do pliku /etc/opkg.conf należy dodać następującą linijkę (potem oczywiście zaktualizować repo poleceniem 'opkg update'):
src/gz likemandrake http://likemandrake.pl.pl/openwrt/packages
Na tym etapie to już koniec wprowadzania obsługi modemu Musimy jeszcze ponownie uruchomić routerek (polecenie 'reboot' lub w panelu wybrać 'System -> Reboot').
Należy zwrócić uwagę, czy po ponownym uruchomieniu dioda modemu zacznie mrugać przez jakiś czas, potem przestanie - co znaczyło by, że modem zsynchronizował się z linią.
Teraz zajmiemy się konfiguracją nowego połączenia. W tym celu w panelu administracyjnym przechodzimy do zakładki 'administration' i z menu wybieramy 'Network -> Interfaces -> WAN'.
Wybieramy 'Protocol' : 'PPPoA'
W 'Interface' wybieramy 'custom' i wpisujemy 'ppp0'
Pozycja 'Bridge interfaces' i 'Enable IPv6 on PPP link' powinna być odznaczona
Wpisujemy nazwę użytkownika i hasło (wiadomo)
Pozostawiamy zaznaczone pozycje 'Replace default route' i 'Use peer DNS'
Teraz w zależności od usługi oferowanej przez operatora musimy uzupełnić pola 'PPPoA Encapsulation', 'VPI' i 'VCI'. Dla usług Netii świadczonych na liniach TP są to odpowiednio 'LLC', '0' i '35'.
Teraz należałoby zapisać konfigurację i w zasadzie mieć nadzieję, że modem się połączy z internetem
Na zakończenie coś dla osób zainteresowanych rozwojem aplikacji
W paczce 'speedtouch' znajduje się plik '/etc/hotplug.d/usb/20-usb-speedtouch'. Jest to skrypt hotplug, który ma za zadanie automatyczne uruchomienie programu modem_run z odpowiednimi parametrami w celu wgrania firmware do modemu.
Aby zapewnić automatyczne połaczenie modemu z internetem po ponownym uruchomieniu routera (lub podłączeniu go w czasie pracy routera), musiałem dopisać pewien kawałek kodu, który metodą wykrywania ilości uruchomionych jednocześnie procesów modem_run, oczekuje do momentu, gdy będzie uruchomiony tylko jeden proces. W tym momencie następuje wywołanie skryptu '/etc/init.d/network' z parametrem 'restart' w celu wykrycia nowego interfejsu, jakim będzie prawdopodobnie 'ppp0'.
Może ktoś znajdzie alternatywne, lepsze rozwiązania i zechce je wdrożyć do mojej paczki
Pozdrawiam i życzę bezproblemowej pracy