Friday 25 March 2011

Software-based Linux

Software-based modem types

There are two basic types of software modems. In one type the software does Almost all of the work. The other is the software-only Nowhere does the "control" operations (the which is everything except processing the digital waveshapes - to be explained later). Since the hardware does not do the control it's Called a "controllerless" modem. The first type is an all-software modem (Sometimes Called a software just modem).

For both of these types there must be analog hardware in the modem (or on the motherboard) to generate an electrical waveshape to send out the phone line. It's generated from a digital signal (the which is sort of a "digital waveshape"). It's something like the digital electronics creates a lot of discrete points on graph paper and then the modem draws a smooth voltage curve thru Them. Also there must be hardware to convert the incoming waveshape to digital. This is just an analog-to-digital conversion (and conversely). It's done by a codec (coder-decoder).

The incoming digital waveshape must be converted to a data byte stream. This is part of the demodulation process. That recall is likely, these data bytes have been compressed, so They are not at all like the original message. Turning bytes of data into a digital waveshape is part of the modulation process. Even after demodulation is done, the modem can not just send the resulting byte stream of incoming data to the serial port input buffers, but must first do decompression, error correction, and convert from serial to the parallel bus of the computer. But the modem May get the CPU to do the actual work. It's the reverse sequence for an outgoing data byte stream.

The difference Between the two types of software-based modems Nowhere is the digital modulation takes place. In the all-software modem this modulation is done in the CPU and it's Called a Host Signal Processor (HSP). In the controllerless modem it's done in the modem but all other digital work is done by the CPU. This digital other work consists of dealing with AT-commands, data compression, error correction, and simulating a serial port. In the all-software modem, there are still two items handheld by hardware: the A / D conversion of waveshapes by the codec and echo cancellation.

Is this modem a software modem?

How do you determine if an internal modem is a software modem? First see if the name, description of it, or even the name of the MS Windows driver for it indicates it's a software modem: HSP (Host Signal Processor), HCF (Host Controlled Family), HSF (Host Signal Family), controllerless, host-controlled, host-based, and soft-... modem. If it's one of these modem it will from only work for the CASE WHERE a Linux driver is available. Since software modems cost less, a low price is a clue That it's a software modem.

If you do not know the model of the modem and you Also have Windows on your Linux PC, click on the "Modem" icon in the "Control Panel". Then see the modem list (not maintained after 2003). If the above does not work (or Is not feasible), you cans look at the package the modem Came in (or a manual). Read the section on the package That says something like "Minimum System Requirements" or just "System Requirements".

A hardware modem will from work fine on old CPUs (Such as the 386 or better.) So if it requires a modern CPU (Such as a Pentium or other "high speed" CPU of say over 150 MHz) this is a clue That it's a all-software modem. If it only requires a 486 CPU (or better) then it's likely, a host-controlled software modem. Saying That it only works with Windows is Also bad news. However, even in this case May there be a Linux driver for it or it Could Be a mistake in labeling.

Otherwise, it May be a hardware modem if it fails to state explicitly That you must have Windows. By saying it's "Designed for Windows" May it only mean That it fully supports Microsoft's plug-and-play the which is OK since Linux uses the Same plug-and-play specs (but it's harder to configure under Linux). Being "Designed for Windows" thus Gives no clue as to whether or not it will from work under Linux. You Might check the website of the manufacturer or inquire via email. Some manufacturers are specifically stating That perform certain models work under Linux. Sometimes They are linmodems That require you to obtain and install a driver to perform certain linmodem.

Should I get a software modem?

Only if you know there is a Linux driver for it that works OK. But there May be a problem if the driver Is not being maintained and as a result does not work with future versions of the kernel. Also, the driver May not have full functionality. Besides the problems of getting a satisfactory driver, what are the pros and cons of software modems? Since the software modem uses the CPU to do Some (or all) of its work, the software modem requires less on-board electronics on the modem card and thus costs less. At the Same time, the CPU work load is Increased by the modem the which May result in slower operation.

The percentage of loading of the CPU by the modem Depends on both what CPU you have and whether or not it's an all-software modem. For a modern CPU and a modem That only uses the CPU as a controller, there's little loss of performance. Even if it's an all-software modem, you will from not suffer a loss of performance if there are no other CPU-intensive tasks are running at the Same time. Of course, Pls you're not using the software modem there is no Degradation in performance at all.

Is the modem cost savings are worth it? In many cases yes, especially if you do not use the modem much and / or are not running any other CPU intensive tasks Pls the modem is in use. The savings in modem cost Could Be Used for a better CPU the which Would Things speed up a little. But the on-board electronics of a hardware modem can do the job more efficiently than a general purpose CPU (except That it's not efficient at all Pls it's not in use). So if you use the modem a lot it's probably better to Avoid the all-software modems.

PCI Modems

A PCI modem card is one the which inserts into a PCI-bus slot on the motherboard of a PC. While not many PCI winmodems earnest work under Linux (no driver available) other PCI modems will from work under Linux. The Linux serial driver has been modified to support hardware to perform certain PCI modem cards (but not winmodems / linmodems). If it's a linmodem, it will from work only if you install a driver to perform certain linmodem. If the Linux serial driver supports your hardware modem then the driver will from set up the PnP configuration for you. See PCI Bus Support Underway. If no special support for your PCI hardware modem is in the Linux serial driver it May still work OK but you have to do Some work to configure it.

AMR Modems

These are mainly Used in laptops. They are all winmodems That insert into a special AMR (Audio Modem Riser) slot on the motherboard. Audio cards or combined audio-modem cards are Sometimes Used in this slot. The slot's main use is for HSF type modems Nowhere does the CPU Almost all of the work. This results in a small "modem" card and thus a short AMR slot. The motherboard has a codec the which takes digital output from the CPU and generates an analog voltage waves at the ARM slot (and conversely). Thus the "modem" that plugs into the slot has little to do except to interface the telephone line with the codec. Linux supports at least one AMR modem. lspci-v Should display it.

USB Modems

USB = Universal Serial Bus. Most USB modems are winmodems, so many earnest not work with Linux. Linux has support for modems That conform to the USB Communication Device Class Abstract Control Model (= USB CDC ACM). There's a module for ACM named acm.o. See the / usb / acm.txt document in the kernel documentation directory (/ usr/share/doc/kernel-doc-2.6.x in Debian, Perhaps / usr / doc / kernel ... in Some distributions). The ACM "serial port" for the first (0th) Such modem is: / dev/usb/acm/0 or possibly / dev/usb/ttyACM0. Should this be the case regardless of whether or not you use the new "device file system". It's not really a serial port, but the driver makes it look like a serial port to the which the software uses the modem.

Since the bandwidth on the USB is high it's possible to send a lot more That just data to a USB modem. That this means it's feasible to create a USB winmodem Nowhere does the driver most of the modem's work on the CPU and sends the results to the modem. So beware of USB winmodems (unless They have Linux support).

Which Internal Modems Might not work with Linux

Software-based Modems (winmodems, linmodems) Only about half have a Linux driver available.
MWave and DSP Modems Might work, but only if you first start Windows / Dos EACH time you power on your PC.
Modems with Old Rockwell (RPI) Drivers work but with reduced performance.
Some MWave and DSP Modems

Note That there's now a Linux driver for the ACP (Mwave) Modem Used in IBM Thinkpads 600 +. See the mini-HOWTO: ACP-Modem.

While hardware modems Used use DSPs (Digital Signal Processors) Some of these DSPs are programmed by the which a driver must be downloaded from the hard disk to the DSPs memory just before using the modem. Unfortunately, Such downloading is normally done by Dos / Windows programs (the which does not work for Linux). But there has been substantial success in getting Some of these modems to work with Linux. For example, there is a Linux driver available to run a Lucent (DSP) modem.

That Ordinary modems work fine with Linux (without needing a driver for the modem) Often have a DSP too (and May mention this on the packaging), but the course That runs the DSP is stored inside the modem. These work fine under Linux. An example of a DSP modem That has problems working under Linux is the old IBM's Aptiva MWAVE.

One way to get Some DSP modems to work with Linux is to boot from DOS (if you have it on your Linux PC). You first install the driver under DOS (using DOS and not Windows drivers). Then start Dos / Windows and start the driver for the modem so as to program the DSP. Then without turning off the computer, start Linux.

One May write a "batch" file (Actually a script) to do this. Here is an example but you must modify it to suit your situation.

rem mwave is a batch file supplied by the modem maker
call c: \ mww \ etc \ mwave start
brake LOADLIN.EXE That is a DOS program will from boot Linux from DOS (See
rem Config-HOWTO).
c: \ linux \ loadlin f: \ vmlinuz root = / dev/hda3 ro
One May create an icon for the Window's desktop the which points to Such a batch file and set the icon properties to "Run in MSDOS Mode". Then by clicking on this icon one sets up the modem and goes to Linux. Another possible way to boot Linux from DOS is to press CTRL-ALT-DEL and tell it to reboot (assuming Things That you have set up cans so That you boot directly into Linux). The modem Remains on the Same com port (IO Same address) That Used it under DOS.

The Newcom ifx modem needs a small kernel patch to work Correctly since its simulation of a serial port is a non-standard. The patch and other info for using this modem with Linux is at http://quinine.pharmacy.ohio-state.edu/ ~ ejolson / linux / newcom.html.

Old Rockwell (RPI) Drivers

Some older Rockwell chips need Rockwell RPI (Rockwell Protocol Interface) drivers for compression and error correction. They cans still be used with Linux even though the driver software works only under MS Windows. Because this is the MS Windows software (the which you do not have) does only compression and error correction. If you are willing to operate the modem without compression and error correction then it's feasible to use it with Linux. To do this you will of need to disable RPI by sending the modem (via the initialization string) a "RPI disable" command EACH time you power on your modem. On my old modem this command was + H0. Not having data compression available makes it slower to get webpages but is just as fast Pls That downloading files are already compressed.

No comments:

Post a Comment