Modem

Fedora Core 1

This is a dreaded software modem and as such is not recognised directly by Linux. You can, however, install a SmartLink driver from http://linmodems.technion.ac.il/packages/smartlink/ if you are prepared to implement a few work-arounds and are happy to ignore the messages about your kernel being tainted. (The "tainting" is from proprietary code contained in the Agere modem software, and should not affect the operation of your system in any way.).

Many thanks to Chris Bradshaw for bringing this driver to my attention.

Download slmdm-2.7.10.tar.gz -do not try to use any higher version number - none of them work with the Toshiba internal modem.


If you have problems with gcc versions or general setup, there is plenty of help and advice at the Linmodems home page.

To install, copy the downloaded file to /usr/local/ , do a tar -xvzf, change directory to slmdm-2.7.10 , edit the Makefile so that

 KERNEL_INCLUDES:= /usr/src/linux-2.4.22-1.2115.nptl/include
 
(change this according to where your kernel headers are saved: I have shown the Fedora Core 1 default directory in the example above) then make and make install-amr.

Installation will automatically create the following entries in /etc/modules.conf:

alias char-major-212 slmodem
alias slmodem slamrmo

and you should add a country option line like:
options slmdm country=UK

Then do modprobe slamrmo and you will get all sorts of stuff about tainting the kernel, which you can ignore. You may also get messages about unresolved symbol errors. Some of these are not important, others may prevent the modem from working. You will just have to try it...

Note that the installation will also have created a symlink from /dev/modem to /dev/ttySL0 , overwriting any symlink you may have had already (e.g. to rfcomm0 for Bluetooth). If this is not what you want, you will have to create a different symlink to /dev/ttySL0 manually.

You should also change the ownership of /dev/ttySL0 to uucp by doing: chgrp uucp /dev/ttySL0

Now you can test the modem using your favourite dialler. I used kppp to send "ATI" and received the following info:

If all seems to be working, you can try dialling your ISP. I was able to connect at 51 kbit/s without any problems.



Conflict with other network interfaces (e.g. eth0)

Because the Ethernet interface is integrated within the Toshiba hardware (i.e. not a PC card), the ppp daemon gets very confused when you try to establish a network connection through the modem card. You must explicitly disable the eth0 interface before dialling:

(su root)
$ /sbin/ifdown eth0

I never remember to do this, and end up wondering why my browser is not loading anything... One possible solution is to set up a new network interface for the modem, e.g. "slm0", linked to wvdial parameters, which you can bring "up" and "down" manually. For example, to connect via the modem:

    ifdown eth0
    ifup slm0
To disconnect the modem and return to an ethernet connection:
    ifdown slm0
    ifup eth0
Before any of the above will work, you will need to create/modify the following files:

File:/etc/wvdial.conf

	[Modem0]
	Modem = /dev/ttySL0
	Baud = 57600
	SetVolume = 1
	Dial Command = ATDT
	Init1 = ATZ
	Init3 = ATM1L1
	FlowControl = NOFLOW
	[Dialer slm0]
	Area Code = **enter the area code of your ISP**
	Username = **enter your username**
	Password = **enter your password**
	Phone = **enter your ISP phone number, without area code**
	Dial Prefix = **enter the number you dial for an "outside line" if you are in the office, otherwise leave blank**
	Stupid Mode = 1
	Inherits = Modem0

------------------------

File:/etc/ppp/peers/slm0

	connect "/usr/bin/wvdial --remotename slm0 --chat 'slm0'"

------------------------

Files:/etc/sysconfig/networking/devices/ifcfg-slm0
AND
/etc/sysconfig/networking/profiles/default/ifcfg-slm0

	# Please read /usr/share/doc/initscripts-*/sysconfig.txt
	# for the documentation of these parameters.
	ONBOOT=no
	USERCTL=yes
	PEERDNS=yes
	TYPE=Modem
	DEVICE=ppp0
	BOOTPROTO=dialup
	CCP=off
	PC=off
	AC=off
	BSDCOMP=off
	VJ=off
	VJCCOMP=off
	LINESPEED=57600
	MODEMPORT=/dev/ttySL0
	IDLETIMEOUT=600
	PROVIDER=**enter your ISP's name, eg UK_ONLINE**
	DEFROUTE=yes
	PERSIST=no
	PAPNAME=**enter your username here**
	WVDIALSECT=slm0
	MODEMNAME=Modem0

------------------

If you have other modems, for example on your mobile 'phone via Bluetooth, it is possible to define additional ppp interfaces: bluez1... etc. In the case of a Bluetooth-connected modem, the next [Modem] section of /etc/wvdial.conf could look like this:

	[Modem1]
	Modem = /dev/rfcomm0
	Baud = 9600
	....



PCMCIA Modem Options (if all else fails!)

Finally, to obtain information on Linux-compatible PCMCIA modems, visit this site.


Previous Contents Next