My modem has finally a fully open source driver, which
is now supported in Fedora Core 3 as it includes ALSA.
A softmodem is really just a glorified soundcard, so ALSA
provides the low level support required.
The details for my system are:
$ /sbin/lspci | grep Modem
00:1f.6 Modem: Intel Corp. 82801CA/CAM AC'97 Modem Controller (rev 02)
$ grep Modem /proc/asound/cards
1 [Modem ]: ICH-MODEM - Intel 82801CA-ICH3 Modem
Intel 82801CA-ICH3 Modem at 0x1800, irq 11
The higher level daemon providing the AT commands etc.
that interacts with the lower level driver is provided by smartlink.
To build that daemon do the following:
wget http://www.smlink.com/objects/slmodem-2.9.10.tar.gz
gzip -dc slmodem-2.9.10.tar.gz | tar x
cd slmodem-2.9.10/modem
make SUPPORT_ALSA=1
This package also provides lower level drivers that you
will need if you don't have ALSA support for your modem.
Note even if we were building kernel modules on Fedora Core 3
the kernel SRPM is not required.
There is enough present in /lib/modules/$(uname -r)/build
as described in the release notes.
To install the previously built daemon,
first change to the root user in the "make" directory above:
su
install the daemon:
install -D -m 755 slmodemd ${DESTDIR}/usr/sbin/slmodemd
rm -rf ${DESTDIR}/var/lib/slmodem
install -d -D -m 755 ${DESTDIR}/var/lib/slmodem
setup the service to be started at each boot:
echo 'SLMODEMD_COUNTRY=IRELAND' > /etc/sysconfig/slmodemd
(
cd ../scripts
wget http://www.pixelbeat.org/systems/toshiba/slm-2.6/slmodemd-alsa.diff
patch slmodemd slmodemd-alsa.diff
cp slmodemd /etc/init.d/slmodemd
)
/sbin/chkconfig --add slmodemd
run the service now:
/sbin/service slmodemd start
Setup the appropriate devices for users of the modem:
cd /dev
ln -sf ttySL0 modem
cp -a modem /etc/udev/devices
To see the access permissions on the modem device
one can do the following:
$ ls -lH /dev/modem
crw-rw---- 1 root uucp 136, 0 Mar 22 07:31 /dev/modem
This means that any normal users of the system need to
be a member of the uucp group to access the modem.
To do that search for "uucp" in /etc/group, and add the
required users to the end of the line (separated by commas).