ForumSmartLink56K (PCI) und SuSE10
Christian Voit – Mittwoch, 02. November 2005 01:17 Uhr

Hallo, mein Problem ist es, eine SmartLink PCI561 in Betrieb zu nehmen.

KInternet findet sie und weist ihr /dev/ttySL0 zu. Nur in den Devices gibt es kein solches Geraet! Nachdem die Konfiguration des Providers und so weiter abgeschlossen ist, klappt die einwahl nicht, wahrscheinlich, weil das Device nicht vorhanden ist. SuSE legt zwar brav nen link von /dev/modem nach /dev/ttySL0, aber das gibts ja nicht.

ein “modeprobe slamr” gibt nichts aus. ein folgendes “dmesg” bringt mir:

eth0: no IPv6 routers present
slamr: module not supported by Novell, setting U taint flag.
slamr: module license ‘Smart Link Ltd.’ taints kernel.
slamr: SmartLink AMRMO modem.
ACPI: PCI interrupt for device 0000:01:07.0 disabled
slusb: module not supported by Novell, setting U taint flag.
ST7554 USB Modem.
usbcore: registered new driver ST7554 USB Modem
subfs 0.9

das paket smartlink-softmodem ist installiert.

ein lspci bringt mir auch die karte korrekt:

00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)
01:07.0 Modem: ALi Corporation SmartLink SmartPCI561 56K Modem
01:08.0 RAID bus controller: Silicon Image, Inc. PCI0680 Ultra ATA-133 Host Controller (rev 02)
01:0c.0 RAID bus controller: Silicon Image, Inc. SiI 3114
[SATALink/SATARaid] Serial ATA Controller (rev 02)

Was mache ich falsch, bzw. wie komme ich zu dem Device /dev/ttySL0?

Vielen Dank für die Hilfe.

1 Antwort
Sebastian Pätzold – Mittwoch, 02. November 2005 22:36 Uhr

Hallo, Christian …

Das benötigte Device /dev/ttySL0 wird erst generiert, wenn der Dienst “slmodemd” gestartet wurde. Ob dieser Dienst gestartet werden soll, kann man im Runlevel-Editor unter Yast einstellen.

Ich hoffe, dass ich dir helfen konnte.

Christian Voit – Donnerstag, 03. November 2005 17:44 Uhr

Hallo, Sebastian,

vielen Dank fuer diesen Hinweis. Wenn ich den Runlevel-Editor aufrufe, erscheint bei slmodemd ein ja*.
Wenn ich den Daemon deaktiviere und wieder starten will, erscheint:

/etc/init.d/slmodemd start gab 7 (Programm wird nicht ausgeführt) zurück:br> Starting SmartLink Modem driver: ..failed

1.Was bedeutet in diesem fall das Sternchen?
2.Warum failed, wenn die Treiber installiert sind.

Danke,

Christian

Sebastian Pätzold – Donnerstag, 03. November 2005 22:35 Uhr

Hallo, Christian …

Was das Sternchen hinter dem ja bedeutet, kann ich dir leider nicht sagen.
Aber aus dem ja kann ich schlussfolgern, dass du den Runlevel-Editor nur im Einfachen Modus ausgeführt hast?

Du kannst den Runlevel-Editor auch in den Expertenmodus umschalten und dort genauer einstellen, in welchem Runlevel der Dienst slmodemd gestartet werden soll. So sollte in der entsprechenden Zeile mindestens eine 5 enthalten sein, damit der Dienst auch in der grafischen Oberfläche läuft. Wenn nicht, kannst du weiter unten noch einen Haken bei der 5 setzen. Beende dann den Runlevel-Editor.

Starte dann dein Linux neu (eigentlich sollte das bei Linux nicht notwendig sein, kann aber auch dort manchmal Wunder bewirken) und schau, ob es jetzt funktioniert. Wenn der grafische Bildschirm zum Einloggen erscheint, schalte bitte mal auf die erste Textkonsole um (Strg+Alt+F1) und drücke die Esc-Taste, damit du die Startmeldungen lesen kannst. In der Zeile “Starting service slmodemd” (oder so ähnlich) kannst du erkennen, ob der Dienst sauber gestartet wurde oder ob ein Fehler aufgetreten ist.

Ich bin auf deine Rückmeldung gespannt …

Kai Sandig – Donnerstag, 03. November 2005 23:22 Uhr

Guten Abend,
habe das gleiche Modem und auch SUSE 10.0 installiert. – gleiches Problem!
Habe schon x Versionen des Smartlink-Paketes getestet. Die letzte Version (2.9.11) von [1] ließ sich dan endlich ohne Fehler kompilieren.
slmodemd funktioniert nich ohne geladenes Kernel-Modul slamr
Allerdings läßt mich SUSE das Modul slamr nicht laden – dmesg gibt folgendes aus:

slamr: module not supported by Novell, setting U taint flag.
slamr: module license ‘Smart Link Ltd.’ taints kernel.
slamr: SmartLink AMRMO modem.

Und ohne geladenes slamr – kein ttySL0 – kein funktionierendes Modem

Bin langsam am Verzweifeln.
Hat jemand eine Idee ???

Danke Kai

[1] http://linmodems.technion.ac.il/packages/smartlink/

Sebastian Pätzold – Freitag, 04. November 2005 03:23 Uhr

Hallo …

Ich habe die Erfahrung gemacht, dass die Datei /etc/init.d/slmodemd, die für den Startvorgang des Dienstes slmodemd verantwortlich ist, unter SuSE-Linux nicht ganz astrein ist. Ich musste unter SuSE 9.2 selbst Hand anlegen.

Auch ist mir aufgefallen, dass in der Steuerdatei /etc/sysconfig/slmodemd das falsche Land eingetragen war. Dort sollte die entsprechende Zeile wir folgt aussehen:

SLMODEMD_COUNTRY=”GERMANY”

Bitte tut mir mal den Gefallen und lasst uns weiter herumprobieren (Ferndiagnose ist meist nicht so einfach). Deaktiviert mit dem Runlevel-Editor den Dienst slmodemd in allen Runleveln. Startet dann bitte euer Linux neu und ladet das Modul slamr als root manuell:

# modprobe slamr

Normalerweise haben die Ausgaben von dmesg, dass das Modul slamr den Linux-Kernel “verdirbt” oder von Novell nicht unterstützt wird, keine wesentliche Bedeutung. Das Modul wird wahrscheinlich trotzdem geladen. Kontrollieren kann man das mit

# lsmod | less

slamr sollte in der Liste nun evtl. ganz am Anfang stehen.

Schaut dann bitte einmal nach, ob jetzt das Device slamr0 vorhanden ist:

# l /dev/slamr*

Wenn nicht, kann man es jetzt mit dem folgenden Befehl erzeugen:

# mknod -m 0600 /dev/slamr0 c 242 0

Nun kann man den Dienst slmodemd starten:

# /usr/sbin/slmodemd –country=GERMANY /dev/slamr0

Sollte das alles funktioniert haben, könnte die Einwahl in das Internet mit kinternet jetzt klappen.

Ich bin gespannt auf eure Reaktionen …

Kai Sandig – Freitag, 04. November 2005 09:07 Uhr

Moin, Moin,

kann im Moment nicht rumprobieren (sitze auf Arbeit am Windoofs-PC).

Kann also nicht sagen was lsmod ausspuckt. Ich weiß aber, daß in /dev die Geräte slamr0-slamr4 vorhanden sind (sind allerdings 0 byte groß – muß das so sein ?)

Ein direktes starten des Dienstes in /usr/sbin bringt einen “slamr0 not found. broken config?”

Ich bekomme slmodemd also nicht zum laufen.

Werde mir heut abend aber nochmal genauer anschauen ob das slamr-Modul überhaupt geladen wird.

Bis dann…

Kai Sandig – Sonntag, 06. November 2005 22:52 Uhr

N’abend

HEUREKA-ICH HAB’S GEFUNDEN !!!!

Nach weiteren 2 Tagen rumprobieren bin ich nun endlich mit SUSE 10 und meinem Smartlink Winmodem am Netz!

Das Problem bestand darin, daß slamr0 zwar angelegt, aber nicht initialisiert wurde:—–> device 0000:01:07.0 grabbed by serial !!!!
(Yast erkennt das Smartlink automatisch und belegt es mit einem eigenen Treiber)
So konnte der Smartlink-Treiber zwar die Device-Files anlegen, aber nicht auf die Hardware zugreifen!

Die Lösung bringt ein zusätzliches Kernel-Modul (ungrab-winmodem) welchen es auch bei [1] zum download gibt.

Der Rest war dann nur noch eine Frage der Konfiguration.

Hier meine “Komplettlösung!” ;-)

1. Treiber “slmodem-2.9.11-20051009.tar.gz” und “ungrab-winmodem.tar.gz” bei [1] downloaden – muss dann halt noch mit Windows sein :-(

2. ungrab-winmodem entpacken und kompilieren

3. Smartlink Treiber entpacken und kompilieren

4. Im Verzeichnis der Smartlink-Treiber gibts ein Verzeichnis ./scripts/suse dort das Script slmodemd.SUSE nach /etc/init.d/slmodemd und slmodemd.conf nach /etc/config/slmodemd kopieren

5. dieses Script muß jetzt noch angepasst werden (die Zeilen mit >>> einfügen):


case “$1” in
start)
echo -n “Starting slmodemd”
# loading modules also required for restart
>>> mknod -m 600 /dev/slamr0 c 242 0
>>> mknod -m 600 /dev/slamr1 c 242 1
>>> mknod -m 600 /dev/slamr2 c 242 2
>>> mknod -m 600 /dev/slamr3 c 242 3
>>> modprobe ungrab-winmodem
if [ “`echo “$SLMODEMD_DEVICE”|cut -c6-10`” == “slamr” ]; then
modprobe slamr
else
modprobe slusb
fi
startproc $SLMODEMD_BIN –country=$SLMODEMD_COUNTRY $SLMODEMD_DEVICE > /dev/null 2>&1
rc_status -v


6. Nun den gewünschten User noch zum Mitglied der Gruppe “uucp” machen (ttySL0 kann von dieser Gruppe benutzt werden).

7. Jetzt sollte nach einem Neustart /dev/ttySL0 als Modem funktionieren

8. Als Einwahlsoftware benutze ich Least-Cost-Router slyLCR von OLECO [2]

[1] http://linmodems.technion.ac.il/packages/smartlink/
[2] http://www.slylcr.de

Bernhard Bickert – Dienstag, 08. November 2005 19:34 Uhr

Hallo Kai,

ich habe das gleiche Problem, slamr0 ist zwar angelegt, aber ich kann nicht zugreifen. Irgendwie sieht alles korrekt aus, aber ich komme mit dem slmodemd nicht weiter, weil dies mit einer Fehlermeldung aussteigt.
Wie ich durch probieren gesehen habe, werden slamr0-3 durch den Befehl >make install, d.h. der Installation von slamr angelegt und nicht, wie ich dachte, durch den Start des Treibers slamr ansich.

Ich habe bei mir auf dem Laptop (Sony Vaio) SUSE9.2 installiert.

Ich habe bei dir gesehen, dass du mit >mknod …. 242 die devices anlegst. Bei der obigen Installation hat SUSE diese mit 212 angelegt. Macht das einen Unterschied? So ganz klar sind mir die Zahlen nicht. Habe unter >man mknod auch keine Erklärung gefunden.

Was bewirkt denn jetzt eigentlich das ungrap-winmodem? Ist damit der Zugriff auf die “Hardware” möglich? Der Smartlink-Treiber ist slamr?

Ich muß sagen, entgegen dem, was die Anderen erlebt haben, habe ich keine Probleme mit dem Laden des Treibers slamr.
Ich habe mir die beiden Archive runtergeladen und hoffe, dass ich diese auch unter SUSE9.2 benutzen kann, so in der Art und Weise, wie du es beschrieben hast.
Ich melde mich dann die nächsten Tage zum aktuellen Stand.

Kai Sandig – Donnerstag, 10. November 2005 11:40 Uhr

Hallo Bernhard,

richtig, bei mir wurden slamr0-3 auch bei “make install” angelegt. Auf diese kann slmodemd dann aber nicht zugreifen, weil vor “modprobe slamr” die Hardware an sich schon mit einem Treiber von SUSE belegt wurde (“dmesg | grep slamr” gibt nach dem laden von slamr sinngemäß folgendes aus: “device 0000:01:07.0 grabbed by serial” – ich nehme an, daß SUSE die Hardware als serielles Modem erkennt?)

ungrab-winmodem versucht nun einfach die Ressourcen wieder freizugeben, so daß slamr korrekt geladen werden kann. Also “modprobe ungrab-winmodem” unbedingt VOR “modprobe slamr” ausführen.

Mit den Zahlen bei mknod habe ich mich nicht weiter beschäftigt, habe einfach die genommen, die bei “make install” auftauchten :-)

Übrigens (Asche auf mein Haupt)in meiner “Anleitung” Schritt 4 muß es richtig heißen: slmodemd.conf nach /etc/sysconfig/slmodemd kopieren (nicht /etc/config…)

Viel Erfolg!

Christian Voit – Montag, 14. November 2005 20:46 Uhr

Hallo Kai,

dein Ansatz klingt sehr erfolgsversprechend, aber…

beim kompilieren des SmartLink-Treibers bekomme ich folgende Fehlermeldungen:

linux:~/Treiber/modem/slmodem-2.9.11-20051101 # make
make -C modem all
make[1]: Entering directory `/root/Treiber/modem/slmodem-2.9.11-20051101/modem’
gcc -Wall -g -O -I. -DCONFIG_DEBUG_MODEM -o modem_main.o -c modem_main.c
In file included from modem_main.c:70:
./modem.h:52:25: error: modem_timer.h: No such file or directory
In file included from modem_main.c:70:
./modem.h:281: error: field ‘event_timer’ has incomplete type
modem_main.c: In function ‘modem_main’:
modem_main.c:951: warning: implicit declaration of function ‘modem_timer_init’
make[1]: *** [modem_main.o] Error 1
make[1]: Leaving directory `/root/Treiber/modem/slmodem-2.9.11-20051101/modem’
make: *** [modem] Error 2

Kai Sandig – Dienstag, 15. November 2005 19:20 Uhr

Versuch mal, verschiedene Versionen des Paketes! Habe auch mindestens 5 Versionen probieren müssen :-( , bis ich mit unten aufgefüherter Erfolg hatte!

[1] http://linmodems.technion.ac.il/packages/smartlink/slmodem-2.9.11-20051009.tar.gz

Bernhard Bickert – Sonntag, 20. November 2005 15:57 Uhr

Hallo,

vielen Dank für die Info. Habe im Augenblick
nicht parad, ob ich erst slamr und dann ungrap…
starte.
Habe das script /etc/init.d/slmodemd editiert
und starte und stoppe damit die Treiber und
slmodemd. Beim Starten von slmodemd bekomme
ich leider die Meldung “failed”. Die Treiber
selber sind gestart >>lsmod zeigt mir diese an
und >>hwinfo liefert auch für das Modem die
Aussage Treiber aktiv.
Werde noch einmal nach der Reihenfolge, sie oben,
schauen. Melde mich dann wieder.
Was mich im Augenblick etwas stutzig macht, ist
dass ich nicht genau weiß, ob ich den richtigen
Kernel installiert habe: 2.6.8-24-smp. Ich habe
irgendwo beim Stöbern gelesen, dass der Standard
non-gpl Kernel erforderlich, oder ausreichend ist.

Bis demnächst einmal.

Bernhard