Penguin
Diff: HowToLinmodemHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToLinmodemHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Tuesday, October 26, 2004 10:23:18 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:06:57 am by perry Revert
@@ -1,1689 +1 @@
-  
-  
-  
-Linmodem-HOWTO  
-  
-  
-  
-----  
-  
-!!!Linmodem-HOWTO  
-  
-!!Sean Walbran sean(at)walbran.org and Marvin Stodolsky stodolsk(at)erols.comv0.43, 24 February 2001  
-  
-  
-----  
-''  
-  
-This document describes Linmodem (winmodem hardware) support under  
-Linux. While such support is limited (almost exclusively  
-in the form of manufacturer-created, but unsupported, binary kernel modules),  
-the number of chipsets with some form of support is growing rapidly.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-*1.1 Copyright  
-  
-*1.2 Disclaimer  
-  
-*1.3 Credits  
-  
-*1.4 Updates and Corrections  
-  
-  
-  
-  
-  
-!!2. Linmodems  
-  
-  
-*2.1 What is a Linmodem?  
-  
-*2.2 Which Linmodem hardware is supported?  
-  
-*2.3 How can I find out if my !GeeWhiz 9.8.7 Modem / Laptop has one of these chipsets?  
-  
-  
-  
-  
-  
-!!3. General Setup and Kernel Module Issues  
-  
-  
-*3.1 Kernel Module Support  
-  
-*3.2 ISA Plug-n-Play  
-  
-*3.3 PCI Modems  
-  
-*3.4 Module tools  
-  
-  
-  
-  
-  
-!!4. Tips and Tricks for Precompiled Modules with different Kernel Versions  
-  
-  
-*4.1 Fixscripting  
-  
-*4.2 Patching tty.h  
-  
-*4.3 Using a ppp.o from Kernel 2.2.14  
-  
-  
-  
-  
-  
-!!5. Specific Chipsets and Their Drivers  
-  
-  
-*5.1 IBM Mwave (Thinkpad 600E)  
-  
-*5.2 Lucent LT  
-  
-*5.3 ESS  
-  
-*5.4 PCTel  
-  
-*5.5 Conexant/Rockwell HSF  
-  
-*5.6 Intel (formerly Ambient Technology, formerly Cirrus Logic)  
-  
-*5.7 3Com  
-  
-*5.8 AMR  
-  
-  
-  
-  
-  
-!!6. Troubleshooting  
-  
-  
-  
-  
-!!7. FAQ  
-  
-  
-*7.1 I have a winmodem. Will it work under Linux?  
-  
-*7.2 I get "NO DIALTONE".  
-  
-*7.3 I get a "device or resource busy" error.  
-  
-*7.4 I get unresolved symbols when fixscripting/insmoding.  
-  
-*7.5 My PCTel modem doesn't work.  
-  
-*7.6 The modem dials and connects fine, but then it drops the connection.  
-  
-*7.7 I get a kernel panic on closing the connection or unloading the driver.  
-  
-*7.8 Nothing seems to work. To whom can I turn for help?  
-  
-*7.9 Who wrote the driver for my winmodem, and how do I contact him/her?  
-  
-  
-  
-  
-  
-!!8. Appendix  
-  
-  
-*8.1 PCTel Module Parameters: Country Code  
-  
-----  
-  
-!!1. Introduction  
-  
-  
-  
-  
-This is the Linux Linmodem HOWTO document. It is intended as  
-a quick reference to help you find out if there is a way to get your (so-called) winmodem  
-working under Linux, and, if so, how to do it. You should understand  
-from the outset that there may well be ''no'' support for your winmodem:  
-there is limited support for such modems, often in the form of vendor-created  
-but vendor-unsupported, binary-only kernel modules (though a small number of open-source  
-projects exist).  
-  
-  
-To emphasize: your best bet under Linux is ''certainly'' to get  
-a true hardware modem. However, if you're stuck with a winmodem, perhaps  
-this document can help.  
-  
-  
-For the most up-to-date information about available Linmodem drivers,  
-visit  
-Rob Clark's site,  
-our small resources page,  
-and the Linmodems.org  
-mailing list archives.  
-General modem issues, such as IRQ settings and dialup scripts, are  
-dealt with much more thoroughly in the more general  
-Modem-HOWTO,  
-Serial-HOWTO,  
-PPP-HOWTO,  
-and other related HOWTOs available at the  
-Linux Documentation Project site and elsewhere.  
-  
-  
-  
-  
-!!1.1 Copyright  
-  
-  
-  
-Copyright (c) 2000,2001 by Sean Walbran, Marvin Stodolsky  
-  
-  
-Please freely copy and distribute (sell or give away) this document in  
-any format. It's requested that corrections and/or comments be fowarded  
-to the document maintainer. You may create a derivative work and distribute  
-it provided that you:  
-  
-  
-  
-  
-  
-*Send your derivative work (in the most suitable format such as  
-sgml) to the LDP (Linux Documentation Project) or the like for posting  
-on the Internet. If not the LDP, then let the LDP know where it is  
-available.  
-*  
-  
-*License the derivative work with this same license or use GPL.  
-Include a copyright notice and at least a pointer to the license used.  
-*  
-  
-*Give due credit to previous authors and major contributors.  
-*  
-  
-  
-  
-  
-  
-  
-If you're considering making a derived work other than a translation,  
-it's requested that you discuss your plans with the current maintainer.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!1.2 Disclaimer  
-  
-  
-  
-  
-  
-  
-Use the information in this document at your own risk. We disavow any  
-potential liability for the contents of this document. Use of the  
-concepts, examples, and/or other content of this document is entirely  
-at your own risk.  
-  
-  
-All copyrights are owned by their owners, unless specifically noted  
-otherwise. Use of a term in this document should not be regarded as  
-affecting the validity of any trademark or service mark.  
-In particular, since the term "Winmodem" is a trademark of US Robotics/3Com,  
-we use the term "winmodem" here as does Rob Clark: to be read as "Winmodems(tm),  
-host-based modems, HCF-modems, HSP-modems, and all similar  
-modem-like hardware." Linux is a trademark of Linus Torvalds.  
-  
-  
-Naming of particular products or brands should not be seen as endorsements.  
-  
-  
-It are strongly recommended to make a backup of important and/or  
-relevant files before any installation procedure.  
-  
-  
-  
-  
-!!1.3 Credits  
-  
-  
-  
-Most individual credits are given in the body of the text where appropriate.  
-  
-  
-A large amount of information contained in this document comes a variety  
-of great sources such as  
-Rob Clark's site,  
-the  
-Linmodems.org,  
-mailing lists, and  
-Werner Heuser's  
-Mobilix pages.  
-  
-  
-Special thanks to Mark Spieth (mark(at)digivation.com.au) for  
-discussions, advice, and multiple and ongoing contributions.  
-  
-  
-This document itself was created using the SGML HOWTO template  
-created by Stein Gojen, as described in the  
-HOWTO-HOWTO.  
-site.  
-  
-  
-  
-  
-!!1.4 Updates and Corrections  
-  
-  
-  
-The most recent HTML version of this document is available at  
-http://walbran.org/sean/linux/linmodem-howto.html,  
-as a single HTML file at  
-http://walbran.org/sean/linux/linmodem-howto-all.html,  
-with source SGML at  
-http://walbran.org/sean/linux/linmodem-howto.sgml.  
-  
-  
-The old version of this document was getting huge and unwieldy, so this  
-rewrite seemed necessary. To avoid the total loss of that information,  
-a copy of the old version is maintained at  
-http://walbran.org/sean/linux/linmodem-howto-old.html.  
-  
-  
-Do you have a Linmodem which works, but is not described here? Are you  
-developing a driver? Do you think something in this document is incorrect  
-or misleading? Do you think that your or someone else's work has been  
-used here but not appropriately credited? Please don't hesitate to  
-email me at sean(at)walbran.org with corrections and suggestions.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!2. Linmodems  
-  
-  
-  
-  
-!!2.1 What is a Linmodem?  
-  
-  
-  
-A Linmodem is the Linux implementation of a "winmodem" (see disclaimer).  
-These devices are 'less than' a modem in the sense that they depend  
-on software to perform, to a greater or lesser extent, the functions traditionally  
-handled by modem hardware. The rationale for this is, of course,  
-that software is cheaper than hardware, and can be  
-upgraded/expanded/improved without  
-the use of screwdrivers (usually); however, for the modem to  
-function at all, one requires software that can  
-run on one's preferred operating system.  
-  
-  
-  
-  
-!!2.2 Which Linmodem hardware is supported?  
-  
-  
-  
-An ever-growing number of winmodems will work under  
-Linux. Each chipset for which a driver is known to exist has a  
-section in this document, below, describing its installation.  
-Any other chipset has ''no known support'' under Linux  
-(at least, not known to us).  
-  
-  
-  
-  
-  
-  
-  
-!!2.3 How can I find out if my !GeeWhiz 9.8.7 Modem / Laptop has one of these chipsets?  
-  
-  
-  
-  
-  
-!Information from the system  
-  
-  
-  
-  
-  
-The information about installed hardware using commands such as:  
-  
-  
-* PCI: cat /proc/pci and lspci  
-*  
-  
-* ISA: pnpdump and isapnp  
-*  
-  
-* Internal PCMCIA: cardctl ident  
-*  
-  
-* General: dmesg | more and cat /proc/interrupts  
-*  
-  
-  
-  
-MarvS notes that the Device Manager under Windows can provide similar information,  
-but it should be  
-noted that a manufacturer will often simply put its brand name on a built-in modem, so  
-this information may not be as useful as you might hope (e.g., what chipset does  
-a "Compaq Internal 56k" modem have?). Additional information may sometimes be  
-obtained by making a modem log, implemented under MS Windows as a check box  
-option within the Dial Up Networking menus. The file produced is  
-C:\WINDOWS\MODEM.LOG. It will contain the modem initialization strings,  
-and perhaps also the name of the modem configuration file, which may also contain  
-other useful information.  
-  
-  
-  
-  
-!Modem names and identification numbers  
-  
-  
-If you know the precise name of your modem, you can try searching  
-the large Linux Modem Compatibility  
-Database  
-at  
-Rob Clark's site.  
-The color/letter code on the left side of the table will indicate if  
-your modem is known to function or not under Linux. The code "LM" indicates  
-a Linmodem, and the modem notes should indicate which driver you need.  
-A "WM" means it's a winmodem, but no Linux support is known to exist.  
-Be careful not to assume that modems with similar names will contain  
-the same chipsets, or will necessarily behave similarly whatsoever!  
-Your !WhizBang LX56  
-and your friend's !WhizBang GT56 could have entirely different innards.  
-  
-  
-If you do not know the precise name of your modem, you can search based  
-on the identification number of the modem (  
-on every modem there must be printed a registration number,  
-which may either be the board producer's designation, or,  
-alternatively, an FCC registration number.  
-An example photo of such an ID number on a modem board can be found at  
-http://www.idir.net/~gromitkc/fcc1.jpg on  
-Rob Clark's site.)  
-Use your web browser's "Find in Page" to search his  
-table  
-of modems and FCC ID's  
-to obtain chipset/driver information. Alternatively, you can directly  
-search the US Federal Communications Commission (FCC) database at  
-http://www.fcc.gov/oet/fccid/.  
-Read the directions carefully, and be careful not to confuse O (the letter)  
-with 0 (the number), and other possible mixups.  
-  
-  
-  
-  
-!Laptops with internal modems  
-  
-  
-You may not be able to obtain the FCC ID number if you have a laptop  
-which you prefer not to open up, or are looking to buy a particular  
-machine and the vendor has not been polite enough to provide you  
-with the information nor a sample box for you to take apart and play with. In these  
-cases, you might try:  
-  
-  
-*Kenneth Harker's  
-Linux on Laptops site indexes a large number of user-created sites  
-describing their experiences with Linux on particular laptop models.  
-*  
-  
-*Werner Heuser's  
-Mobilix: Linux Modems and  
-Mobilix: Linux Mini-PCI pages include lists of specifications for laptops  
-with internal modems and NIC's, as well as useful tips for obtaining more  
-information in case the model is not listed there.  
-*  
-  
-* The computer vendor's manual, web site, or (horrors!) technical support.  
-*  
-  
-*  
-http://www.google.com  
-  
-  
-  
-  
-*  
-  
-  
-  
-  
-----  
-  
-!!3. General Setup and Kernel Module Issues  
-  
-  
-  
-  
-  
-  
-  
-!!3.1 Kernel Module Support  
-  
-  
-  
-All of the kernel drivers listed here are released as kernel modules; therefore,  
-you must be sure to have a kernel which supports modules. In addition,  
-"module version" support should be enabled to aid the use of  
-kernels and modules which are not version matched, as described further below.  
-If you use a kernel from a reasonably recent Linux distribution, such module support  
-is most likely already enabled. If you're compiling the kernel yourself, then you  
-should already be aware of how to enable modules, via the  
-Kernel HOWTO.  
-In any case, you can check to make sure that the following  
-settings exist in your kernel configuration file  
-(which is usually found under /usr/src/linux):  
-  
-CONFIG_MODULES=y  
-CONFIG_MODVERSIONS=y  
-  
-  
-  
-  
-  
-  
-  
-  
-!!3.2 ISA Plug-n-Play  
-  
-  
-  
-If you have an ISA Plug-n-Play modem, you will most likely  
-need to use isapnptools to allocate resources to the modem card.  
-For this, you need to have isapnptools installed and have an entry in  
-the /etc/isapnp.conf file  
-for the modem. You should read the manual pages and the  
-Plug-and-Play-HOWTO, but if you have no other  
-ISA devices you're concerned about, basically all you need to do is:  
-  
-  
-# If possible, configure your BIOS to "Non-PNP OS."  
-#  
-  
-# As root, run pnpdump to generate a prototype isapnp.conf  
-file based on probed cards and your system's current resource usage.  
-#  
-  
-# Look for your modem in this output, and uncomment the lines  
-corresponding to the (otherwise unused) IRQ you wish to use for the  
-modem. For example, Sean's isapnp.conf for a Thinkpad i1411 with  
-a Lucent LT modem includes:  
-  
-  
-  
-  
-(CONFIGURE ACRd119/1 (LD  
-(INT 0 (IRQ 11 (MODE +E)))  
-(IO 1 (SIZE 8) (BASE 0x0100) (CHECK))  
-(NAME "ACRd119/1 [[ ]{LT Win Modem }")  
-# (ACT Y)  
-))  
-  
-Strangely, in this case at least, it was necessary to leave  
-the #(ACT Y) commented out. If it doesn't work for you one way,  
-try it the other.  
-  
-#  
-  
-# Copy the file to /etc/isapnp.conf  
-#  
-  
-# Reboot. You should see a message along the lines of 'Initializing  
-ISA PNP devices...OK' on booting. If it fails, you have probably selected  
-an IRQ/DMA setting which is already in use; try another of the options  
-given in the pnpdump output.  
-(Note that it is probably not necessary to reboot, if you run isapnp  
-with the right flags. However, it's easiest for the beginner to simply reboot  
-at this point.)  
-#  
-  
-  
-  
-  
-  
-  
-  
-  
-!!3.3 PCI Modems  
-  
-  
-  
-  
-If you wish to know more about your PCI modem  
-than cat /proc/pci gives, utilities within the software package  
-pciutils are useful, such as scanpci and lspci.  
-In particular, lspci -vv gives lots of nice, useful information.  
-  
-  
-  
-  
-  
-  
-  
-!!3.4 Module tools  
-  
-  
-  
-The following commands are useful when dealing with modules. Many  
-require root priveleges. See the manual pages (e.g., man insmod)  
-for more detailed information on these commands.  
-  
-  
-  
-  
-!insmod, insmod -f, and modprobe  
-  
-  
-A version-matched kernel module should usually be inserted using the command  
-modprobe ''module_name''; modprobe will try to  
-insert any other modules on which your module depends (as determined  
-by depmod, described below).  
-  
-  
-A single module can be inserted (without those modules on which it depends)  
-using the command insmod ''module_name''.  
-If the module were compiled under a different kernel than the current one,  
-insmod would report the version mismatch and refuse load the module.  
-One can, however, pass a flag to force the module to load despite the mismatch:  
-insmod -f ''module_name''. If the kernel interface the  
-module uses did not actually change with the kernel version, the  
-module will be inserted and could be to some degree functional.  
-  
-  
-This is the case with, for example, the ESS modem module esscom.o  
-which, while compiled under 2.2.12, can be forcibly inserted with later kernels  
-and will function to a greater or lesser extent up through kernel version 2.2.14  
-without further changes; beyond 2.2.15, the patch to tty.h described  
-below is required. However, even forcing insertion fails for kernels  
-from the 2.4 series.  
-  
-  
-  
-  
-  
-  
-  
-!rmmod  
-  
-  
-A module can be unloaded (removed from the kernel) after use by issuing  
-the command rmmod.  
-  
-  
-  
-  
-  
-  
-  
-!depmod  
-  
-  
-The depmod commands analyzes module dependencies.  
-The compatility of precompiled modules with a running kernel  
-can be checked with a command like:  
-  
-depmod -e ltmodem.o  
-  
-For the specific example of the ltmodem.o module compiled under kernel 2.2.12  
-with a running kernel 2.2.17, the returned information includes:  
-  
-  
-* depmod: *** Unresolved symbols in ltmodem.o  
-*  
-  
-* depmod: bh_mask  
-*  
-  
-* depmod: schedule_timeout  
-*  
-  
-* depmod: request_region  
-*  
-  
-* depmod: pcibios_read_co  
-*  
-  
-* and many others.  
-*  
-  
-Using a module with unresolved symbols can be a dangerous thing, as described  
-below.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!4. Tips and Tricks for Precompiled Modules with different Kernel Versions  
-  
-  
-Many of the linmodem drivers are only available as precompiled, binary kernel modules.  
-Generally, modules/binaries  
-transparently function only with the kernel against which they were co-compiled. Therefore,  
-getting a precompiled linmodem driver to work with your particular kernel could be a challenge.  
-  
-  
-Since the Linux kernel is a dynamically changing beast, it is very unfortunate that many  
-modem/chip vendors have not yet chosen to release source-code versions of their  
-drivers, which would ensure your and our ability to modify these drivers appropriately as  
-kernel source code evolves. Some of the binary modules have been coaxed to function  
-under some later kernel versions using various tricks, as described below; however,  
-even though a module may be rendered functional, it is advisable to use them minimally.  
-Quoting an email from Mark Spieth,  
-  
-  
-"A driver can never work properly if there are unresolved symbols, as it means  
-something is not going to work. Furthermore, it means that that something  
-that would have been called will call something else in the kernel  
-and this could be anything. This is ''very'' bad."  
-  
-  
-Therefore, you should be careful in using binary modules with a kernel  
-of a different version; proceed at your own risk. If you require above all  
-that your modem function, consider downgrading your kernel to match the  
-module - this is by no means a ridiculous prospect. Despite these warnings,  
-however, many others have used mismatched binary modules and kernels with only minor  
-annoyances ( such as the occasional kernel panic ) using tricks and tools such as  
-the following.  
-  
-  
-  
-  
-!!4.1 Fixscripting  
-  
-  
-  
-Mark Spieth has contributed a progressively improved series of "fixscripts"  
-for editing a binary module so that version mismatch warnings are eliminated.  
-Insertion of the "fixed" module then proceeds without the forcing flag, i.e. simply  
-insmod ''module_name''. Later versions also rename module symbols  
-to match those exported by the kernel, so that "Unresolved symbols" errors  
-are not returned by the test depmod -e. It must be emphasized that this  
-change is almost entirely cosmetic - it is still recommended that the module be used  
-minimally.  
-  
-  
-To use the fixscript on, for example, the (now-deprecated) binary Lucent module ltmodem.o,  
-make a working directory such as /root/modem.  
-Obtain the latest fixscript from  
-http://www.test.dclabs.com.au/linmodem/fixscript.  
-Save the file as fixscript.  
-View it with less or your favorite text editor to check that DOS hard stops were not  
-accidentally acquired. They look like bold M, underlined M, or ^M depending upon your  
-viewer/editor. NOTE: the viewer more does NOT display these DOS newlines.  
-  
-  
-Make the  
-file executable with chmod +x fixscript.  
-Generate a "fixed" module with, i.e.,  
-  
-./fixscript ltmodem.o ltmodem2217.o  
-  
-  
-  
-No errors should be generated by testing the module dependencies with  
-  
-depmod -e ltmodem2217.o  
-  
-  
-  
-and insertion should succeed with a simple, non-forced,  
-  
-insmod ltmodem2217.o  
-  
-  
-  
-The "source code" supplied with some PCTel modules (a small C file)  
-performs similar masquerading  
-when compiled and linked with the binary libraries in those packages;  
-unlike the partially-open-source Lucent driver, it  
-does ''not'' compensate for any actual changes to the kernel interface.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!4.2 Patching tty.h  
-  
-  
-  
-In his quest to get the original, binary-only Lucent LT modem  
-driver (version 5.68) working with kernels later than 2.2.14, Mark Spieth noticed  
-that one simple change in the Linux kernel source fixed the major  
-incompatibilities incurred between the 2.2.14 to 2.2.16 kernel versions.  
-This patch is no longer necessary when using the partial source/binary  
-Lucent driver (version 5.78), but it remains useful for those with other  
-modems whose drivers are compiled against pre-2.2.15 kernels.  
-  
-  
-The patched 2.2.17 tty.h and some 2.2.17 kernel packages compiled  
-with this patch are available from  
-http://walbran.org/sean/linux/stodolsk/.  
-If you want to do the edit yourself, the line to shift is in the structure  
-tty_struct within include/linux/tty.h; it has an extra member  
-poll_wait in later kernels.  
-Move this member to the bottom of the structure, so that the remaining offsets  
-will then be the same as those in versions earlier than 2.2.15, and thus be  
-compatible with the precompiled kernel module. You will need to recompile  
-your kernel and modules after making this change to the source.  
-  
-  
-  
-  
-  
-  
-  
-!!4.3 Using a ppp.o from Kernel 2.2.14  
-  
-  
-  
-A trick exists for using the binary modules with kernels later than 2.2.15 which does  
-not require kernel recompilation; however, following the discovery  
-of the tty.h patch described above, this trick is no longer necessary nor  
-recommended. The trick is to  
-replace the /lib/modules/net/ppp.o module with one from kernel  
-2.2.14. Christoph  
-Hebeisen (cth(at)sfu.ca) reported that the use of ppp.o version 2.2.14 rather  
-than that of version 2.2.16 with the Lucent module provided functionality  
-under 2.2.16 kernels. Willie Green (willjr(at)lcc.net) confirmed that this trick works  
-also with the ESS module. After simple insertion of a supporting version-matched module:  
-  
-insmod slhc  
-  
-the mismatched ppp.o from 2.2.14 source is inserted  
-  
-insmod -f ppp.o  
-  
-We wish to emphasize that this trick with forced insertion is  
-less stable than the easy and more effective change to the kernel source  
-file tty.h, as described above.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!5. Specific Chipsets and Their Drivers  
-  
-  
-  
-  
-  
-  
-  
-!!5.1 IBM Mwave (Thinkpad 600E)  
-  
-  
-  
-IBM has a completely open-source (GPL'ed) driver for the software modem  
-in their Thinkpad 600E's available  
- here.  
-  
-  
-  
-  
-  
-  
-  
-!!5.2 Lucent LT  
-  
-  
-  
-  
-  
-!Overview  
-  
-  
-This modem enjoys the most support under Linux, in that there exist three different  
-driver packages:  
-  
-  
-*There exists a manufacturer-unsupported, half-binary/half-open-sourced  
-kernel module, originally designed for Red Hat 6.2's 2.2.14-5 kernel,  
-but substantially reworked by Mark Spieth and others to function  
-with 2.2.x and 2.4.x kernels. This is driver version 5.78(c,d,e,...), and  
-is the driver you are most likely to have success using.  
-*  
-  
-*There exists a manufacturer-unsupported, binary-only  
-kernel module, compiled under Red Hat 6.'s 2.2.12-20 kernel.  
-This is driver version 5.68.  
-*  
-  
-*Some open source tools for use with Lucent modems are  
-available at  
-http://www.close.u-net.com/ltmodem.html.  
-Pavel Machek writes that "It is not too useful,  
-however: it is a hardware driver, and without a v.34 protocol stack, you  
-can't connect to your ISP. It is enough to turn your Lucent winmodem  
-into an answering machine, however."  
-*  
-  
-It should be noted that the binary-only driver module (from "linux568.zip")  
-contains code from the GPL'ed Linux serial.c driver, so, since  
-the source code for the  
-modem driver is not available, trafficking in this driver is apparently  
-in violation of the GPL. Distributing the partially open source driver  
-("i56lvp578.zip") may or may not be technically legal, since the GPL'ed  
-code, though not yet linked with the closed-source code, is certainly intended  
-to be so. See  
-this Kernel Traffic issue  
-and a Linux-Kernel mailing list archive for the week including Dec. 3rd, 2000,  
-for more details.  
-  
-  
-  
-  
-  
-  
-  
-!Driver v5.78(c,d,e,...) - Installation  
-  
-  
-You should obtain the most recent package for your kernel from  
-http://walbran.org/sean/linux/stodolsk/  
-and follow the up-to-date instructions given there.  
-  
-  
-  
-  
-!Manufacturer's driver version 5.68 - Installation  
-  
-  
-This driver is superseded by version 5.78, described above; however,  
-it may still be of some use in special cases.  
-  
-  
-# Obtain the package for your kernel:  
-  
-  
-## 2.2.12 to 2.2.15  
-http://linmodems.org/linux568.zip  
-##  
-  
-## 2.2.15 and above : same URL, but "tty.h" patch is required; see "Tips and Tricks...", above.  
-##  
-  
-  
-#  
-  
-# unzip linux568.zip  
-#  
-  
-# su (enter root password when prompted)  
-#  
-  
-# ./ltinst (a 'file not found' error will be issued due to a flaw in  
-the installation script; ignore this error.)  
-#  
-  
-Your modem should now be accessible as the device /dev/modem or /dev/ttyS14.  
-  
-  
-  
-  
-  
-  
-  
-!Open Source Tools - Installation  
-  
-  
-See the documentation with the source for instructions.  
-  
-  
-  
-  
-  
-  
-  
-!!5.3 ESS  
-  
-  
-  
-  
-  
-!Overview  
-  
-  
-Binary-only drivers for ES56T-PI (PCI) and ES56V-I (ISA), compiled under !RedHat 6.'s kernel  
-2.2.12-20, are available. The driver has been used via forced insertion up through kernel 2.2.15,  
-and up through 2.2.17 using the "tty.h" patch described in the "Tips and Tricks..." section, above.  
-  
-  
-  
-  
-  
-  
-  
-!Installation  
-  
-  
-  
-  
-  
-# Obtain the package for your modem:  
-  
-  
-#* ISA:  
-ftp://ftp.esstech.com/pub/modem/isa/unsupported/56v-i/linux/kernel61/linux111.zip or  
-#*  
-  
-#* PCI:  
-ftp://ftp.esstech.com/pub/modem/pci/unsupported/56t-pi/linux/Kernel61/111.zip.  
-#*  
-  
-  
-#  
-  
-# For kernel 2.2.15 and later, apply tty.h patch (See "Tips And Tricks...," above); recompile kernel and modules.  
-#  
-  
-# Unpack the package with: unzip ''package_name''  
-#  
-  
-# Change to the root user: su (enter root password when prompted)  
-#  
-  
-# Create the device file: mknod /dev/esscom c 127 1  
-#  
-  
-# Make convenience device: ln -s /dev/esscom /dev/modem  
-#  
-  
-# Make convenience device: ln -s /dev/esscom /dev/ttyS15  
-#  
-  
-# Set device ownership: chgrp uucp /dev/esscom  
-#  
-  
-# Set device permissions: chmod 666 /dev/esscom  
-#  
-  
-# Masquerade module version (See "Tips And Tricks...," above): ./fixscript essmodem.o essmodem.fix.o  
-#  
-  
-# Install module file: cp essmodem.fix.o /lib/modules/`uname -r`/misc/essmodem.o  
-#  
-  
-# Insert module in kernel: insmod -f essmodem  
-#  
-  
-# (Optional) Provide for automatic module loading: add a line "alias char-major-127 essmodem" to  
-the file /etc/modules.conf or /etc/conf.modules  
-#  
-  
-  
-  
-  
-  
-!!5.4 PCTel  
-  
-  
-  
-  
-  
-!Overview  
-  
-  
-Binary drivers can be found at  
-http://www.idir.net/~gromitkc/winmodem.html#drivers.  
-  
-  
-A Debian-style installation package for kernel 2.2.16 was made available  
-by Corel at  
-ftp://ftp.corel.com/pub/linux/!CorelLinux/dists/corellinux-1.2/corel/binary-i386/utils/pctel-kernel-2.2.16-driver-cdl-v1._1..deb, though this link appears  
-to now be incorrect. A gzipped/tarred package derived from the .deb is  
-available  
-here.  
-In addition, a driver for kernel 2.4 was contributed by Thomas Wright, and  
-is also available  
-here.  
-Other packages, requiring the superficial compilation described below, are also  
-known to exist.  
-  
-  
-  
-  
-!Installation  
-  
-  
-There are apparently two types of PCTel module package around.  
-  
-  
-# A package (rpm or deb) which installs  
-two module files, pctel_hsp.o and pctel_pci.o, in /lib/modules/2.2.16.  
-  
-  
-With such a package, if you are running a kernel more recent than 2.2.16, you  
-will need to use forced insertion (insmod -f), and if you are not successful, might  
-try the "fixscript" method used with the Lucent 5.68 and ESS modules above - but, note  
-that this has not, to my knowledge, been tried out yet. If you are running a kernel  
-older than 2.2.16, you should consider upgrading your kernel, or else try the  
-fixscripting as well (this is also not guaranteed to work).  
-Please send me a report if you get these to work.  
-  
-  
-  
-  
-#  
-  
-# A package which, when unpacked, gives a set of libraries (hsp.a, etc...)  
-and a small C source file (ptmodule.c), which should be in directories like lib/  
-and src/module/. If there are no directories, create them and arrange the files with:  
-  
-mkdir lib  
-mkdir src  
-mkdir src/module  
-mv *.a lib/  
-mv Makefile *.c src/module  
-  
-  
-  
-Now go to the directory src/module and type make. This should generate the module  
-file pctel.o, which will appear back up in the directory lib.  
-(The driver module is ''not'' the object file ptmodule.o in src/module!)  
-  
-  
-The apparent version of the module generated in this way will match your current kernel version.  
-  
-#  
-  
-  
-  
-With the modules in hand, proceed to install as follows:  
-  
-  
-  
-  
-  
-# Change to the root user: su (enter root password when prompted)  
-#  
-  
-# Create the device file: mknod /dev/pctel c 62 79  
-#  
-  
-# Make convenience device: ln -s /dev/pctel /dev/modem  
-#  
-  
-# Make convenience device: ln -s /dev/pctel /dev/ttyS15  
-#  
-  
-# Set device ownership: chgrp uucp /dev/pctel  
-#  
-  
-# Set device permissions: chmod 666 /dev/pctel  
-#  
-  
-# Install module file (only for package type 2, above): cp pctel.o /lib/modules/`uname -r`/misc/  
-#  
-  
-# Insert module(s) in kernel with insmod -f ''modulename''  
-#  
-  
-  
-  
-  
-  
-  
-  
-  
-!!5.5 Conexant/Rockwell HSF  
-  
-  
-  
-There exist drivers for kernels 2.2.14, 2.2.16, and 2.2.17 at  
-http://www.olitec.com/pci56kv2.html  
-The page is in French,  
-but the installation commands are given on the page in boldface red text  
-(you can also use the  
-babel fish).  
-Essentially, download the appropriate package, unpack it with tar -zxvf,  
-and run the installation script ins_all.  
-  
-  
-This driver is a bit finicky (with the most common symptom of failure being  
-the "NO DIALTONE" response), but a number of people have been able to get  
-it to work, usually by inserting their modem's vendor ID in the modem's  
-.inf file, perhaps along with a change of the device major number from 254 to 253.  
-See the Linmodems.org mailing list archives for details; one example of many is given  
-here.  
-  
-  
-  
-  
-  
-  
-  
-!!5.6 Intel (formerly Ambient Technology, formerly Cirrus Logic)  
-  
-  
-  
-Mikhail Moreyra has written a GPL'ed driver for the CL-MD5620DT chipset  
-which can do up to 33.6 kbps; however, this is alpha software  
-and should be treated with due care. The driver can be obtained at  
-http://linmodems.org/CLModem-.3..tar.gz.  
-Gabriel Gambetta (ggambett(at)internet.com.uy) issued a patched  
-version of the driver to allow standard AT modem commands;  
-you can get this version at Rob Clark's site  
-here.  
-  
-  
-A driver for the HaM modem was beta-tested in early 2001 and is  
-expected to be released quite soon.  
-  
-  
-  
-  
-  
-  
-  
-!!5.7 3Com  
-  
-  
-  
-  
-  
-!56k  
-  
-  
-An rpm package with a driver for the 3Com MDP3900V-U modem  
-(apparently found in the Dell Dimension L733r) was  
-posted to the Linmodems.org mailing list  
-(  
-click here for more information), and is mirrored  
-here.  
-  
-  
-  
-  
-!Mini-PCI  
-  
-  
-A request for comments was posted by a 3Com official  
-about the possible demand for a binary-only driver for their miniPCI combination  
-NIC/winmodem  
-here on the Linodems.org mailing list; please respond to the address  
-given, linmodem@new-n-used.com, and not to the mailing list.  
-Though to my knowledge no driver has yet been  
-released, Werner Heuser's  
-miniPCI page has more information and links.  
-  
-  
-  
-  
-  
-  
-  
-!!5.8 AMR  
-  
-  
-  
-Ian Stewart  
-reports  
-that he is working on a "mid-level driver" for the AC97 codec.  
-  
-  
-  
-----  
-  
-!!6. Troubleshooting  
-  
-  
-So you've read through this document, the  
-Modem-HOWTO,  
-and the  
-PPP Howto,  
-are pretty sure that your modem matches one of the drivers available,  
-but it still doesn't work? There are a number of points in  
-the process at which something could break down.  
-  
-  
-Linux generally maintains records of networking connections which are  
-very useful in troubleshooting problems. Their particular filenames  
-vary with both the Linux distribution and Dial-in software,  
-but  
-the system log files /var/log/messages, /var/log/syslog,  
-etcetera, should provide at least some information.  
-  
-  
-For both  
-your own trouble shooting and queries for help to a list, it will be  
-useful if you accumulate the information requested below. As root,  
-change to the directory in which the modem  
-install scripts are located, and  
-start a  
-script record as shown below. After this script is terminated  
-with "exit," copy it out of your Linux partition for transmission to the  
-list which may aid you.  
-  
-  
-(Below, # are explanatory comments.)  
-  
-# start the recording,  
-script !ModemTest.txt  
-# type in as much info on your Modem card as you have  
-echo winmodem name, manufacturer, designation, and chip if possible  
-# this gives your current kernel version  
-uname -r  
-# this gives information on your serial ports  
-setserial -agv /dev/ttyS*  
-# this information on your interrupts (irq)  
-cat /proc/interrupts  
-# show the contents of your module installation script (insert script name):  
-cat !ScriptName  
-# Check if your script is executable:  
-ls -l !ScriptName  
-# a response is OK if it has "x" such as below:  
-# -rwxrw-rw- 1 root root 654 Jan 6 2000 ltinst  
-# otherwise make it executable with:  
-chmod o+x !ScriptName  
-# verify with  
-ls -l !ScriptName  
-# if !ScriptName has not been successfully run before under this kernel  
-# run it with:  
-./!ScriptName  
-# what is the symbolic link /dev/modem set to:  
-ls -l /dev/modem  
-# What is the !DeviceName specified in the !ScriptName (/dev/ttyS14 or ...?)  
-echo !DeviceName  
-# what is your modem driver name? Something like !DriverName.o  
-# with the ".o" indicating it is a compiled binary  
-echo This is my !DriverName.o  
-# if should have been inserted in the Modules Path  
-# Try to display it there with:  
-find /lib/modules | grep !DriverName  
-# Is !DriverName among the modules installed in the running kernel?  
-lsmod  
-# if not try a simple insertion:  
-insmod ./!DriverName.o  
-# or if it was in the Modules Path, the following will suffice:  
-insmod !DriverName  
-# check for insertion:  
-lsmod  
-# if not inserted, try forcing:  
-insmod -f ./!DriverName  
-# list your inserted modules again.  
-lsmod  
-# If !DriverName is NOT listed,  
-# their is an incompatibility between modem hardware, driver and kernel.  
-# Further effort will be of No use.  
-# If !DriverName is listed, let's do a bit more information.  
-# You may first wish to rerun the configuration utility  
-# used to setup dial-in connections for your Linux installation.  
-# Remember to edit your !PassWord from this record later.  
-# You will probably be queried for the following information  
-# which you should have ready:  
-#Port to be used (/dev/modem or /dev/ttySn),Dial-inNumber, !UserName, !PassWord.  
-# Run your configuration utility.  
-!YourSetUpConf  
-# To stop recording  
-exit  
-  
-  
-  
-If dialin was not successfull, append to this a record from your log file.  
-As an example, a section of a /var/log/syslog from a Debian  
-Linux system is below.  
-  
-  
-  
-----  
-  
-!!7. FAQ  
-  
-  
-  
-  
-!!7.1 I have a winmodem. Will it work under Linux?  
-  
-  
-  
-Probably not. Please see the section "Which Linmodem hardware is supported?" above,  
-and check the Linux Modem Compatibility  
-database  
-at  
-Rob Clark's site.  
-  
-  
-  
-  
-!!7.2 I get "NO DIALTONE".  
-  
-  
-  
-Try setting your BIOS option from "PNP OS" to "non-PNP OS", from "Windows"  
-to "Other OS", or the equivalent.  
-  
-  
-Conexant users: See the Conexant section, above.  
-  
-  
-  
-  
-!!7.3 I get a "device or resource busy" error.  
-  
-  
-  
-  
-  
-  
-* If you have an ISA modem, did you use the isapnptools to allocate IRQ and DMA  
-resources to the card? See "ISA Plug-n-Play", above, for more information.  
-*  
-  
-* Double-check that you created the device file correctly,  
-and try to eliminate any IRQ conflicts you might have. If all looks well, but  
-it still doesn't work, check the  
-Linmodems.org  
-mailing list to see if someone  
-else has (and has perhaps fixed) the same problem, or try to fix it yourself  
-and inform others of your results.  
-*  
-  
-  
-  
-  
-  
-!!7.4 I get unresolved symbols when fixscripting/insmoding.  
-  
-  
-  
-Unresolved symbols are a true danger of version mismatching and are,  
-in general, bad, but are also almost inevitable with binary modules.  
-If the fixscript reports unresolved symbols, or the module does not  
-work despite the unresolved symbols, you may be out of luck with  
-that kernel/module combination; however,  
-a few common cases involve symbols like:  
-  
-  
-* slhc_xxxx: You probably need to insmod the slhc  
-module before inserting the modem/ppp modules; using modprobe  
-rather than insmod should also obviate this problem.  
-*  
-  
-* printk, jiffies: Your kernel may be compiled with  
-SMP enabled. None of the binary modules are known to be SMP-safe, and will  
-probably only work on a single-processor machine with a single-processor  
-kernel, i.e. SMP disabled. You should try recompiling your kernel or  
-otherwise obtaining a version with SMP disabled. (Thanks to  
-Tom Reinertson (treinertson(at)uswest.net))  
-*  
-  
-* tty_xxxx with esscom.o:  
-Earlier fixscripts were not able to handle the version-specific symbols  
-in this module. More recent versions are available at  
-http://www.test.dclabs.com.au/linmodem/fixscript)  
-which should be able to fix this module as well.  
-*  
-  
-If a module works in an unstable fashion,  
-it could be that, under some circumstances, you are avoiding those  
-symbols, while in others, you slam up against them. Try out different  
-ppp dialup programs (wvdial, kppp), which call a different set of functions  
-under similar conditions. It is also possible that the fixscript, which  
-was designed for the lucent module, is not "fixing" the symbols used  
-in your module. If you find no combination that works, consider "downgrading"  
-to a kernel which has a closer version match to that of the module.  
-  
-  
-  
-  
-!!7.5 My PCTel modem doesn't work.  
-  
-  
-  
-  
-  
-  
-* Do you need to give the module a country code parameter? See the appendix.  
-*  
-  
-* Are you using the right driver module? There are a few PCTel drivers  
-around (see the section "Which Linmodem hardware is supported?" above).  
-You might try one of the others and see if that helps.  
-*  
-  
-  
-  
-  
-  
-!!7.6 The modem dials and connects fine, but then it drops the connection.  
-  
-  
-  
-This is an often-reported problem that may have a few, or no, solutions:  
-  
-  
-#It is possible that the module is installed correctly and is working,  
-but that you have a problem with your ppp configuration.  
-In particular, if you find an error in the log along the lines  
-of "peer is not authorized," try changing "auth" to "noauth"  
-in /etc/ppp/options, and/or commenting out "auth" and "lock" (by  
-placing a '#' at the beginning of the line). Corel has a FAQ entry at  
-http://linux.corel.com/support/html/9314.htm about  
-this.  
-#  
-  
-#It has been reported that, with some kernel/module mismatches, a program  
-like kppp will give this error, while an alternative like wvdial  
-does not, for the same modules and hardware. You may wish to try a different  
-ppp dialer and see if that helps.  
-#  
-  
-#Lastly, there is the potential relationship with sound support.  
-Comparing functionality of ltmodem.o with/without sound  
-support in the kernels, dial-in is OK, but ppp is NOT achieved for the kernel  
-without sound support.  
-  
-  
-Most Linux distributions do deposit a kernel configuration file along  
-with the kernel. For Debian related distributions, it is the file  
-  
-/boot/config-version  
-  
-The positive choices can be quickly displayed with:  
-  
-grep SOUND /boot/config-version |grep -v not  
-  
-For the specific example of a 2.2.17 version:  
-  
-  
-  
-  
-# grep SOUND /boot/config-2.2.17 |grep -v not  
-CONFIG_SOUND=m  
-CONFIG_SOUND_OSS=m  
-CONFIG_SOUND_SB=m  
-CONFIG_SOUND_MPU401=m  
-CONFIG_SOUND_YM3812=m  
-CONFIG_SOUND_VMIDI=m  
-CONFIG_SOUND_YMPCI=m  
-CONFIG_LOWLEVEL_SOUND=y  
-  
-  
-  
-Either CONFIG_SOUND=m or CONFIG_SOUND=yes would show that the kernel  
-has sound support (as would simple sound output).  
-  
-  
-If none of these helps, you may wish to consider trying to use a kernel version which  
-is closer to the module. Otherwise, try the mailing list at  
-Linmodems.org for help.  
-  
-#  
-  
-  
-  
-  
-  
-!!7.7 I get a kernel panic on closing the connection or unloading the driver.  
-  
-  
-  
-There are a couple of possible solutions to this, neither of which may work:  
-  
-  
-* Try a different ppp dialer (wvdial, kppp).  
-*  
-  
-* Configure the module so that it stays in the kernel, i.e. so that it  
-is not unloaded.  
-*  
-  
-  
-  
-  
-  
-!!7.8 Nothing seems to work. To whom can I turn for help?  
-  
-  
-  
-  
-  
-  
-* Double-check that the modem you have is actually supported by  
-the module you have. See "Which Linmodem Hardware Is Supported?" above.  
-*  
-  
-* Try to determine at which stage of the installation process  
-things break down. Check the man pages on the commands used in that  
-stage and see if you can determine the source of the problem.  
-*  
-  
-  
-  
-If all seems lost, please see the section "Troubleshooting", below , and consider sending  
-a message with the complete information described there to the  
-mailing list at  
-Linmodems.org.  
-  
-  
-  
-  
-!!7.9 Who wrote the driver for my winmodem, and how do I contact him/her?  
-  
-  
-  
-If a contact address is not given above, you can in general assume  
-that it was probably somebody on contract to the manufacturer, who probably  
-does not have the  
-authority the update/release/change the source code, and who probably doesn't  
-have time to reply to your email in any case. See, for example,  
-http://lwn.net/1999/1209/a/lucent.html  
-  
-  
-----  
-  
-!!8. Appendix  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!8.1 PCTel Module Parameters: Country Code  
-  
-  
-  
-The following is quoted from one of the PCTel readme files.  
-Thus you can choose the appropriate country code by inserting  
-the module with a parameter as:  
-  
-insmod pctel.o country_code=7  
-  
-(the "7" being replaced by your country code from the list below).  
-Thanks to Jonathan Emery for pointing out the correct syntax.  
-  
-  
-  
-  
-Set and report country code.  
-This driver takes a module parameter to setup the correct country code  
-setting for various country's telephone networks and it also can report  
-back the country code been set.  
-Here are the two versions for country_code selection and reporting:  
-VERSION #1:  
-To set country code:  
-"country_sel_rep sel 7" will sets the country code to 7.  
-To query the driver for the currently set country code:  
-"country_sel_rep rep" returns the current country code as the exit code.  
-VERSION #2:  
-To set country code:  
-"country_sel 7" to set the country code to 7.  
-To query the driver for the currently set country code:  
-"country_rep" return the current country code as the exit code.  
-country_code country_name  
-1 USA  
-2 FRANCE  
-3 GERMANY  
-4 ITALY  
-5 SWEDEN  
-6 UK  
-7 JAPAN  
-8 AUSTRALIA  
-9 SPAIN  
-10 TAIWAN  
-11 SINGAPORE  
-12 KOREA  
-13 SWITZERLAND  
-14 NORWAY  
-15 NETHERLANDS  
-16 BELGIUM  
-17 CANADA  
-18 IRELAND  
-19 PORTUGAL  
-20 POLAND  
-21 HUNGARY  
-22 FINLAND  
-23 DENMARK  
-24 AUSTRIA  
-25 S.AFRICA  
-26 CTR21 COUNTRIES  
-27 CHINA  
-28 MALAYSIA  
-29 LUXUMBURG  
-30 GREECE  
-31 ICELAND  
-32 NEW ZEALAND  
-33 BRAZIL  
-  
-  
-  
-  
-----  
+Describe [HowToLinmodemHOWTO ] here.