Configure internal modem of Acer Travelmate

Note: This works on Acer Travelmate 700 series but also on Acer Travelmate 513T. A user reported that it does not work on Acer Travelmate 506T.

There is a modem driver (called ltmodem.o) available for the internal 56k modem. It works on Acer Travelmates 700 Series but not on Acer Travelmate 500 Series. Only the binaries are available somewhere at Lucent Technology Win Modem Page (try linmodem.org for a newer version).

I have written a new installation script (and deinstallation script), that configures and installs the modem driver in a more comfortable and general way than the installation script that comes with the lucent driver. It considers everything explained below and queries for the parameters. Furthermore, this script configures /etc/conf.modules and /etc/pcmcia/config.opts to avoid interupt conflicts. In a SuSE distribution the /etc/rc.config file is modified according to the modem link. This script is distributed in the hope that it will be useful, but without any warranty. Please report any bugs or suggestions! If you prefer the manual configuration follow the lines below and use the old simpler script.

The original Lucent package includes an installation and deinstallation script. The installation script creates a device /dev/ttyS14 with char-major-62 and executes mknod. Furthermore, it sets the link /dev/modem to this device. It copies the driver to the location of the other modules. Further it modifies /etc/rc.d/rc.local such that ltmodem is inserted at every boot. Unfortunately, this does not work with every Linux distribution (for example not with SuSE Linux 6.2). You might have to modify the script, that make the entry in the /sbin/init.d/boot.local. Another way is to disable this modification of /etc/rc.d/rc.local at all in the script and alternatively use the kernel loading mechanism. Therefore insert into your /etc/conf.modules file:

# use this trick to install a module, that has different
# version to kernel:
# btw. use -k -f, don't use -f -k!!!
install ltmodem insmod -k -f ltmodem
# or you may also use this instead (then insmod is
# always called with -f option):
# insmod_opt=-f
alias char-major-62       ltmodem

You must use somehow (see above) the option -f because ltmodem.o was made for kernel 2.2.12-20. So it complains about 2.2.12 as well as 2.2.13. If you would like to use kernel module loading for ltmodem or you use SuSE Linux 6.2 or similar distribution you might use the following installation script (note: this script is a simple version of the installation script above):

#!/bin/sh
#
# Installation of ltmodem
# for deinstallation of ltmodem use option -d
#
#
# call:
#
# ./install.sh
# ./install.sh -d
#
# Installation:
#
# put somewhere in /usr/local/bin/
#
#
# Autor: Markus Kohler
# Datum: 15.02.2000
#
# HISTORY:
#
# dd.mm.yyyy: Name Comment

# choose your own permissions:

group="uucp"
mode="666"

# Configuration:

device="/dev/ttyS14"
modem="/dev/modem"
# driver name without ".o":
driver=ltmodem
modulepath="/lib/modules/`uname -r`/misc"
conffile="/etc/conf.modules"

#############################################
#
# no changes should be made below this line!
#
#############################################

nod=62

# first clear everything (equivalent to deinstallation):

/sbin/rmmod $driver 2> /dev/null

# if $modem links to $device
if [ -f $modem -a -n "`ls -l $modem | grep "$device"`" ]; then
    rm -f $modem
fi
# else who knows what happend meanwhile.

rm -f $device 2> /dev/null
rm -f $modulepath/$driver.o 2> /dev/null

# remove entries from $conffile:

cp $conffile $conffile.orig
grep -v "$driver" $conffile.orig | grep -v "#:" > $conffile

# now driver is deinstalled,
# go on only if installation is executed:

if [ "$1" != "-d" ]; then

    mknod $device c $nod 78
    rm -f $modem 2> /dev/null
    ln -s $device $modem
    chgrp $group $device
    chmod $mode $device

    cp $driver.o $modulepath

    cp $conffile $conffile.orig
    grep -v "char-major-$nod" $conffile.orig > $conffile
    cat >> $conffile <<EOF
#:################################################
#:
#: Inserted by $0 (installation routine of Lucent
#: internal modem) - do not change the following
#: lines, otherwise they might not get uninstalled:
#:
#: use this trick to install a module, that has different
#: version to kernel:
#: btw. use -k -f, don't use -f -k!!!
install $driver insmod -k -f $driver
#: or you may also use this instead (then insmod is
#: always called with -f option):
#: insmod_opt=-f
alias char-major-$nod       $driver
#:
#:################################################
EOF

fi

echo "Done."

Before you restart your linux box, it might happen that you get a warning telling /etc/conf.modules is more recent than /lib/modules/.../modules.dep. Just ignore it!

After the restart you can test you configuration. List the /proc/pci file with

> cat /proc/pci

and you should get something similar to (device number and addresses, IRQs etc. might be different):

  Bus  0, device   6, function  0:
    Communication controller: Lucent (ex-AT&T) Microelectronics Unknown device (rev 1).
      Vendor id=11c1. Device id=449.
      Medium devsel.  Fast back-to-back capable.  IRQ 9.  Master Capable. No bursts.  Min Gnt=252.Max Lat=14.
      Non-prefetchable 32 bit memory at 0x80100000 [0x80100000].
      I/O at 0x7090 [0x7091].
      I/O at 0x7400 [0x7401].



Last Update: 16.05.2000 by Markus Kohler