switcher51
Member
Problem: Treiber für internes Modem auf Toshiba M30X wird nicht automatisch gefunden und konfiguriert.
Auf vielen Notebooks werden die internen Modems als so genannte Winmodems realisiert, d.h. sie bestehen aus ein paar Drähten zwischen der RJ11-Telefonbuchse und dem Sound-Chip. Unter Linux sind diese Modems auch als Linmodems bekannt. Hierfür werden natürlich entsprechende Treiber benötigt, die über Software aus dem Sound-Chip ein Modem machen. Für den weit verbreiteten AC-97 gab es den proprietären Treiber „slamr“ von SmartLink. Dieser ist aber im Internet und auf den CD der SuSE-Distribution nicht mehr zu finden.
Nach langem Suchen und Testen habe ich folgende Lösung gefunden:
1.Von der non-OSS-CD wird das Paket „samrtlink-softmodem“ installiert, das im wesentlichen den Dämon slmodemd enthält – der Treiber „slamr“ ist dort auch nicht enthalten.
2.Mit „Yast“ – „Netzwerkgeräte“ – „Modem“ wird dann das Modem konfiguriert:
- Modemgeräte hinzufügen: Modemgerät = /dev/ttySL0 (obwohl dieses Device noch nicht existiert! Es wird dynamisch erzeugt.)
- Amtsholung – falls notwendig z.B. „0“ einfügen
- Tonwahl (ggf. andere Wählmethode)
- Lautsprecher ein – wird aber nicht funktionieren (bei mir kam kein Ton an, obwohl das Modem wählt)
- Wählton abwarten ein - an Nebenstellenanlage ggf. ausschalten
- weiter
-> Provider auswählen:
- Provider aus den Listen auswählen oder selber definieren, falls noch nicht vorhanden
- Provider-Name,Telefonnummer, Benutzer, Kennwort eingeben
- weiter
-> Verbindungsparameter nach Bedarf eingeben/ändern. „DNS-Parameter „ sollten aktiv sein!
- weiter
-Beenden
3.Jetzt den ALSA-Treiber für das Modem starten: modprobe snd_intel8x0m
4.Nun den Dämon starten: /usr/sbin/slmodemd -a -c GERMANY hw:1
Es sollte eine Ausgabe ähnlich dieser erfolgen:
5.Zum allgemeinen Zugriff kann noch der symbolische Link mit Namen „modem“ erzeugt werden: ln -s /dev/ttySL0 /dev/modem
6.Mit Kinternet wird das Modem ausprobiert: Einstellungen, Schnittstelle, Provider ggf. noch einmal auswählen, Protokollansicht starten und dann „Einwählen“ drücken. Im Protokollfenster sollte dann etwa folgendes erscheinen:
Dann hat es geklappt – die Verbindung steht. Hier noch ein paar Ausgaben zur Kontrolle (immer gut, wenn man weiß, wie es richtig aussehen soll):
7.Jetzt muss das Ganze für den Systemstart automatisiert werden. Zunächst ist die Konfigurationsdatei /etc/sysconfig/slmodemd.conf für slmodemd anzupassen:
8.slmodemd soll beim Booten gestartet werden: insserv slmodemd sorgt dafür. (Das geht auch mit dem Runlevel-Editor von Yast.)
9.Und der Treiber soll beim Systemstart eingebunden werden. Hierzu wird die Datei /etc/sysconfig/kernel erweitert:
Das sollte es dann gewesen sein. Beim nächsten Boot steht das Modem bereit und kann über Kinternet eine Verbindung ins Internet aufbauen.
Auf vielen Notebooks werden die internen Modems als so genannte Winmodems realisiert, d.h. sie bestehen aus ein paar Drähten zwischen der RJ11-Telefonbuchse und dem Sound-Chip. Unter Linux sind diese Modems auch als Linmodems bekannt. Hierfür werden natürlich entsprechende Treiber benötigt, die über Software aus dem Sound-Chip ein Modem machen. Für den weit verbreiteten AC-97 gab es den proprietären Treiber „slamr“ von SmartLink. Dieser ist aber im Internet und auf den CD der SuSE-Distribution nicht mehr zu finden.
Nach langem Suchen und Testen habe ich folgende Lösung gefunden:
1.Von der non-OSS-CD wird das Paket „samrtlink-softmodem“ installiert, das im wesentlichen den Dämon slmodemd enthält – der Treiber „slamr“ ist dort auch nicht enthalten.
2.Mit „Yast“ – „Netzwerkgeräte“ – „Modem“ wird dann das Modem konfiguriert:
- Modemgeräte hinzufügen: Modemgerät = /dev/ttySL0 (obwohl dieses Device noch nicht existiert! Es wird dynamisch erzeugt.)
- Amtsholung – falls notwendig z.B. „0“ einfügen
- Tonwahl (ggf. andere Wählmethode)
- Lautsprecher ein – wird aber nicht funktionieren (bei mir kam kein Ton an, obwohl das Modem wählt)
- Wählton abwarten ein - an Nebenstellenanlage ggf. ausschalten
- weiter
-> Provider auswählen:
- Provider aus den Listen auswählen oder selber definieren, falls noch nicht vorhanden
- Provider-Name,Telefonnummer, Benutzer, Kennwort eingeben
- weiter
-> Verbindungsparameter nach Bedarf eingeben/ändern. „DNS-Parameter „ sollten aktiv sein!
- weiter
-Beenden
3.Jetzt den ALSA-Treiber für das Modem starten: modprobe snd_intel8x0m
4.Nun den Dämon starten: /usr/sbin/slmodemd -a -c GERMANY hw:1
Es sollte eine Ausgabe ähnlich dieser erfolgen:
Code:
SmartLink Soft Modem: version 2.9.10 Nov 29 2006 13:53:16
symbolic link `/dev/ttySL0' -> `/dev/pts/3' created.
modem `hw:1' created. TTY is `/dev/pts/3'
Use `/dev/ttySL0' as modem device, Ctrl+C for termination
D.h. das Gerät /dev/ttySL0 ist jetzt erzeugt worden und steht zur Verfügung.
5.Zum allgemeinen Zugriff kann noch der symbolische Link mit Namen „modem“ erzeugt werden: ln -s /dev/ttySL0 /dev/modem
6.Mit Kinternet wird das Modem ausprobiert: Einstellungen, Schnittstelle, Provider ggf. noch einmal auswählen, Protokollansicht starten und dann „Einwählen“ drücken. Im Protokollfenster sollte dann etwa folgendes erscheinen:
Code:
SuSE Meta pppd (smpppd-ifcfg), Version 1.59 on toshi.vd.ac.de
Status is: disconnected
trying to connect to smpppd
connect to smpppd
Status is: disconnected
Status is: connecting
pppd[0]: Plugin passwordfd.so loaded.
pppd[0]: --> WvDial: Internet dialer version 1.54.0
pppd[0]: --> Initializing modem.
pppd[0]: --> Sending: ATM1
pppd[0]: ATM1
pppd[0]: OK
pppd[0]: --> Modem initialized.
pppd[0]: --> Sending: ATDT01914
pppd[0]: --> Waiting for carrier.
pppd[0]: ATDT01914
pppd[0]: CONNECT 44000
pppd[0]: --> Carrier detected. Chatmode finished.
pppd[0]: Serial connection established.
pppd[0]: Renamed interface ppp0 to modem0
pppd[0]: Using interface modem0
Status is: connecting
pppd[0]: Connect: modem0 <--> /dev/ttySL0
pppd[0]: CHAP authentication succeeded
pppd[0]: CHAP authentication succeeded
pppd[0]: local IP address 172.158.33.19
pppd[0]: remote IP address 195.71.183.101
pppd[0]: primary DNS address 205.188.146.145
pppd[0]: Script /etc/ppp/ip-up finished (pid 6460), status = 0x0
Status is: connected
Code:
toshi:~ # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
195.71.183.101 0.0.0.0 255.255.255.255 UH 0 0 0 modem0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 modem0
Code:
toshi:~ # ifconfig
....
modem0 Link encap:Point-to-Point Protocol
inet addr:172.158.33.19 P-t-P:195.71.183.101 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1454 Metric:1
RX packets:18 errors:1 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:7519 (7.3 Kb) TX bytes:85 (85.0 b)ess:0xc000 Memory:d0200000-d0200fff
Code:
toshi:~ # hwinfo --modem
23: PCI 1f.6: 10204 LinModem
[Created at pci.286]
UDI: /org/freedesktop/Hal/devices/pci_8086_24c6
Unique ID: ORVU.vTyfsaTKL4D
SysFS ID: /devices/pci0000:00/0000:00:1f.6
SysFS BusID: 0000:00:1f.6
Hardware Class: modem
Model: "Toshiba America Info 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x24c6 "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller"
SubVendor: pci 0x1179 "Toshiba America Info Systems"
SubDevice: pci 0x0001
Revision: 0x03
Driver: "Intel ICH Modem"
Driver Modules: "snd_intel8x0m"
Device File: /dev/ttySL0
Device Number: char 212:0
I/O Ports: 0x2400-0x24ff (rw)
I/O Ports: 0x2000-0x207f (rw)
IRQ: 177 (254582 events)
Module Alias: "pci:v00008086d000024C6sv00001179sd00000001bc07sc03i00"
Driver Info #0:
Driver Status: slamr is not active
Driver Activation Cmd: "modprobe slamr"
Driver Info #1:
Driver Status: snd_intel8x0m is active
Driver Activation Cmd: "modprobe snd_intel8x0m"
Config Status: cfg=no, avail=yes, need=no, active=unknown
7.Jetzt muss das Ganze für den Systemstart automatisiert werden. Zunächst ist die Konfigurationsdatei /etc/sysconfig/slmodemd.conf für slmodemd anzupassen:
Code:
## Path: Hardware/Modem
## Description: Smartlink softmodem settings
## Type: string
## Default: "USA"
## ServiceRestart: slmodemd
#
# Country, for which the modem shall be configured for.
#
# A list of all supported country names can be retrieved
# by calling "slmodemd --countrylist" from the shell prompt.
#
SLMODEMD_COUNTRY="GERMANY"
## Type: string
## Default: "modem:1"
## ServiceRestart: slmodemd
#
# Hardware(not modem) device for the slmodemd.
#
# slmodemd accesses hardware devices which are provided
# by the slamr and the slusb kernel modules. This congiuration
# setting determines which hardware device slmodemd should use.
#
# Use "modem:x" or "hw:x,y" in ALSA mode, x=card number, y=pcm number
# Use "slamr0" for SmartLink-compatible AC'97 Riser modem codecs
# Use "slusb0" for the SmartUSB56 from SmartLink(extermal USB modem)
#
# Note: After starting slmodemd, he will create a PTY (pseudo-termnal)
# and create a symlink called /dev/ttySL0 which points to this PTY.
# /dev/ttySL0 is the device used by applications.
#
SLMODEMD_DEVICE="hw:1"
## Type: yesno
## Default: "no"
## ServiceRestart: slmodemd
#
# If set to yes the Advanced Linux Sound Architecture subsystem is used
# to make your modem working. This variable must be set to yes if you
# are using an ATI IXP modem.
#
SLMODEM_USE_ALSA="yes"
8.slmodemd soll beim Booten gestartet werden: insserv slmodemd sorgt dafür. (Das geht auch mit dem Runlevel-Editor von Yast.)
9.Und der Treiber soll beim Systemstart eingebunden werden. Hierzu wird die Datei /etc/sysconfig/kernel erweitert:
Code:
## Path: System/Kernel
## Description:
## Type: string
## Command: /sbin/mkinitrd
# ......
## Path: System/Kernel
## Description: Modules to load after initial boot
## Type: string
## ServiceRestart:boot.loadmodules
#
# This variable contains the list of modules to be loaded
# once the main filesystem is active
MODULES_LOADED_ON_BOOT="snd_intel8x0m"
# ....
Das sollte es dann gewesen sein. Beim nächsten Boot steht das Modem bereit und kann über Kinternet eine Verbindung ins Internet aufbauen.