Surprise! Compared to my previous installation with ubuntu the modem works. Great! See what I did below. But please note that this is not an elegant solution but rather some hack. If anyone knows a more elegant way please let me know
As modem driver I use the kernel module snd-intel8x0m provided by the default ubuntu kernel. Through this module the modem is accessed via the slmodemd deamon and your favorite dial-in program (kpp etc.).
First install the relevant kernel headers with:
apt-get install linux-headers-2.6.10-5
Download the smartlink slmodem driver from http://www.smlink.com/content.aspx?id=132. I do use slmodem-2.9.10.tar.gz and unpack the archive. Then compile and install the driver as follows:
cd slmodem-2.9.10 make make install
This solution does not support the module snd-intel8x0m that we want to use but creates some directories and files we need later. Now rebuild the slmodemd executable with alsa support:
make clean cd modem make SUPPRT_ALSA=1
and copy the slmodemd executable to /usr/sbin/. You have to overwrite the old (non alsa) version in /usr/sbin.
the hardware support for the modem is enabled. This can be tested with *aplay -l. What you should see is something like:
**** List of PLAYBACK Hardware Devices **** card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 0: Intel ICH [Intel 82801DB-ICH4] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: I82801DBICH4 [Intel 82801DB-ICH4], device 4: Intel ICH - IEC958 [Intel 82801DB-ICH4 - IEC958] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: Modem [Intel 82801DB-ICH4 Modem], device 0: Intel ICH - Modem [Intel 82801DB-ICH4 Modem - Modem] Subdevices: 1/1 Subdevice #0: subdevice #0
If you want to enable modem support at startup add snd-intel8x0m to /etc/modules.:
slmodemd -a -c GERMANY modem:1
start the modem deamon. For debugging add -d=1 to the command. Then you can confiure and test the modem with:
Finally configure the dialup connection with your favorite tool (I use kppp) and you are online.
Note: For a modem connection it is necessary to start the slmodemd deamon before dialing. In my opinion the best solution is either to start slmodemd as service at startup or to use a script that
- first starts slmodemd in the background (&)
- then loads the dialin application
- and after connection ends or the dialin application is closed stops slmodemd.
For this purpose I use the following script:
#!/bin/sh # 2005-08-10 # firstname.lastname@example.org # A tiny script to start the modem slmodemd -a -c GERMANY modem:1 & kppp killall slmodemd
If you want to use this script as a non-root user you have to set the suexec script on slmodemd. Please mind that this is a potential security risk but in this case I am willing to trade security for comfort.
Note: If you get an error from pppd like:
The remote system is required to authenticate itself but I couldn't find any suitable secret (password) for it to use to do so. (None of the available passwords would let it use an IP address.)
then replace auth with noauth in /etc/ppp/options