Do you have an internal modem that works perfectly with Windows but for some
strange reasons, refuses to work with Linux? In that case, chances are that you
have a winmodem–one of the most troublesome pieces of hardware in the
Tux-world. Millions of people worldwide buy these modems as they are extremely
cheap and quite troublefree as far as Windows is concerned. But running it in
Linux is a different game altogether. However, with a little hacking, and some
of these modems may be made “Linux compatible,” or rather be turned into a
linmodem.
Problems with Winmodems
The main problem with winmodems is that they are ‘stupider’ than normal
hardware modems. They make your CPU emulate some of their functions, and for
this work, they make use of some proprietary software (Windows only). Thus, in
Linux, they are reduced to worthless pieces of junk. However, as the penguin
flew far and wide, some of the winmodem manufacturers “saw light” and
developed binary only (non-open source) drivers for their products. Moreover,
some developers also managed to hack together drivers for some winmodems, but as
modem manufacturers refused to disclose their specifications, they were not much
of a success. The main problem with the manufacturer provided drivers is that
they work only in a few distributions. For example, the Linux drivers of the
Motorola SM56 winmodem only work in Red Hat Linux 7.1.
Types
Winmodems can be classified in a number of ways. The simplest way is to label as
“working” or “not working” in Linux. The former group has been named as
linmodems or winmodems that work in Linux also. The modems are also often
classified as PCI modems (these go into the PCI slots) and ISA modems (these are
for the older ISA slots). Recently, another type of modems have become
common–AMR modems. These modems go into the Audio Modem Riser slot (very
common in the modern motherboards, especially those of laptops). However, Linux
support for AMR modems is still comparatively new, and hence, a little
buggy.
However, the most important way to classify winmodems is in terms of the
chipsets they have (the method for identifying chipset is described in the next
section). To make your winmodem work in Linux, you must know the chipset your
modem has. The maker of the chipset need not be the manufacturer of the modem
and vice-versa.
Identifying the chipset
There are a number of ways in which a particular chipset can be
identified.
Opening up: The best method is to open up the computer cabinet and
look for the name that is etched on the black chip on the modem. However, this
is not possible in most cases, especially when you have a laptop or a machine
under warranty.
Using lspci command: The lspci command in Linux can be of great help.
For example in my machine the lspci command gives the output 00:09.0
Communication controller: PCTel Inc HSP MicroModem 56 (rev 01). This
shows that I have a PCTel winmodem. Moreover, the output of the lspci -n command
gives the numeric id of a particular PCI device. This output can be compared
with that of lspci and can be submitted at www.yourvote.com/pci to get the
manufacturer’s name.
For example, a part of the output of the lspci -n command in my system reads
00:09.0 Class 0780: 134d:7897 (rev 01). By comparing this with the output of
lspci I can easily understand that the numeric id of my modem chipset is
134d:7897
The /proc directory: The /proc directory in your Linux machine can be
a useful source of information. You can see the contents of /proc/pci, /proc/ioports
/proc/interrupts, etc. to get information on your modem.
From Windows: The Windows Control Panel can be a good source of
information. Have a look at the Device Manager section of the Control Panel and
see if you get any information regarding the chipset. Please note that in this
case there is a high chance of the name of the modem manufacturer being
displayed instead of the chipset manufacturer.
Other general resources |
|
www.linmodems.org: The mother site of all linmodem projects. However, this is not updated very often - and the information contained here may be outdated. | |
http://linmodems.technion.ac.il: This is a great site and is updated regularly by it’s Webmaster–Jacques Goldberg . | |
The linmodems mailing list: The medium volume mailing list–discuss@linmodems.org is a great place to ask questions. If you have problems with a particular modem, send in the details to this list for an answer. You can subscribe to it by sending a blank mail to discuss-subscribe@linmodems.org . | |
www.idir.net/~gromitkc/winmodem.html: A really huge list of modems in Linux with their status reports. |
Other sources: You may also ask at the local LUG (Linux user’s
Group) or at any online related forums. Moreover there is a huge list of modems
at www.idir.net/~ gromitkc/winmodem.html. Another database (for PCTel modems
only) is being constructed at http://pctelcompdb.sourceforge. net/. You can also
ask the support guys for your computer or consult the modem documentation.
The next step
Now that you have identified the chipset of your modem, it is time for you
to log-in to the Internet (from Windows) and search for the right drivers.
However, before that, you might want to check for a few things in your system.
- Before you do anything, find your kernel version. To find the kernel
version, use the command uname -r. Remember that some modems have multiple
drivers for the same distribution, so double-check the output of uname
-r. - Some drivers require the source of the running kernel to be installed in
your machine, so check whether that’s installed or not. - Also check for the usual tools of a hacker (gcc, make utility, modutils,
etc). - Make sure that you know what kind of package format your distribution
uses–many of the drivers come in RPM packages.
Winmodem resources
This is a list of commonly used and the latest drivers.
Lucent (ltmodems): This is one of the most well supported winmodems
under Linux. The main website is at www.heby. deltmodem. Also check out www.ge
ocities.com/rho_linux_br/lucent.html
IBM MWave: Strictly speaking, these are not winmodems. However, they
do not work with the normal serial driver in the Linux kernel. For that, a
completely GPL’ed driver has been released, which has been integrated into the
newer Linux kernel. If you have a IBM Mwave chipset-based modem, get the latest
kernel (2.4x) from www.kernel.org and install it.
PCTel (HSP): Another well supported winmodem. The main driver site is
at www.linmod ems.technion.ac.il/pctel-linux. There is also a PCTel HSP
Micromodem Configuration miniHowto at www.peacefulaction. org/sayamindu/pctel.html.
Installation of the driver involves specifying the exact chipset model, and
there is a database for that at http://pctelcompdb.sourceforge.net.
Troubleshooting | |
Here’s what to do when you run into problems: | |
Find out error messages: If you face problems during say, driver compilation, then do try to find out the messages reported by the compiler. Again, if you have problems while loading the kernel modules for the modem, you can issue the command tail /var/log/messages to find out the messages issued by your kernel. | |
Do a little hacking: To do this, search up the related documentations, FAQs etc and see whether your problem is addressed there or not. Moreover, search the archives of the discuss@linmodems.org mailing list. | |
Ask the gurus: If the problem still remains unsolved, ask the guys at discuss@linmodems.org with all the relevant error messages. Also don’t forget to specify your modems chipset and model number. And try not to post questions directly to the developers–they are a busy lot, and your mails certainly won’t help them decrease their workload. |
Motorola SM56: Motorola recently terminated support for its Linux
drivers and presently the latest driver can be downloaded from www.motorola.com/collateral/SM56_DRIVERS.html#
linux. However, this only seems to work with the kernel provided with Red Hat
7.1 (2.4.2). There is an English Howto regarding this modem at
www.sm56linux.hpg. ig.com.br/english/ingles.html.
Conexant/Rockwell (HCF/ HSF): The most informative site regarding this
type of modems is www.mbsi.ca/cnxtlindrv. This site contains a number of
distribution specific RPMs, covering the latest versions of all most all major
distributions. Also, there is a howto at www.tldp.org/ HOWTO/Conexant+Rockwell-modem-HOWTO/index.html.
Only the HSF modems work in kernel 2.2x with the drivers from Olitec at www.olitec.com/pci56kv2.html.
ESS: There is a FAQ at andrew.cait.org/ess/. The drivers may also be
downloaded from here.
Intel HAM: The official site is at developer.intel.com/design/
modems/support/license/r-333-5.htm. However, the driver here supports only the
2.2x series kernel. The latest drivers can be found at http://linmodems.technion.ac.il/packages/Intel/.
There is also a page at the Intel site http://developer.intel.com/design/modems/support/drivers_linux.htm),
which is updated a little slowly, and at present, it has a list of all the
drivers.
Sayamindu Dasgupta