Advertisment

Winmodems and Linux

author-image
PCQ Bureau
New Update

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. 

Advertisment

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. 

Advertisment

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

Advertisment

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. 

Advertisment

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. 

Advertisment

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. 

Advertisment

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.

Advertisment
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

Advertisment