#

# SpeedTouch USB HOWTO mit den Benoit - Papillault's GPL Treibern

Autoren:
Sylvain Trias bozo@nobodix.org
Edouard Gomez ed.gomez@free.fr
Bernhard Brandl brandl@tuxfamily.org
Christoph Tapler christoph@tapler.info
Letzte Änderung: 2002-05-07
Inhaltsverzeichnis:

- Einführung
- Benötigte Pakete
- Installation / Konfiguration
  - Linux - Kernel
  - Benoit's Treiber
  - pppd - Konfiguration
- Verbindung aufbauen
- Wo kann ich weiterführende Hilfe finden?
- Bemerkungen

## Einführung

Dieses Dokument wird Sie durch den Installationsprozeß von Benoit Papillault's GPL Treiber führen. Diese Treiber wurde für das Alcatel SpeedTouch USB modem geschrieben.

## Benötigte Pakete

- GPL Treiber von Benoit
- Microcode für das Alcatel SpeedTouch USB modem
- Kernel mit USB - Support (vorzugsweise Linux Version 2.4, sollte aber auch mit 2.2 funktionieren)
- pppd

### Download von Benoit's Treiber

Die letzte Version ist unter dieser Adresse zu finden.

### Microcode von Thomson

Den Microcode vom Thomson - Teiber kann man von der Thomson - Homepage herunterladen. Hier ist es unerheblich, ob man den Treiber von Windows oder Linux verwendet. Der Microcode ist immer derselbe und befindet sich in einem der folgenden Dateien:

- In der Datei mgmt.o im GNU/Linux Paket.
- In der Datei alcaudsl.sys im Windows® Paket.

(Wenn man das Modem schon unter Windows betreibt, kann man sich den Downloader sparen und unter \Windows\System die Datei alcaudsl.sys verwenden.)
Warnung: Das Paket darf entpackt aber unter keinen Fällen installiert werden! Vom Thomson - Treiber wird lediglich der Microcode verwendet!
GNU/Linux Treiber auf Thomson's Homepage : http://www.speedtouchdsl.com/dvrreg_lx.htm

### Kernel

Die Treiber sind für die Kernel Version 2.4 geschrieben worden. Es ist aber auch möglich, die Treiber ab Version 2.2.18 laufen zu lassen, da der USB - Code von der Kernel Version 2.4 stammt.
Es gibt einzelne Distributionen, wo schon alle nötigen Einstellungen richtig konfiguriert sind, sodaß es nicht nötig ist, den Kernel selbst zu kompilieren (Mandrake uns SuSE 7.3 zum Beispiel). Aber im Allgemeinen ist eine neue Konfiguration nötig RedHat zum Beispiel). Ein zweiter Grund - den Kernel neu zu konfigurieren ist - daß der Kernel ein kleines Problem mit dem hdlc - Code hat, wofür es aber einen Patch gibt (wird in der Folge beschrieben).
Also: Am besten sich den neuesten Kernel von www.kernel.org herunterladen, patchen und konfigurieren. Wie man einen Kernel konfiguriert, kompiliert und installiert wird, ist in der Kernel - Howto zu finden.

### pppd

pppd sollte ab der Version 2.3.11 funktionieren. Aktuell ist die Version 2.4.1 und ist hier zu finden.
Bemerkung: Wenn Sie eine Kernel Version 2.4 verwenden, dann müssen Sie eine pppd Version 2.4.x verwenden! (Umgekehrt - also Kernel Version 2.2 und pppd Version 2.3 bzw. 2.4 können hingegen miteinander)

## Installation und Konfiguration:

Die Installation wird in zwei Schritte aufgeteilt:

- Kernel - Konfiguration
- pppd - Konfiguration

### Kernel - Konfiguration

Daß die Software von Benoit funktionieren kann, muß im Allgemeinen der Kernel neu konfiguriert und kompiliert werden (siehe oben).
Folgende Teile müssen im Kernel enthalten sein:

- USB - Support
  Abhängig von Ihrem Motherboard müssen Sie eines dieser folgenden Protokolle verwenden:
  - uhci
  - ohci
  Diese Protokolle sind inkompatibel zueinander - deswegen muß man vorher bestimmen, welches Protokoll das Motherboard unterstützt. Dies ist aber relativ leicht zu eruieren, indem man
  # lspci -v | grep USB
  eingibt. In der Ausgabe müßte unter anderem so etwas ähnliches wie
  usb-ohci : CMD technologies Inc|USB0670B
  oder
  usb-uhci : USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
  zu finden sein.
  Abhängig von dieser Ausgabe weiß man jetzt, welches Modul man auswählen kann. Es gibt jedoch noch zwei Module beim UHCI - Protokoll. Im allgemeinen sollte eines der beiden funktionieren. Einfach probieren ;-)
  Die Auswahl der USB - Unterstützung schaut im Kernel folgendermaßen aus:
  <M>/<*> Support for USB (CONFIG_USB)
  <*> Preliminary USB device filesystem (CONFIG_USB_DEVICEFS)
  <M> UHCI (Intel PIIX4, VIA, ...) support (CONFIG_USB_UHCI)
  <M> UHCI Alternate Driver (JE) support (CONFIG_USB_UHCI_ALT)
  <M> OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support (CONFIG_USB_OHCI)
- PPP Support
  Man muß die folgenden Teile integriert haben:
  <M> PPP (point-to-point protocol) support (CONFIG_PPP)
  <M> PPP support for sync tty ports (CONFIG_PPP_SYNC_TTY)
- HDLC - Support
  HDLC - Support wird im Kernel mit folgenden Einstellungen aktiviert:
  Character Devices --->
  [*] Non-standard serial port support
  <M> HDLC line discipline support
  [*]Unix98 PTY suppor
  Wenn Sie eine Kernel Version < 2.4.18 verwenden, dann sollten Sie noch einen Patch installieren, der gelegentliche Abstürze verhindert. Ab der Kernel Version 2.4.18 wurde dieser Bug behoben und Sie können sich die folgenden Zeilen sparen.
  Dieser Patch ist im Package von Benoit enthalten ist. Die Anwendung des Patches geht folgendermaßen for sich:
  # cd /usr/src/linux
  # patch -p1 --dry-run < /path/to/drivers/n_hdlc.c.diff
  Wenn man keine Fehlermeldung bekommt, dann kann man sich sicher sein, daß der Patch zu dieser Kernel - Version dazupaßt. Wenn nicht (es kommt also ein Fehler oder eine Warnung daher), dann sollte man es lieber mit dem patchen lassen und in Kauf nehmen, daß der PC ab und zu abstürzt ;-/
  Wir gehen jetzt aber davon aus, daß der vorige Befehl fehlerfrei abgearbeitet wurde. Jetzt patchen wir wirklich:
  #patch -p1 < /path/to/drivers/n_hdlc.c.diff

Hiermit wäre die Kernelkonfiguration abgeschlossen. Man kann jetzt den Kernel mit seinen Modulen kompilieren und installieren.

### Installation der Treiber von Benoit

Die Datei speedtouch-x_y.tar.gz kann man mit folgendem Befehl entpacken:
# tar xvzf speedtouch-x_y.tar.gz
Man geht jetzt in das neu erzeugte Verzeichnis und führt die folgenden Befehle aus:
# ./configure
# make
Wenn der Kompiliervorgang erfolgreich war, dann mit
# make install
installieren. (Hierfür muß man auf jeden Fall als root eingeloggt sein.)
Jetzt müßten auch die Treiber installiert sein. Die Installationsprozedur hat die erforderlichen Dateien ins Verzeichnigs /usr/local/sbin kopiert. Stellen Sie sicher, daß dieser Pfad in Ihrem PATH - Verzeichnis dabei ist.

### Konfiguration von PPP

Es muß sichergestellt werden, daß die nötigen "Dateien" im /dev - Verzeichnis existieren.
Wechseln sie ins Verzeichnis /dev und führen Sie den Befehl
# ls *ppp*
aus. Wenn solche Dateien schon existieren, dann können sie folgenden Schritt auslassen.
Wenn keine Datei dieser Form existiert, dann erzeugen Sie die Datei mit
#./MAKEDEV ppp
Jetzt sollten Sie noch überprüfen, ob sie den richtigen ppp - Dämon (im Userspace) verwenden. Die Treiber sind mit den PPPD - Versionen 2.4.0 und 2.4.1 getestet worden. Es sollte aber auch ältere Versionen noch funktionieren (>=2.3.11). Die Version des ppp - Dämons kann man mit
# pppd --version
abfragen.
Um den pppd - Dämon funktionsfähig zu machen, sind folgende Konfigurationsdateien mit den folgenden Inhalt nötig:

1. /etc/ppp/options
   ------------------ /etc/ppp/options Beginn ------------------
   noauth
   usepeerdns
   lock
   noipdefault
   ------------------ /etc/ppp/options Ende ------------------
2. /etc/ppp/peers/adsl
   Erstellen Sie das Verzeichnis peers und die Datei adsl:
   # mkdir /etc/ppp/peers
   # touch /etc/ppp/peers/adsl
   Kopieren Sie folgenden Inhalt in diese Datei:
   ------------------ /etc/ppp/peers/adsl Beginn ------------------
   # This file could be renamed but its place is under /etc/ppp/peers
   # To connect to Internet using this configuration file
   # pppd call adsl updetach, where "adsl" stands for the name of this file
   debug
   kdebug 1
   noipdefault
   defaultroute
   pty "/usr/local/sbin/pppoa3 -m 1 -c -vpi 8 -vci 48"
   sync
   user "your_login_here"
   noauth
   noaccomp
   nopcomp
   noccp
   novj
   holdoff 4
   persist
   maxfail 25
   usepeerdns
   ------------------ /etc/ppp/peers/adsl Ende ------------------
   Sehr wichtig sind die Argumente, die hinter dem pty "..." stehen. Die VPI/VCI - Kennung ist abhängig vom Provider. Mein Provider (Jet2Web in Österreich) verwendet zum Beispiel 8/48. Wenn man nicht sicher ist, dann kann man diese zum Beispiel unter Windows in Erfahrung bringen. Das Speedtouch - Fenster zeigt diese Information an
   Bemerkung zu VPI/VCI:
   Da die ADSL - Verbindung ATM - basierend ist (zumindest bei PPP over ATM) müssen diese zwei Parameter spezifiziert werden (wie schon oben besprochen):
   - VPI: Virtual Path ID
   - VCI: Virtual Circuit ID
   ATM war ursprünglich für Sprachübertragung gedacht und ist ein synchrones Protokoll. Der Teilnehmer erhält einen fixen Zeitschlitz (timeslot) und somit auch eine konstante Datenrate (zumindest bis zum nächsten Gateway, der dann das synchrone Modell nicht mehr unterstützt).
3. /etc/ppp/chap-secrets und /etc/ppp/pap-secrets
   Es gibt zwei Protokolle, sich beim ISP zu identifizieren: CHAP oder PAP.
   Am besten man speichert einfach beide Varianten - so wird immer das richtige ausgewählt.

   Die Dateien sollten dann folgendermaßen aussehen:

   -------------------/etc/ppp/chap-secrets Beginn-------------------
   # client server secret IP addresses
   "your_login_here" "*" "your_password_here" "*"
   -------------------/etc/ppp/chap-secrets Ende-------------------

   Die Datei /etc/ppp/pap-secrets sieht ganz gleich aus, wobei natürlich als your_login_here der login-Name eingetragen werden muß (bei Jet2Web eine zehnstellige Zahl) und als Password ebenfalls das zum login-Namen zugehörige Paßwort.
4. /etc/modules.conf
   Als letztes muß man noch sicherstellen, daß in dieser Datei die richtigen alias - Namen zugewiesen werden. Bei den neuen Standarddistributionen sollten die meisten aliasses schon eingetragen sein. Folgende Zeilen sollte man in dieser Datei finden:
   -------------------/etc/modules.conf Beginn-------------------

   alias char-major-108 ppp_generic
   alias /dev/ppp ppp_generic
   alias tty-ldisc-3 ppp_async
   alias tty-ldisc-13 n_hdlc
   alias tty-ldisc-14 ppp_synctty
   alias ppp-compress-21 bsd_comp
   alias ppp-compress-24 ppp_deflate
   alias ppp-compress-26 ppp_deflate
   -------------------/etc/modules.conf Ende-------------------

5. Nameserver eintragen
   Im Normalfall sollte es genügen, die Nameserver mit dem Konfigurationsprogramm ihrer Distribution einzutragen. Wenn Sie eine SuSE Distribution besitzen, dann tragen sie mittels YAST die vom Provider zur Verfügung gestellten Adressen ein. (Weitere Bemerkung )

## Verbindung aufbauen

Zuerst muß der Microcode in das Modem geladen werden und dann muß der pppd - Dämon gestartet werden, um die eigentliche Verbindung aufzubauen. Dies ist nur mit root - Rechten möglich.

- ### Laden der entsprechenden Module

  # modprobe ppp_generic
  # modprobe ppp_synctty
  # modprobe n_hdlc
- Überprüfen, ob das usbdevfs gemountet ist
  # modprobe usbcore
  # mount none /proc/bus/usb -t usbdevfs
  # modprobe usb-uhci oder modprobe usb-ohci oder modprobe uhci
- Microcode ins Modem laden
  # modem_run -f /pfad/zum/microcode/mgmt.o (Linux - Treiber) oder
  # modem_run -f /pfad/zum/microcode/alcaudl.sys (Windows - Treiber)
- PPPD - Dämon starten
  # pppd call adsl updetach
- Überprüfen, ob die Verbindung aufgebaut wurde (nach ein paar Sekunden)
  # ifconfig ppp0
  Es sollten dann Informationen, wie MTU, IP - Adresse, usw ausgegeben werden.
  Wenn keine Information kommt, dann eventuell nach ein paar Sekunden probieren. Wenn keine Verbindung zustande kommt, dann muß man sich die log - Dateien im Verzeichnis /var/log ansehen...
  Die Zeit des Verbindungsaufbaus variiert im Allgemeinen.

Normal sollten die Module automatisch geladen werden. Zudem wird bei den aktuellen Distributionen das USB - Filesystem via /etc/fstab automatisch gemountet. Das heißt, es bleiben im Prinzip lediglich zwei Zeilen übrig, die für den Start der ADSL - Verbindung nötig sind: Den Microcode laden und die ppp - Verbindung starten.

## Wo finde ich weiterführende Hilfe?

- Man - Pages
  Die Module pppoa3 und modem_run beinhalten man - pages. Vielleicht findet man hier die gewünschte Information...
- Mailing - List
  Technische Hilfe findet man am besten in der Mailinglist von Benoit. Der Großteil ist zwar in französisch, aber wenn man eine englische Frage stellt, dann bekommt man im Allgemeinen verläßlich eine (englische ;-) ) Antwort, die einem weiterhilft. Bitte keine HTML - Postings. Bitte auch keine Mails, die Providerspezifisch oder Netzwerkspezifisch sind (NAT, DNS, ...).
  Wenn man ein technisches Problem hat, dann sollte man zuerst das Online - Archiv durchforsten. Wenn hier das Problem noch nicht besprochen wurde, dann kann man sich mit einer Mail an speedtouch-request@ml.free.fr mit dem Betreff: subscribe eintragen und Mails an diese Mailinglist schicken.
- IRC
  Server: irc.freenode.net
  Channel: #speedtouch
  Kurznamen, die es sich zu merken lohnt:
  benoit: Benoit Pappilault
  francois: Francois Rogler
  GomGom: Edouard Gomez

## Bemerkungen

- [1] Wenn irgendwas unklar oder falsch ist, dann bitte eine Mail an mich.
- [2] Ich verwende die SuSE 7.2 Distribution und habe mir dafuer ein Startup - Script geschrieben, das den Download des Microcodes automatisch beim Booten erledigt. Wenn jemand Interesse daran hat, soll am besten bei meiner Homepage vorbeischauen. Hier kann man sich das Script herauskopieren.