SpeedTouch 330

Z openSUSE wiki
Zintegrowania.png Poniższy artykuł należy zintegrować z artykułem Neostrada.
Uwaga.png Uwaga: Obecnie na rynku ceny routerów ADSL są na tyle niskie, że warto rozważyć zastąpienie nimi modemów USB oferowanych przez dostawców ADSL pod pozorem promocji. Routery ADSL są łatwe w konfiguracji, w wypadku Linuksa zapewniają natychmiastowy dostęp do Internetu, co jest ważne szczególnie w wypadku dystrybucji typu LiveCD/LiveUSB, dostarczają zewnętrzny firewall, co jest kluczowe dla posiadaczy innych systemów operacyjnych, oraz dodatkowe możliwości jak np. punkt dostępowy sieci WiFi.

SpeedTouch 330 to modem działający w technologii ADSL produkowany przez Thomson/Alcatel. Na polskim rynku wykorzystują go takie firmy jak TPSA (Neostrada), Multimedia (Emil), Netia (Net24), MNI (InterNeo). Istnieje kilka wersji tego modemu, co jest przyczyną drobnych, acz irytujących pomyłek podczas korzystania z niego. Dodatkowo dochodzą różne parametry ADSL dla różnych dostawców tej usługi, które są mylone przez mniej doświadczonych użytkowników.

Powstało do tego modemu kilka automatycznych narzędzi konfiguracyjnych. Jednak ze względu na niejasną licencję firmware, który zawierały, nigdy nie trafiły do żadnej dystrybucji. Powstały też programy, które pozwalają półautomatycznie skonfigurować usługę ADSL po dostarczeniu firmware. W openSUSE równie dobrze można ten modem skonfigurować za pomocą YaST.

Jednak dla osób, które wolą mieć pełną kontrolę nad tym modemem, warto skorzystać z poniższego opisu:

Wskazówka.png Wskazówka: Mniej doświadczeni użytkownicy openSUSE również mogą skorzystać z poniższego opisu. Wymaga on rozumienia następujących pojęć, poleceń i sposobu poruszania się w trybie tekstowym (konsoli):
  • konto root
  • cd - zmiana katalogu i ls wyświetli zawartość katalogu, w którym się aktualnie znajdujemy. Przykład:
stefan@d400:~$ cd /home/stefan/Desktop/
stefan@d400:~/Desktop$ ls
  przyklad1  przyklad2  SpeedTouch330_firmware_3012  SpeedTouch330_firmware_3012.zip
stefan@d400:~/Desktop$ cd SpeedTouch330_firmware_3012/
stefan@d400:~/Desktop/SpeedTouch330_firmware_3012$ ls
firmware-extractor  speedtch-1.bin  speedtch-2.bin  ZZZL_3.012
  • ./ - położenie w którym się aktualnie znajdujemy, naciśnieęcie przycisku [tab] pozwoli automatycznie dokończyć nazwę pliku lub katalogu, ew. zaproponuje możliwe nazwy. Przykład:
 stefan@d400:~/Desktop$ ls
 przyklad1  przyklad2  SpeedTouch330_firmware_3012  SpeedTouch330_firmware_3012.zip
 stefan@d400:~/Desktop$ cd ./Spee[naciśnij tab]
 stefan@d400:~/Desktop$ cd SpeedTouch330_firmware_3012/
 stefan@d400:~/Desktop/SpeedTouch330_firmware_3012$ ls
 firmware-extractor  speedtch-1.bin  speedtch-2.bin  ZZZL_3.012
 stefan@d400:~/Desktop/SpeedTouch330_firmware_3012$ cd /home/stefan
 stefan@d400:~/Desktop/SpeedTouch330_firmware_3012$ cd /home/stefan/
 stefan@d400:~$
  • cp - kopiuje plik - w poniższym artykule sposób użycia został dobrze przedstawiony.
  • touch - tworzy pusty plik:
touch /home/stefan/pusty_plik
  • chmod +x - nadaje prawa do wykonania:
chmod +x /home/stefan/plik


Spis treści


Identyfikacja wersji modemu

W Polsce dostępne są następujące wersje modemu SpeedTouch 330 tzw. "Revision 2.00" i "Revision 4.00". Niestety na obudowie nie ma żadnych informacji o wersji modemu, który posiadamy. Na szczęście narzędzia zawarte w openSUSE pozwolą nam sprawnie wszystko ustalić. Można w tym celu wykorzystać poniższe polecenie - proszę zwrócić uwagę na wersję modemu (Revision), w przykładzie zarte są informacje o obu modelach:

hwinfo --usb
 06: USB 00.0: 0000 Unclassified device
 [Created at usb.122]
 UDI: /org/freedesktop/Hal/devices/usb_device_6b9_4061_000E501DD3BE_if0
 Unique ID: mZxt.3kyR12RqrY5
 Parent ID: uIhY.9NZE2m2BCy9
 SysFS ID: /devices/pci0000:00/0000:00:1d.2/usb3/3-2/3-2:1.0
 SysFS BusID: 3-2:1.0
 Hardware Class: unknown
 Model: "Alcatel Telecom Speed Touch ISDN"
 Hotplug: USB
 Vendor: usb 0x06b9 "Alcatel Telecom"
 Device: usb 0x4061 "Speed Touch ISDN"
 Revision: "4.00"
 Serial ID: "000E501DD3BE"
 Driver: "usbfs"
 Speed: 12 Mbps
 Module Alias: "usb:v06B9p4061d0400dcFFdsc00dp00icFFisc00ip00"
 Driver Info #0:
   Driver Status: speedtch is not active
   Driver Activation Cmd: "modprobe speedtch"
 Config Status: cfg=new, avail=yes, need=no, active=unknown
 Attached to: #5 (Hub)
 05: USB 00.0: 0000 Unclassified device
 [Created at usb.122]
 UDI: /org/freedesktop/Hal/devices/usb_device_6b9_4061_0090D0A94DC2_if0
 Unique ID: FKGF.2+3YSbLEt_1
 Parent ID: pBe4.w1fIgtrDwD5
 SysFS ID: /devices/pci0000:00/0000:00:0a.1/usb2/2-1/2-1:1.0
 SysFS BusID: 2-1:1.0
 Hardware Class: unknown
 Model: "Alcatel Telecom Speed Touch ISDN"
 Hotplug: USB
 Vendor: usb 0x06b9 "Alcatel Telecom"
 Device: usb 0x4061 "Speed Touch ISDN"
 Revision: "2.00"
 Serial ID: "0090D0A94DC2"
 Driver: "speedtch"
 Speed: 12 Mbps
 Module Alias: "usb:v06B9p4061d0200dcFFdsc00dp00icFFisc00ip00"
 Driver Info #0:
   Driver Status: speedtch is active
   Driver Activation Cmd: "modprobe speedtch"
 Config Status: cfg=new, avail=yes, need=no, active=unknown
 Attached to: #4 (Hub)


Uwaga.png Uwaga: Zalecam korzystanie właśnie z hwinfo, gdyż lepiej formatuje informacje, oraz o wiele czytelniej podaje znacznie większość ilość szczegółów, np. status sterownika (Driver Status). Jeżeli nie masz hwinfo, zainstaluj je wydając polecenie:
yast -i hwinfo


W krytycznych sytuacjach można skorzystać z lsusb - proszę zwrócić uwagę na wiersz zawierający bcdDevice, będzie on oznaczać wersję (Revision) naszego modemu:

lsusb -v
 Bus 002 Device 002: ID 06b9:4061 Alcatel Telecom SpeedTouch ISDN or ADSL Modem
 Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               1.10
 bDeviceClass          255 Vendor Specific Class
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0         8
 idVendor           0x06b9 Alcatel Telecom
 idProduct          0x4061 SpeedTouch ISDN or ADSL Modem
 bcdDevice            2.00
 iManufacturer           1 
 iProduct                2 
 iSerial                 3 
 bNumConfigurations      1
 Bus 001 Device 002: ID 06b9:4061 Alcatel Telecom SpeedTouch ISDN or ADSL Modem
 Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               1.10
 bDeviceClass          255 Vendor Specific Class
 bDeviceSubClass         0
 bDeviceProtocol         0
 bMaxPacketSize0         8
 idVendor           0x06b9 Alcatel Telecom
 idProduct          0x4061 SpeedTouch ISDN or ADSL Modem
 bcdDevice            4.00
 iManufacturer           1 THOMSON
 iProduct                2 Speed Touch 330
 iSerial                 3 0018F66BD0E5
 bNumConfigurations      1

Wersję (Revision) modemu jest troszeczkę trudniej rozpoznać w tym wypadku, ale jest to możliwe.


Wybór firmware

Archiwum z firmware najlepiej pobrać ze strony producenta:

Archiwum należy rozpakować. Procedura w konsoli będzie wyglądać tak:

stefan@d400:~/Desktop$ unzip SpeedTouch330_firmware_3012.zip 
  Archive:  SpeedTouch330_firmware_3012.zip
  inflating: KQD6_3.012              
  inflating: ZZZL_3.012

Jak widać w katalogu, w którym wykonaliśmy polecenie, zostały wypakowane dwa pliki:

  • KQD6_3.012 dla Revision 2.00
  • ZZZL_3.012 dla Revision 4.00
Uwaga.png Uwaga: Niepotrzebny plik proszę usunąć, gdyż pozwoli to uniknąć wielu nieporozumień.


Przygotowanie firmware

Sterownik, który obecny w jądrze openSUSE, wymaga, aby firmware został podzielony na dwie części. Najprostszym sposobem podzielenia firmware jest skorzystanie z narzędzia firmware-extractor:

Wskazówka.png Wskazówka: W większości przeglądarek firmware-extractor prawdopodobnie się wyświetli. Nie ma to znaczenia i należy go zapisać. Można oczywiście do pobrania firmware-extractor wykorzystać wget wpisując w konsoli:
wget http://www.linux-usb.org/SpeedTouch/firmware/firmware-extractor

Dzielenie firmware nie jest jest trudne. Nasze pliki, czyli odpowieni dla naszego modemu firmware i firmware-extractor najwygodniej umieścić w jednym katalogu. Należy nadać prawa do uruchomienia plikowi firmware-extractor i podzielić plik firmware. Przykładowa sesja w konsoli będzie wyglądać w następujący sposób:

  • Dla modemu SpeedTouch 330 Revision 2.00
stefan@d400:~/Desktop/przyklad1$ ls
firmware-extractor  KQD6_3.012
stefan@d400:~/Desktop/przyklad1$ chmod +x ./firmware-extractor
stefan@d400:~/Desktop/przyklad1$ ./firmware-extractor ./KQD6_3.012 
** Boot block from ./KQD6_3.012:
   CRC: 0xd80bf9f7
   Length: 991
** Firmware block from ./KQD6_3.012:
   CRC: 0x78039fed
   Length: 762650
stefan@d400:~/Desktop/przyklad1$ ls
firmware-extractor  KQD6_3.012  speedtch-1.bin  speedtch-2.bin
  • Dla modemu SpeedTouch 330 Revision 4.00
stefan@d400:~/Desktop/przyklad2$ ls
firmware-extractor  ZZZL_3.012
stefan@d400:~/Desktop/przyklad2$ chmod +x ./firmware-extractor
stefan@d400:~/Desktop/przyklad2$ ./firmware-extractor ./ZZZL_3.012 
** Boot block from ./ZZZL_3.012:
   CRC: 0x69636579
   Length: 935
** Firmware block from ./ZZZL_3.012:
   CRC: 0x41d4143c
   Length: 775545
stefan@d400:~/Desktop/przyklad2$ ls
   firmware-extractor  speedtch-1.bin  speedtch-2.bin  ZZZL_3.012

Przygotowany firmware należy skopiować do katalogu /lib/firmware. W konsoli będzie wyglądać to tak:

stefan@d400:~/Desktop/przyklad2$ su
Hasło: 
d400:/home/stefan/Desktop/przyklad2# ls
   firmware-extractor  speedtch-1.bin  speedtch-2.bin  ZZZL_3.012
d400:/home/stefan/Desktop/przyklad2# cp ./speedtch-1.bin /lib/firmware/
d400:/home/stefan/Desktop/przyklad2# cp ./speedtch-2.bin /lib/firmware/
d400:/home/stefan/Desktop/przyklad2# cd /lib/firmware/
d400:/lib/firmware# ls
   ipw2200-bss.fw	ipw2200-ibss.fw  ipw2200-sniffer.fw  LICENSE.ipw2200-fw  speedtch-1.bin  speedtch-2.bin

Alternetywny sposób podziału firmware

Firmware do SpeedTouch można również podzielić przy pomocy polecenia dd.

Uwaga.png Uwaga: Mniej zaawansowanym użytkownikom zalecam jednak powyższy sposób - jest prostszy. Poniższy sposób mogą zignorować i przejść do następnej części tego artykułu..
  • Dla KQD6_3.012:
 dd bs=1 count=991 skip=36 if=./KQD6_3.012 of=./speedtouch-1.bin
 dd bs=1 count=763677 skip=1027 if=./KQD6_3.012 of=speedtouch-2.bin

Dla porządku sprawdzamy sumy kontrolne sha1

 sha1sum speedtouch-*
 06dfb9c0be97204d8dffa7f8966127dbc57d5eba  speedtouch-1.bin
 11647de2b71b7c28ad55af0efe5834c8cdeff025  speedtouch-2.bin
  • Dla ZZZL_3.012:
 dd bs=1 count=935 skip=32 if=./ZZZL_3.012 of=./speedtouch-1.bin
 dd bs=1 count=775545 skip=967 if=./ZZZL_3.012 of=speedtouch-2.bin

Dla porządku sprawdzamy sumy kontrolne sha1

 sha1sum speedtouch-*
 a7e4b7038dd266dea69e7fb4230b11cca3aa78e2  speedtouch-1.bin
 717e366a8051f30a3ab0becb4f90130710e54609  speedtouch-2.bin
 

Więcej informacji:

Testowanie firmware

Po przekopiowaniu firmware najprostszym sposobem sprawdzenia poprawności firmware jest ponowne uruchomienie komputera z podłączonym do niego modemem SpeedTouch 330. Należy obserwować umieszczone na nim diody. Pozwoli to ustalić, czy modem synchronizuje się poprawnie. Podczas uruchamiania openSUSE sygnalizacja diód powinna wyglądać podobnie do poniższej (podaję w kolejności):

Uwaga.png Uwaga: Poniższe fazy uruchomienia modemu diody powinny sygnalizować światłem zielonym


Sygnał diód Opis Uwagi
  • obie diody modemu świecą jednostajnie przez krótki czas
  • zostały włączone urządzenia USB
  • diody na moment gasną
  • sterownik jądra ładuje firmware do modemu
  • jedna dioda świeci się jednostajnie, druga miga
  • modem próbuje zsynchronizować się
  • obie diody świecą jednostajnie
  • modem zsynchronizował się


Rozwiązywanie problemów

Sygnał diód Opis Uwagi
  • jedna dioda świeci jednostajnie na zielono, druga na pomarańczowo
  • został użyty zły firmware
  • został on źle przygotowany
  • diody nie migają podczas podłączenia modemu i podczas uruchomienia
  • obie diody cały czas świecą jednostajnie na zielono
  • nie ma firmware
  • nie zostało umieszczone we właściwym miejscu
  • system nie może go uruchomić
  • cały czas jedna dioda świeci się jednostajnym światłem zielonym, a druga miga
  • modem nie może się zsynchronizować
  • problemy po stronie dostawcy ADSL*
  • źle podłączony kabel telefoniczny do modemu
  • źle założone mikrofiltry do telefonu, faksu, urządzenia wielofunkcyjnego na tej samej linii telefonicznej

ADSL w Polsce

Uwaga.png Uwaga: Wiele innych opisów usługi ADSL, np. do konfiguracji routerów, określają PPPoE i PPPoA jako protokół, a typy enkapsulacji, które są wykorzystywane VC-MUX i LLC, nazywają enkapsulacją.


Uwaga.png Uwaga: Niektóre narzędzia do konfiguracji i opisy do nich, np. graficzne, określają PPPoE jako PPP przez Ethernet (PPP over Ethernet), a PPPoA jako PPPoATM, PPP przez ATM (PPP over ATM).

Z punktu widzenia konfiguracji modemu SpeedTouch 330 ważne są następujące dane o usłudze:

  • protokół enkapsulacji (PPPoE lub PPPoA)
  • wartości Virtual Path Identifier (VPI) i Virtual Circuit Identifier (VCI)


Charakterystyka usługi ADSL polskich dostawców:

Dostawca Nazwa usługi Protokół enkapsulacji VPI VCI Uwagi
TPSA Neostrada PPPoA 0 35 ST 330 działa 100% poprawnie.
Netia Net24 na łączach TPSA PPPoA 0 35 ST 330 działa 100% poprawnie.
Netia Net24 na łączach Netii PPPoE 8 35 ST 330 działa 100% poprawnie.
Multimedia Polska PPPoE 0 33 ST 330 działa 100% poprawnie.
GTS Energis Multimo PPPoE 0 35 Nie sprawdzono. Źródło
COIG SA (Katowice)
Telekomunikacja Kolejowa
eTOP eTLINK PPPoA 0 35 Nie sprawdzono. Źródło
Okręgowa Spółdzielnia Telefoniczna (Tyczynie)
Polska Telefonia Cyfrowa
Telefony Podlaskie S.A. (Sokołow Podlaski i okolice)
Telefonia Dialog S.A. DialNet RFC1483 1 32

Obsługa modemu przy pomocy skryptów

Obsługa modemu SpeedTouch będzie wymagac zainstalowania następujących pakietów linux-atm, ppp, pppoa. Najłatwiej zainstalować je wydając w konsoli polecenie:

yast -i linux-atm ppp
Wskazówka.png Wskazówka: Warto do instalacji wykorzystywać menedżery pakietów takie jak YaST, czy zypper, gdyż jeżeli będzie to konieczne automatycznie doinstalują brakujące pakiety


Uwaga.png Uwaga: By załadować moduły po instalacji pakietów mniej doświedczeni użytkownicy mogą po prostu uruchomić komputer ponownie. Więcej informacji dostępne w części Rozwiązywanie problemów

Należy przygotować nasze login i hasło do usługi ADSL.

Uwaga.png Uwaga: Dostawcy tacy jak TPSA, czy Netia umieścili w loginie domenę, natomiast Multimedia Polska podaje sam login (bez domeny).


Wskazówka.png Wskazówka: Jak edytować pliki.

Należy wpisać IP serwerów nazw (servery DNS, name server). W tym celu edytujemy plik /etc/resolv.conf.

Wskazówka.png Wskazówka: Jeżeli plik /etc/resolv.conf nie istnieje możemy go utworzyć:
touch /etc/resolv.conf

Jego zawartość powinna zawierać:

# Moje serwery nazw (DNS)
nameserver 213.241.79.37
nameserver 83.238.255.76
Uwaga.png Uwaga: # w pliku oznacza komentarze dla użytkowników. Informacje po znaku # nie będą odczytywane przez system.


Wskazówka.png Wskazówka: Jeżeli korzystasz z systemów Windows i chcesz użyć tych samych samych serwerów nazw pod Linuksem, możesz je ustalić w następujący sposób: Kliknij: Start -> Uruchom -> Wpisz: cmd - otworzy się wiersz poleceń Windows. Należy w nim wpisać:
ipconfig /all

Następnie edytujemy zawartość plików:

/etc/ppp/chap-secrets
/etc/ppp/pap-secrets

Oba powinny zawierać linie z naszym loginem i hasłem, które powinny wyglądają tak:

"TU_WPISZ_SWÓJ_LOGIN" "*" "TU_WPISZ_SWOJE_HASŁO"  "*"


Jeżeli mamy PPPoA

Tworzymy plik najpierw pusty plik:

touch /etc/ppp/peers/speedtch 

Edytujemy jego zawartość podając nasze login i wartości VPI i VCI:

 noipdefault
 defaultroute
 user 'TU_WPISZ_LOGIN'
 noauth
 updetach
 usepeerdns
 plugin pppoatm.so
 VPI.VPC
 
 ### If the firmware loads and pppd won't
 ### connect uncomment this option to make
 ### pppd be more verbose in the system log
 
 # debug
 
 ### For more details (and more options)
 ### read man pppd

Linia z z wartościami powinna wyglądać w podobny sposób, oczywiście należy wpisać wartości tej usługi, którą posiadamy. Przykładowo dla Net24 na łączu TPSA wpis będzie wyglądać tak:

0.35

a dla Neostrady (te same wartości):

0.35

Teraz nadajemy skryptowi prawa do wykonania i uruchamiamy go:

chmod +x /etc/ppp/peers/speedtch
/etc/ppp/peers/speedtch

Usługę uruchamiamy wydając polecenie:

pppd call speedtch

Jeżeli mamy PPPoE

W wypadku PPPoE potrzebny będzie jeszcze jeden pakiet, który należy zainstalować wydając polecenie:

yast -i rp-pppoe

Tworzymy pusty plik:

touch /etc/ppp/peers/speedtch 

Edytujemy jego zawartość podając nasze login i wartości VPI i VCI:

 noipdefault
 defaultroute
 user "TU_WPISZ_LOGIN"
 noauth
 updetach
 usepeerdns
 plugin rp-pppoe.so
 nas0
 
 ### If the firmware loads and pppd won't
 ### connect uncomment this option to make
 ### pppd be more verbose in the system log
 
 # debug
 
 ### For more details (and more options)
 ### read man pppd
 

Tworzymy drugi pusty plik:

Uwaga.png Uwaga: Na tym etapie ten można umieścić w katalogu domowym. W przykładzie będzie to: /home/_TWÓJ_KATALOG_DOMOWY_/. Przy konfiguracji automatycznego uruchamianie będzie informacja, gdzie najlepiej umieszczać takie skrypty.
touch /home/_TWÓJ_KATALOG_DOMOWY_/runadsl.sh

I edytujemy jego zawartość wpisujuąc wartości VPI i VCI dla swojej usługi:

 #!/bin/bash
 modprobe pppoatm
 modprobe br2684
 count=0
 while [ $count -lt 40 ]
 do
   sync=$(dmesg | grep "ADSL line is up")
   if [ ! -z "$sync" ]
   then
     br2684ctl -b -c 0 -a VPI.VCI
     sleep 3
     ifconfig nas0 192.168.0.1 netmask 255.255.255.0
     sleep 10
     pppd call speedtch
     exit 0
   fi
   sleep 1
   count=$((1+$count))
 done
 echo "The Speedtouch firmware didn"t load" 

Wyedytowana linia może wyglądać w następujący sposób np. dla Multimedia Polska:

 br2684ctl -b -c 0 -a 0.33

a dla Net24 na łaczach Netii:

 br2684ctl -b -c 0 -a 8.35


Nadajemy mu prawa do wykonania:

chmod +x /home/_TWÓJ_KATALOG_DOMOWY_/runadsl.sh

I uruchamiamy go:

/home/_TWÓJ_KATALOG_DOMOWY_/runadsl.sh


Dodatkowe informacje

Rozwiązywanie problemów

Podczas rozwiązywania problemów pomocne okażą się informacje zawarte w /var/log/messages - wpisy utwórzone przez pppd. Dodatkowo można uzyskać więcej informacji usuwając w skrypcie /etc/ppp/peers/speedtch znak komentarza # przed debug.

Warto sprawdzić, czy po instalacji pakietów potrzebne moduły się zainstalowały poprawnie i są obecne w systemie:

lsmod | grep ppp

Polecenie powinno zwrócić informację podobną do poniższej:

linux-mjia:/home/koles # lsmod | grep ppp
pppoe                  30400  0
pppox                  20492  1 pppoe
pppoatm                22144  0
ppp_generic            43932  3 pppoe,pppox,pppoatm
slhc                   22144  1 ppp_generic
atm                    59804  3 br2684,pppoatm,usbatm

Uwaga! moduł br2684 będzie potrzebny, jeżeli korzystamy z protokołu enkapsulacji PPPoE. Jeżeli będzie brakować modułów można je załadować za pomocą polecenia modprobe.

W sieci