Win-Modem mit SIS Chipsatz unter Linux
Stand 28. Februar 2002
Dieses Dokument beschreibt die Nutzung eines Win-Modems mit einem SIS 630 Chipsatz unter Linux (ab Kernel 2.4). Das Notebook-interne Modem befindet sich in einem Gericom Overdose T PIII 1200 und sollte unter Debian zum Laufen gebracht werden.
1. Einleitung
1.1. Warum dieses Dokument?
Das SIS630 zählt zu den sogenannten Winmodems, welches keine Orginalen Hayes-Modems sind, sondern nur über Software die Funktionalität eines Modems nachbilden. Treiber findet man meist nur für MS-Windows-Versionen.
Wer versucht, eine Lösung zu finden, wird sich einer Flut von (zum grossen Teil unwichtigen) Informationen ausgesetzt sehen. Diese Doku soll ein wenig Abhilfe schaffen.
1.2. Hinweis
Die Doku erhebt keinen Anspruch auf Vollständigkeit und Fehlerfreiheit. Für Hinweise auf Fehler oder konstruktive Kritik bin ich sehr dankbar. Bitte an fabian@wickborn.net schicken. Für die Richtigkeit der gemachten Angaben gebe ich keine Garantie (obwohl ich mich natürlich um Korrektheit bemüht habe). Genausowenig übernehme ich die Haftung für eventuelle Beschädigungen an Hard- und Software.
1.3. Vorhandene Systemumgebung
- Debian (unstable)
- Kernel 2.4.18
- Folgende Ausgabe von lscpci:
00:01.6 Modem: Silicon Integrated Systems [SiS]: Unknown device 7013 (rev a0)
(Dies entspricht einem SmartLink HAMR5600 in einem ARM-Slot.)
2.Notwendige Software
Folgende Software wird benötigt:
- Die Treiber (Modules und Skripte zum Laden und Entladen), welche eine entsprechende Umgebung für das Modem schaffen. Eine Zeitlang war SmartLink so freundlich, diese Treiber auf der Firmenwebseite zur Verügung zu stellen. Da diese leider nicht mehr der Fall ist, muss man sich eine andere Quelle suchen. Die Datei heisst slmdm-2.03.tar.gz und ist auch hier verfuegbar.
- Ein Skript, welches bei neueren 2.4er-Kerneln die Symbolreferenzen anpasst: Download
3. Vorgehensweise
Zuallererst besorge man sich das Treiberarchiv. Dieses entpacke
man. Man erhält eine Reihe von Dateien. Für die Kernel
2.4.4-2.4.15 genügt es an dieser Stelle schon, ein "make
all;make install" zu machen. Dadurch werden die Module in
/lib/modules/misc und die anderen Dateien in /usr/lib/slmdm
abgelegt. In letzterem finden sich auch zwei Skripte
./load_slmdm und ./unload_slmdm. Diese müssen zum Laden und
Entladen der Module verwendet werden! Ein manuelles
Ausführen von modprobe reicht nicht aus, da für das
Winmodem noch eine entsprechende Umgebung geschaffen wird.
Bei neueren Kerneln treten jedoch beim Linken oder Laden der
Module Fehler auf, da bestimmte Symbole nicht aufgelöst
werden können. Abhilfe schaffen da folgende Workarounds:
Bei Kernel 2.4.16 ist die Datei os.c um folgende Zeile zu
ergänzen (VOR DEM KOMPILIEREN!):
unsigned securebits = SECUREBITS_DEFAULT;
Die Zeile sollte im direkten Anschluss an die
#include-Direktiven stehen.
Dies fügt eine zusätzliche Variable ein, die ansonsten
nicht gefunden wird. Für Kernel ab 2.4.17 reicht dies
jedoch nicht aus. Dort müssen nach dem Installieren noch
bestimmte Symbole angepasst werden. Dies lässt sich am
bequemsten mit dem oben verlinkten PERL-Skript machen. Wendet
man es im Verzeichnis /lib/modules/misc an, schafft es zwei neue
Dateien: slmdm.o.hacked und slamrmo.o.hacked, welchen man das
Suffix ".hacked" entfernen sollte, um die originalen Dateien zu
ersetzen.
Nun sollten sich auch hier die Module durch load_slmdm laden lassen. Das Skript erzeugt ein Device /dev/slmdm und schafft einen Link /dev/modem. Dieser kann nun zum DialIn mit ppp benutzt werden. Einfach wie üblich die Verbindung einrichten und als Device /dev/modem angeben. Das war's...
4. Links zu Quellen und weiterführenden Informationen
| Titel | Informationen |
|---|---|
| Hibernation and winmodem under Linux on Gericom Webboy TFT 13.3/14.1 | Quelle 1 |
| Winmodem under Linux on the Gericom OverdoseS notebook with any 2.4.x kernel | Quelle 2 |
| MobiliX - Mobile Computers and UniX | Bei MobiliX findet man jede Menge Infos zu Linux, BSD und anderen UniXen mit mobilen Computern (Laptops, PDAs, Handy). |