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:
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/ttyS0 – /dev/ttyS3). 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/ttyS1 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/ttyS1
If you hear the modem dial, close the connection by typing:
echo “atz” > /dev/ttyS1
If you didn’t hear the modem dial, make sure you have the modem speaker turned on by typing:
echo “atv” > /dev/ttyS1
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.
For complete information about modems related to Linux, visit “Winmodems are not Modems” at:
To learn how to maintain your computer and use it more effectively to design a Web site and make money on the Web visit bucarotechelp.com. To subscribe to Bucaro TecHelp Newsletter visit http://bucarotechelp.com/search/000800.asp.