zxdsl 852 i net24 - instalacja bez użycia zewnętrznego oprogramowania

Neostrada, DialNet, Net24
psokol
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 17 paź 2010, 11:10
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

zxdsl 852 i net24 - instalacja bez użycia zewnętrznego oprogramowania

Post autor: psokol » 17 paź 2010, 14:34

Około tygodnia zajęło mi uruchomienie i skonfigurowanie modemu ADSL na nowo zainstalowanym Ubuntu 10.10. Postanowiłem spisać swoje doświadczenia z tym związane i opublikować na łamach tego forum - może ten opis przyda się innym użytkownikom. Administrację proszę o rozważenie możliwości przyklejenia tego postu w dziale ADSL.

Mój modem to archaiczny zxdsl 852v2, a dostawcą internetu jest Netia na łączach analogowych TP (modem pochodzi z zestawu Neostrady). Poniższy opis z pewnością w całości lub po części można wykorzystać w przypadku innych operatorów, modemów i systemów Linux opartych na dystrybucji Debian.
Programy takie jak ubudsl czy linnet są całkiem dobrym rozwiązaniem ale mają one dwie zasadnicze wady:
  • użytkownik nie wie jak one działają, przez co kiedy coś pójdzie nie tak, to w zasadzie pozostaje tylko po omacku próbować naprawić,
  • programy te nie wykorzystują pełni możliwości systemu.
Z tego powodu postanowiłem pomęczyć się trochę i skonfigurować połączenie internetowe na suchym systemie bez jakiegokolwiek zbędnego, dodatkowego oprogramowania.
  1. Sterownik modemu

    Świetny opis kompilacji sterownika znajduje się na stronie http://fiddlesticker.wordpress.com/2009 ... -6-31-x86/. Z racji tego, że jest po angielsku, pokrótce opiszę co należy zrobić. Najpierw pobieramy kody źródłowe sterownika ze strony http://linnet.cba.pl/attachment.php?aid=5, potem patch ze http://mariuszs.googlepages.com/zxdslv2-2.6.31.diff. Po zaktualizowaniu źródeł, kompilujemy je w standardowy sposób i instalujemy.

    Podczas kompilacji na gołym Ubuntu 10.10 pojawił się problem braku plików nagłówkowych autoconf.h i bounds.h (możliwe że jeszcze innych). Pliki można znaleźć w pakiecie linux-headers-2.6.35-22-generic_2.6.35-22.33_i386.deb znajdującym się w położeniu pool/main/l/linux/ na płycie instalacyjnej ubuntu. Niby pakiet był zainstalowany ale plików brakowało. Pakiet rozpakowałem a następnie plik autoconf.h skopiowałem do /usr/src/linux-headers-2.6.35-22-generic/include/linux a bounds.h do /usr/src/linux-headers-2.6.35-22-generic/include/generated.
    Sterownik powinien zostać uruchomiony jako moduł jądra, po podłączeniu przewodu USB do modemu. Można użyć także polecenia

    Kod: Zaznacz cały

    modprobe unicorn_usb_eth
    W tym momencie modem powinien się uruchomić i zsynchronizować, co zasygnalizowane zostanie zaświeceniem diód PWR i LINK.
    Moduł sterownika można uruchomić z określonymi parametrami łącza ADSL. W tym celu w katalogu /etc/modprobe.d utworzyłem plik options.conf, w którym wpisałem

    Kod: Zaznacz cały

    options unicorn_usb_eth ActivationMode=3 VPI=0 VCI=35 PROTOCOL=pppoatm ENCAPS=vc-encaps
    VPI, VCI, PROTOCOL i ENCAPS są parametrami łącza analogowego, które ustawiłem sugerując się informacjami na stronie http://pomoc.x.pl/art.php?12,sterowniki ... instrukcje. Pomoc odnośnie innych wartości parametrów można odnaleźć w pliku README archiwum sterownika.
  2. Konfiguracja interfejsu i ustawień sieciowych

    Po uruchomieniu sterownika powinien stać się dostępny dodatkowy interfejs sieciowy. W przypadku Ubuntu 10.04 był to u mnie zx0 - teraz jest to dsl0. Interfejs można aktywować wydając polecenie

    Kod: Zaznacz cały

    sudo ifconfig dsl0 up
    Plik /etc/resolv.conf zawiera adresy serwerów DNS. Jeśli plik nie istnieje to należy go utworzyć. U mnie wygląda on tak:

    Kod: Zaznacz cały

    nameserver 62.233.233.233
    nameserver 87.204.204.204
  3. Konfiguracja programu pppd

    Do nawiązania połączenia internetowego przy pomocy modemu ADSL służy program pppd - Point to Point Protocol Daemon. Program - jak to zwykle w systemach unixowych - można wywołać z ogromną ilością opcji. Dla ułatwienia zalecam zgromadzić je w osobnym skrypcie. Skrypt znajdują się w położeniu /etc/ppp/peers. Tam też umieściłem plik o nazwie zxdsl852 o następującej zawartości:

    Kod: Zaznacz cały

    user "nazwa_użytkownika"
    lock
    noipdefault
    defaultroute
    hide-password
    lcp-echo-interval 20
    lcp-echo-failure 3
    connect /bin/true
    noauth
    persist
    mtu 1492
    noaccomp
    default-asyncmap
    noaccomp
    holdoff 4
    plugin rp-pppoe.so
    nic-dsl0
    usepeerdns
    updetach
    Opcje lub ich część można także umieścić w pliku /etc/ppp/options - wtedy wszystkie połączenia będą dodatkowo domyślnie ich używać. Tłumaczenie wszystkich opcji mija się z celem, tym bardziej, że sam się w nie zbytnio nie zagłębiałem. Użyłem zestawu opcji, których do połączenia używa program linnet. Niezbędne informacje na temat znaczenia poszczególnych opcji można znaleźć w podręczniku programu (polecenie "man pppd").
    Zwrócę uwagę na dwa najważniejsze wiersze:
    • user "nazwa_użytkownika" - zawiera login otrzymany od dostawcy, o postaci np. "abcde@webnet24.pl",
    • nic-dsl0 - określa używany interfejs sieciowy, skonfigurowany w poprzednim punkcie.
    W katalogu /etc/ppp powinien znaleźć się plik o nazwie pap-secrets. Zawiera on nazwy użytkowników i przyporządkowane im hasła wykorzystywane przy połączeniach. Przykładowa zawartość pliku:

    Kod: Zaznacz cały

    "nazwa_użytkownika" * "hasło" *
    O ile się nie mylę, zamiast znaków gwiazdki można wpisać nazwy skryptów umieszczonych w katalogu peers, określanych w dokumentacji jako "provider". Dzięki temu można zapewne łączyć się używając różnych użytkowników lub dostawców internetu. Gwiazdka natomiast oznacza jak mniemam, że wszystkie skrypty będą używały tych samych danych uwierzytelniających.

    Połączenie z internetem mogę nawiązać wydając polecenie

    Kod: Zaznacz cały

    pppd call zxdsl852
    gdzie ostatnie wyrażenie jest oczywiście nazwą skryptu z zestawem opcji. Jeśli wszystkie opcje programu pppd umieszczone zostały w pliku /etc/ppp/options, to do nawiązania połączenia wystarczy samo pppd. Po wydaniu polecenia powinien zostać aktywowany interfejs ppp0, przez który bezpośrednio nawiązywane jest połączenie sieciowe. Wielce prawdopodobne jest, że połączenie uda się nawiązać dopiero po ponownym uruchomieniu systemu - tak było w moim przypadku.
  4. Automatyczne nawiązywanie połączenia

    Ubuntu jak i zapewne inne systemy oparte na Debianie już od momentu zakończenia instalacji, jest całkowicie przystosowany do typowych zadań, takich jak automatyczne wykonywanie pewnych czynności. W pierwszej kolejności należy aktywować interfejs sieciowy modemu a następnie nawiązać połączenie. Jedno i drugie skonfigurować można w pliku /etc/network/interfaces. Do pliku dodałem kilka wierszy:

    Kod: Zaznacz cały

    auto dsl0
    iface dsl0 inet ppp
    pre-up /sbin/ifconfig dsl0 up
    provider zxdsl852
    Dodatkowy opis jest chyba zbędny. W taki sposób połączenie nawiązywane jest przez zalogowaniem do konta użytkownika, co ma ogromne znaczenie w wielu przypadkach.
    Dobrze byłoby także skonfigurować automatycznie wykonywanie pewnych czynności, które zazwyczaj wykonujemy po nawiązaniu połączenia. Ja na przykład aby mieć zdalny dostęp do komputera przez ssh, synchronizuje swoje dynamicznie przydzielone IP z domeną serwisu DynDNS za pomocą programu "inadyn". W tym celu w katalogu /etc/ppp/ip-up.d umieściłem skrypt "inadyn" o następującej postaci:

    Kod: Zaznacz cały

    #!/bin/sh
    
    /usr/local/bin/inadyn -u nazwa_użytkownika -p hasło -a host.dyndns.org --background --iterations 1 --syslog
    Ważne aby używać ścieżek bezwzględnych a na początku skryptu wskazać powłokę sh - w przypadku bash skrypt nie chciał się uruchomić. Automatycznie uruchomione zostaną wszystkie skrypty umieszczone w wymienionym katalogu.

    W celu zresetowania modemu (np. po to by uzyskać nowe dynamicznie przydzielone ip) wystarczy odłączyć przewód USB od modemu a następnie podłączyć go ponownie - połączenie powinno zostać nawiązane a skrypty wykonane automatycznie bez konieczności wydawania żadnych dodatkowych poleceń.
    W przypadku problemów z nawiązaniem połączenia, można zdiagnozować przyczyny wyszukując w pliku dziennika wpisów procesu pppd (np przy użyciu przeglądarki dzienników systemowych) znajdujący się w położeniu /var/log/messages. Pogram inadyn uruchomiony z powyższym zestawem opcji, dodaje wpisy do tego samego pliku dziennika.
Ponieważ opisany sposób konfiguracji nie wykorzystuje network managera, to niektóre programy jak firefox czy pidgin po uruchomieniu pozostają w trybie offline. Rozwiązaniem jest usunięcie pakietu network-manager.
Należy pamiętać, że każdorazowa instalacja nowego jądra wymaga ponownego zainstalowania modułu sterownika.
Cytko
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 06 lis 2010, 17:24
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: zxdsl 852 i net24 - instalacja bez użycia zewnętrznego oprogramowania

Post autor: Cytko » 06 lis 2010, 17:35

Wielkie dzięki stary.
Miałem podobny problem ze swoim remixem Ubuntu 10.10 i neostradą. Mimo że lekko zmodyfikowałem twój sposób to właśnie dzięki niemu udało mi się w końcu połączyć z internetem. Postępowałem zgodnie z twoimi instrukcjami, miałem tylko jakiś problem z autoryzacją mojego konta podczas łączenia. Rozwiązałem go konfigurując swoje połączeni programem linnet 0.1 a następnie zastępując zawartość pliku /etc/ppp/peers/linnet tym co mamy w pliku zxdsl852. Samo połączenie odpalam także programem linnet. Może i to nieco głupie ale najważniejsze że w końcu działa.
Jeszcze raz dzięki.
ODPOWIEDZ

Wróć do „ADSL”