Setting Up a Linux Modem

By: Stephen Bucaro

Setting Up a Linux Modem
Almost all modems manufactured today are software modems, usually referred to as 'winmodems'. Even though we pay a lot for a winmodem, they are cheap to manufacture because they use very little electronics. The functions that should be performed in hardware are emulated by software. This places an extra processing burden on your computer's CPU. Winmodems will not work with Linux unless you can locate a special 'Linmodem' driver.

A hardware modem contains its own on-board controller and DSP circuits. This takes a major processing load off your computer's CPU. A hardware modem will make your dial-up connection work much faster. Hardware modems are difficult to find and very expensive. Hardware modems will work with Linux.

Some hardware modems known to work with Linux:

  • Zoom 2920 Fax Modem 56K PCI $76.00
  • Actiontec PCI56012-01CW 56K Voice Faxmodem PCI $75.00
  • ActionTec PCIV921201CW Call Waiting Internal V.90/V.92 Modem $59.99

On rare occasions Linux will locate and configure your modem during installation, but most likely you will have to configure it manually. If your computer is plug-and-play (PnP) compatible, the BIOS should detect the modem on power-up and allocate resources to it. To determine which resources were allocated to the modem, log in as root and click on the 'Terminal emulation program' button on the task bar.

In the terminal window that appears, type the
following command:

cat /proc/pci

In the screen output that results, locate the entry for your modem. Below is a possible example:

Bus 0, device 9, function 0:
Unknown class: Lucent (ex-AT&T) Microelectronics
Unknown device (rev 0).
Vendor id=11c1. Device id=480.
Medium devsel. Fast back-to-back capable. IRQ 11
Master Capable. No bursts. Min Gnt=252. Max Lat=14
Non-prefetchable 32 bit memory at 0x80100000 [0x8010000].
I/O at 0xdc00 [0xdc01]
I/O at 0xe000[0xe001]
I/O at 0xe400[0xe401]

Record the IRQ number and the first I/O address.

Linux uses a device file to communicate with a modem. Device files are located in the /dev directory. A modem must use one of the serial ports (/dev tyS0 - /dev tyS3). First determine which serial port to use for the modem. You should use ttyS1 because ttyS0 is usually assigned to a back panel connector.

To configure the serial port, use the setserial command with the information that you recorded above. Using the example values above, you would type the following into the terminal window:

setserial /dev tyS1 uart 16550A port 0xdc00 irq 11

You can verify that the modem is working by sending it the command to dial. For example type the following into the terminal window:

echo 'atdt5555555' > /dev tyS1

If you hear the modem dial, close the connection by typing:

echo 'atz' > /dev tyS1

If you didn't hear the modem dial, make sure you have the
modem speaker turned on by typing:

echo 'atv' > /dev tyS1

Then try dialing again.

To have Linux automatically configure your modem at boot time, add the setserial line that you used above to the file /etc/rc.d/rc.local

Assuming that you are using the GNOME window manager, click on the 'foot' icon on the taskbar to open the menu. Select 'Programs' and open the 'File Manager'. In File Manager, navigate to the directory /etc/rc.d and right-click on the file rc.local. Select 'Open with...' in the popup menu. In the 'gmc' dialog box, select 'gnotepad+' and click on the 'OK' button. At the bottom of the file, type the setserial command line and then save the file.

Sometimes configuring a modem is not as easy in Linux as it is in WindowsFeature Articles, but the alternative is to continue to use Windows.

Linux
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 
 • 

» More on Linux