miniPCI Modems on IBM Thinkpads
Thinkpads come with different modems but the most common is that using
the Lucent chipset. It is called a Winmodem, LT modem, or Lucent
Winmodem. It may be in combination with an Ethernet card or by
So far the two miniPCI LT modems that I have successfully run under
Linux are the Lucent Winmodem miniPCI card and the Lucent
Winmodem that is integrated into the Intel miniPCI ethernet/modem combo
card. From what I read it looks like the Xircom combo miniPCI card
also uses the Lucent modem chipset but the 3Com combo card DOES
site states that the modem of the 3com miniPCI cards is currently
not supported under Linux. And I am not entirely sure about the
Xircom one. I purchased what was stated to be a Xircom miniPCI on
Ebay yet the actual card I received says Intel on it. Go
figure. From what I have read from the info at this
page at IBM's website they use similar chipsets for the modem.
These modems work perfectly under Linux thanks to Agere Systems and
independent developers for writing and maintaining the drivers.
Their site contains a lot of information about Winmodems. From
there you can download the driver:
As of this writing the most recent driver is ltmodem- 8.26a9. You
can download pre-compiled binaries yet I prefer to download the source
and create my own .deb using their easy scripts (there is also a script to build
a .rpm and one to just build the bare modules). There is also now a
driver released for 2.6 kernels. I have successfully compiled and
used it. I believe the link to it is on the "Resources" page on the
above sites. Note the instructions here are not for the 2.6 driver
although some of the information may still be relevant.
It is a simple procedure to download the source package ltmodem-
8.26a9.tar.gz, untar it, run the build_deb script, and install the
modules. The script assumes that the source to the currently
running kernel is located under /usr/src/linux. If it is not an
alternate target kernel source can be specified.
Once the build_deb script finishes you will be left with a .deb named
installing sometimes the installation script fails and gives an error
message. Usually this is not serious and the modules will be been
correctly installed but the post install script fails. If that
happens (which there is a high likelihood it will if you are installing a
ltmodem .deb a second time for a different kernel) try to modprobe
lt_modem to verify that the module got installed. With lsmod you
should see two modules, lt_modem and lt_serial. If these get
loaded then it means the modules got compiled and installed but the post-install
script failed setting up the device. You can manually set up the
ltmodem serial device with the following commands:
mknod /dev/ttyLT0 c 62 64
setserial /dev/ttyLT0 irq 11 port 0xff38 ^fourport ^auto_irq skip_test
ln -sf /dev/ttyLT0 /dev/ttyS14
ln -sf /dev/ttyLT0 /dev/modem
Note that if at some point you use a pcmcia card that has a modem, or
connect another modem to your computer, the symlink to /dev/modem from
/dev/ttyLT0 may get replaced by the new modem and you will have to
re-symlink /dev/ttyLT0. Or you can do what I do and just specify
/dev/ttyLT0 in your ppp configuration scripts so the symlink to
/dev/modem is irrelevant.
we've come this far I might as well write about the dialing up
process. Dialup is very easy to set up with the pppconfig
command. apt-get install pppconfig It has a nice dialog
interface that can run under a console and can let you set up multiple
accounts. It needs to be run as superuser or root. Note some
things when setting up a new dial-up account:
you want to choose "Dynamic" for DNS, not the default "Static"
use PAP authentication, which is the first choice.
it is best
to leave the modem port speed set to the default of 115200
number to dial I often like to preceed the actual number with
This disables caller-id and then creates a slight pause before dialing
the actual number.
answer "no" to having the modem identified automatically and just enter
you select the "Finish" option to save the information before exiting
Now how do
want to make sure that the user you are dialing out as has permissions
to dial out. You must add him to the dialout group with the command
You may also need to add the user to the group dip.
can run the command
the name you used in pppconfig.
closes the connection.
use another method to dial out, since I like to see the output from the
ppp daemon and to know that it is actually working, and to debug it if
it is not. To do this I wrote a little script called dial:
nodetach call ispname
needs chmod u+x in order to execute). I run ./dial in a console
window and can see all the nice output from the ppp daemon. ctrl-
c kills the daemon and disconnects (as does unplugging the phone line
when your roommates are screaming)