#!/bin/bash # ONLY use scanModem downloaded as:http://linmodems.technion.ac.il/packages/scanModem.gz UPDATE="2003 October 29" echo echo UPDATE=$UPDATE # BN can be inherited from ./build_module or Installers or checkout # if BN doesn't exist if test -z "$BN" ; then BN=`basename $0` fi # Short term files have names tmpfile.1 2 3 etc. if test -z "$TMPM" ; then mkdir -p /tmp/modem TMPM=/tmp/modem/tmpfile fi echo > $TMPM # conditional when scanmodem is used in ltmodem.deb or .rpm installation # with stops disabled if [ "$BN" != "scanModem" ] ; then FAST=yes else echo " $0 should ONLY be run within a Linux/UNIX partition." echo " If within a MicroSoft/DOS partition, abort with Ctrl-C now !!!" echo " Copy scanModem.gz to your Linux partition and restart." echo read -p "To continue: Enter" fi if [ "`pwd`" = "/" ] ; then cat< $RECORD echo > $RECORD.2 else echo ------------ beginning SCANMODEM section ------ >>$RECORD fi if test -z "$FAST" ; then # this information is NOT needed during ltmodem driver installation cat< $RECORD.2 Do NOT send this common information to discuss@linmodems.org ============== Several sections are included in this file: Rational of scanModem service; summary of modem Support under Linux description of the SIL_ID test some output from scanModem specific to your System an explanation of the GCC 2.95 compiler warning ethernet Interference with DNS (domain name service) COMPILING DRIVERS. Please Linux Newbies read carefully!! Followup Actions, to get online, with dialout examples. RATIONAL This $0 service is sadly necessary because of the pre-compiled format (binary, Closed Source) of some modem supporting code. Intellectual property is protected within the binary component. But this prevents compatibility assessments/debugging against Linux Open Source code. Skipping many details, the consequence is that some Linux distributions do not deliver Closed Source code, or tools adequate to fully identify the modem's chipset. This script tries to close this information gap. USB modems will not be detected UNTIL proper USB support is installed. See http://www.linux-usb.org/USB-guide/x332.html ftp://ftp.smlink.com/linux/unsupported/ may provide support for SmartUSB56 (ST7554) based modems with vendor/product usb ids: 0483:7554 It is the CHIPSET, and Not the modem BrandName which is informative for Linux support. For modems not recognized by $0, chipset information may be obtained under Microsoft Windows through: 1) Start > Settings > Control Panel > Modem Start > Settings > Control Panel > System > Devices > Modem Do the modem query test, if available, looking for manufacturer chipset, information in the output. Try to identify the modem setup file, with name perhaps MODEM.INF 2) Open a COMM console, and send ATI commands to the modem (ATI, ATI1, ATI2, etc) which may elicit chipset and driver information. SUPPORT SUMMARY - as of $UPDATE ------------------------------------- Controller chipsets are used in the most expensive modems and are supported. They utilize the same driver, serial.o , and most commonly the ports /dev/ttyS0 thru 3. Such chipsets are produced by 3Com, AgereSystems (the Venus chipset), Topic Semiconductor Corp., and others. But the same companies may produce unsupported WinModems. Do not depend on the Brand Name. Look for an explicit statement of Linux support AVOID the following modem chipsets: ESS - no formal support since 2.2.2 kernels Motorola - no formal support since 2.4.5 kernels 3Com/US Robotics winmodems - never supported under Linux SmartLink - newer chipsets are supported: http://www.smlink.com ftp://ftp.smlink.com/linux/unsupported/ Moreover, the slmodem-2.9.n drivers will support Most other modems that serve under AC'97/MC97 controllers, which send much of the work load to companion digital audio cards. Conexant - all modems supported with drivers at: http://www.linuxant.com Testcode for slow 14,400 mH support is free, BUT there is a one time charge for the full speed support. Intel Inc. - http://developer.intel.com/design/modems/support/drivers.htm For early releases check at: http://linmodems.technion.ac.il/resources.html The HaM modem is supported, but code is no longer updated and will likely fail under emerging 2.6 kernels. The 536ep modem is actively supported. The 537 AC'97 Link modem subSystem will be supported by Intel soon, but the SmartLink slmodem-2.9.n drivers are effective for now. Lucent/Agere The Venus chipset modem uses the serial.o driver and is thus supported. Modems with digital signal processing (DSP) chipsets are supported: http:/ltmodem.heby.de AC'97/MC97 soft modem support is enroute to release, but SmartLink slmodem-2.9.n drivers are effective for now. Coding of support for has Not yet begun PCI soft modems with PCI_IDs 11c1:048? and probably will first be available within 2004. PCTel modem business has been sold to Conexant Driver compiler resources are at: http://pctelcompdb.sourceforge.net/ However, the pre-compiled binary component is yet to be assembled with the gcc 3.nn used in newer Linux releases, so forced (-f) insertions may be necessary: insmod -f pctel Some/all? of the HSP soft modems are supported by the SmartLink slmdm-2.7.10 or slmodem-2.9.n drivers. Broadcom modems in Dell laptops and PCs - can be made to function under 2.4 kernels, but code hasn't been updated recently. --------- end chipset section ---------------------- SUPPORT under the emerging 2.6.nn kernels. The mode expensive Controller chipset modems are functioning. SmartLink slmodem-2.9.n drivers are functions The Lucent/Agere digital signal processing (DSP) chipsets do have an informal hack extending service into 2.6.0-test7. Intel, Agere Systems and Linuxant (for Conexant chipsets) are firmly expected to continue support into 2.6.nn. ------------------------------------ Preparing winmodem drivers will generally require compiling. If you are not familar with this process DEFINITELY read carefully the section below "COMPILING DRIVERS, for Linux Newbies" Silicon chipset (SIL) analysis information ------------------------------------------- Skip this section if your modem's chipset was adequately identified in $RECORD During bootup, kernel diagnostics on the System are stored for later display by: dmesg This information may include a SIL_id of modems under AC'97/MC97 Controllers, depending upon the type of briding of the modem card to the motherboard. The scanModem script processes dmesg output to capture AC'97 modem information, parses it into a SIL_id if possible, and then displays of modem chipset information. Guidance to sources of modem supporting software may thus be obtained. The transfer of the AC97 information to the dmesg buffer requires that modules supporting both the digital audio card and the ac97_codec be loaded during bootup: modprobe ac97_codec modprobe audio_drivers (such as i810_audio) This can be checked after bootup with: lsmod This script can also be used by entering a test block with nomenclature: $0 SILtest with SILtest a text file in This Folder containing a section of a dmesg output or /var/log/messages like: i810: Intel ICH 82801AA found at IO 0xdc00 and 0xd800, IRQ 11 i810_audio: Audio Controller supports 2 channels. ac97_codec: AC97 Audio codec, id: 0x4144:0x5340 (Analog Devices AD1881) i810_audio: AC'97 codec 0 Unable to map surround DAC's (or DAC's not present), total channels = 2 ac97_codec: AC97 Modem codec, id: 0x5349:0x4c22 (Silicon Laboratory Si3036) which does include a line beginning with: ac97_codec: AC97 Modem codec, id: ---------- End SIL_id section --------------- END fi # FAST # Defining other needed variables SYS=`uname -r` MAJOR=`echo $SYS | cut -d. -f1-2` KVER=`echo $SYS | cut -d- -f1` KEXT=`echo $SYS | cut -d- -f2-` # needed for rpm package name parsing PVER="$KVER"_"$KEXT" # needed for deb package name parsing FILTER="$SYS"_ CPU=`uname -m` # Define version, currently 8.26a9, within ltmodem CVS maintained by Mark Spieth LT_VERSION=8.26a9 GCC=`gcc -dumpversion` GCCmajor=`echo $GCC | cut -d. -f1` if test -z "$DISTR" ; then # Acquire distribution data DISTRO_FILES="redhat-release SuSE-release mandrake-release conectiva-release \ bluepoint-release slackware-version gentoo-release debian_version" # redhat MUST proceed mandrake in this listing as Mandrake has an /etc/redhat-release for i in $DISTRO_FILES do if [ -a /etc/$i ]; then DISTRO=$i # generating short name DISTR=`ls /etc/$i | cut -d/ -f3 | cut -d"-" -f1` if [ "$DISTR" = "debian_version" ] ; then DISTR=debian fi DVERSION=`cat /etc/$i` fi done if [ -z $DISTRO ] ; then DISTR="Not_identified" fi fi # DISTR if [ "$BN" = "scanModem" ] ; then cat<>$RECORD The most recent update of scanModem accessed at http://linmodems.technion.ac.il/packages/scanModem.gz should ALWAYS be used before requesting help from discuss@linmodem.org, URLs to cogent advice are regularly entered and updated, and your problem may be solved therein. If further help is needed, send a description of your problem to: discuss@linmodems.org with this ModemData.txt Attached, using the following in the email Subject Line: $BN, $DISTR kernel $SYS -------------- System information ------------------------ $DISTR $DVERSION on system: `uname -a`" GCC=$GCC UPDATE=$UPDATE END fi # Begin soft modem SIL detection echo audio > $TMPM echo ac97 >> $TMPM # for grep filter dmesg | grep -f $TMPM > $TMPM.3 # first check for audio_codec, needed later if grep "ac97_codec" $TMPM.3 > /dev/null ; then ac97_codec=1 fi if [ "$1" = "SILtest" ] ; then cp SILtest $TMPM.3 fi codec_id=`cat $TMPM.3 | sed -n -e '/^ac97_codec: AC97 Modem codec, id: /s/^ac97_codec: AC97 Modem codec, id: \(.*\)(.*)$/\1/p'` # codec_id=0x5349:0x4c22 # for testing if test -n "$codec_id" ; then for codec_id in $codec_id ; do echo $codec_id | grep -e '^SIL[0-9].*$' > /dev/null if [ $? -ne 0 ] ; then # < linux-2.4.20 codec_cid=`echo $codec_id | sed -n -e '/0x5349:0x4c/s/^0x5349:0x4c\(2[1-7]\)$/\1/p'` # echo codec_cid=$codec_cid if [ -n "$codec_cid" ] ; then codec_id=`printf "SIL%d" 0x$codec_cid` SIL_id=$codec_id # echo SIL_id=$SIL_id else SIL_id=$codec_id not processed fi else SIL_id=$codec_id fi if test -f $TMPM.3 ; then cat<>$RECORD --- processed from dmesg ----- `cat $TMPM.3` ------------------------------ SIL_id=$SIL_id END fi # TMPM.3 done # end of for cat<>$RECORD Soft modems which are subSystems under Controllers with primary PCI_ID captured below have SIL_id providing guidance to supporting software. cid SIL_id Manufacturer/Product =================================== 26 SIL38 Motorola - try SmartLink. Please report if successful! 22 SIL34 SmartLink 21 SIL33 PCTel http://pctelcompdb.sourceforge.net/ or SmartLink drivers 27 SIL39 Agere Systems subsidiary of Lucent Technologies Formal support expected in 2003, but some Linux service has been reported by Smartlink drivers. ?? CXT29 (other CTX?? too) Conexant http://www.linuxant.com ?? SIL?? Intel Others?? Access SmartLink drivers at ftp://ftp.smlink.com/linux/unsupported/ END fi # codec_id if test -z "$SIL_id" ; then echo " An AC'97 modem codec was not detected">>$RECORD echo >>$RECORD else AMR=yes fi # SIL_id LSPCI_PATH="/bin /usr/bin /sbin" for i in $LSPCI_PATH do if test -x $i/lspci then LSPCI=$i/lspci fi done if test -z $LSPCI then echo "+----------------------------------------------+" echo "| WARNING: lspci not found - exiting |" echo "| Please install the package: pciutils |" echo "+----------------------------------------------+" echo exit 1 echo else if ! $LSPCI &>/dev/null then echo "WARNING: $LSPCI returned error - not checking for modem" echo echo Exiting echo exit 1 fi fi echo Path to lspci is: $LSPCI >>$RECORD # ending lspci test section # Now displaying PCI devices. echo --------- lspci scan ---------------- >>$RECORD echo PCI_bus>>$RECORD $LSPCI >>$RECORD echo ------------------------------------- >>$RECORD # now acquiring PCI bus slots. PCIBUS=`$LSPCI | cut -d' ' -f1` # echo $PCIBUS # Necessary because ALI motherboards may have a PCI bus like: 00:0f.1 # and "f" is declared an improper usage: # lspci: -f: Invalid slot number FAILED= for i in $PCIBUS do lspci -s $i &> $TMPM.3 if grep Failed $TMPM.3>/dev/null ; then FAILED=1 fi done # FAILED=1 # for testing if test -n "$FAILED" ; then echo Class > filter echo Subsystem >> filter echo " -- Alternate test because of f in PCI bus --">>$RECORD echo "------- Subsystem listing-------">>$RECORD lspci -v | grep -f filter >>$RECORD echo "------- PCI database Subsystem listing-------">>$RECORD lspci -nv | grep -f filter >>$RECORD echo "------- IRQ=0 screen -------">>$RECORD lspci -v | grep "Flags:" | grep "IRQ 0" >>$RECORD echo "------- screens over------">>$RECORD else # modem related keywords for search of lspci outputs echo ommunication > $TMPM echo Modem >> $TMPM echo modem >> $TMPM echo erial controller >> $TMPM for i in $PCIBUS do if $LSPCI -s $i | grep -v "FIR port" | grep -v "Ethernet" | grep -f $TMPM >/dev/null || $LSPCI -s $i -n | grep "Class 07" >/dev/null ; then # some # commented out lines are occassionally restored for development tests # echo $i TESTS=$i" $TESTS" fi done if test -z "$TESTS" ; then # if modem candidates are not recognized cat<>$RECORD A modem was not detected among the above devices in PCI bridges This indicates that the modem, if present has a non-standard or ISA bridge. Please follow the directions in $RECORD.2 for identifying the modem properties when booting under Microsoft Windows. Also access any documentation sources on yourchipset. Guidance can only be provided AFTER the chipset and/or its drivers have been identified. END else # if modem candidates are recognized # for AMR modem comments later cat< $TMPM.1 ==================== AC'97/MC97 summary ========================== Any of the Controllers in the left most column could support a variety of subSystem soft modems. Hence the current ambiguity in possible support by drivers under Linux VendorID:DeviceID == PCI_ID Controller type bus PCI_ID subSystemID AC97 MC97 try drivers from ---------- ----------- ---------------- ---------------- Intel: 8086:2416 82801AA (ICH) + p c 8086:2426 82801AB (ICH0) + 8086:2446 82801BA (ICH2) + p c 8086:2486 ICH3 + p c 8086:24c6 INTEL ICH4 + 8086:1040 S1724 8086:7196 ???? + 1543:3052 1543:3000 SI3052 1039:7013 SIS 630 + p 1039:7018 SIS 960 + 1055:9178 Standard Microsystems + 10de:01c1 Nvidia Corp + 1106:3068 VIA + p c 1131:3400 Philips Semiconductors + 1022:7446 AMD 10a5:3052 Racal Interlan + 10b9:5450 ALI 5450 10b9:5451 ALI 5451 10b9:5453 ALI p c 10b9:5457 ALI 5457 + p c 10b9:545a ALI + e159:0001 TigerJet 320 e159:0001 0359:0003 TJ320 v3.1 e159:0001 8086:0003 TJ320 v2.0 PCI cards with SmartLink support at least from slmodem-2.9.n 10b9:5459 ALI 5459 SmartPCI561 ++ 10ec:8197 - SmartLAN56 (RealTek ether/modem combo) ++ 1131:3400 - SmartPCI56 (Philips UCB1500) ++ 163c:5459, 10a5:5459 - kinds of SmartPCI561 ++ -------------------------------------------------------- p http://pctelcompdb.sourceforge.net/ c Conexant - http://www.linuxant.com + SmartLink HAMR5600 compatible AMR/CNR/MDC soft modems ++ SmartLink PCI bus modems For drivers: ftp://ftp.smlink.com/linux/unsupported/ , Try the most recent slmodem-2.9.n ====================================================================== END cat $TMPM.1 >> $RECORD.2 ########### echo > $TMPM # echo TESTS=$TESTS for x in $TESTS do # Gathering info on PCI device $x CNTRL=`$LSPCI -s $x | cut -d' ' -f2-` PCIDEV=`$LSPCI -s $x -n | cut -d' ' -f4` # echo PCIDEV=$PCIDEV Vendor=`echo $PCIDEV | cut -d: -f1` Device=`echo $PCIDEV | cut -d: -f2` # Vendor=11c1 # Device=048c echo Reading more detail for the Device at: > $TMPM echo PCI bus >> $TMPM echo ------- >> $TMPM $LSPCI -s $x -n >> $TMPM SUBS=`$LSPCI -s $x -nv | grep Subsystem` SUBSYS=`$LSPCI -s $x -nv | grep Subsystem | cut -d' ' -f2` SUBven=`echo $SUBSYS | cut -d: -f1` # echo SUBven=$SUBven SUB_NOT=`$LSPCI -s $x -v | grep Subsystem | grep nkown` echo " Subsystem $SUBSYS" >> $TMPM $LSPCI -s $x -v >> $TMPM if grep "$PCIDEV" $TMPM >/dev/null ; then cat<> $TMPM ------------------------------------------------------- $PCIDEV PCI_ID of the PCI bus with vendor: $Vendor $SUBSYS PCI_ID of Subsystem with vendor: $SUBven ------------------------------------------------------- are key Sought Descriptions of your modem firmware. Have them ready when visiting URLs with service software!! END cat $TMPM >>$RECORD fi if $LSPCI -s $x -v | grep CM8738 >/dev/null ; then CM8738=1 fi if $LSPCI -s $x -v | grep "Intel 537" $RECORD >/dev/null ; then # because Intel 537 may have PCI_IDs assigned by modem assemblers, not Intel INTEL537=1 fi if $LSPCI -s $x -v | grep "Intel 536" $RECORD >/dev/null ; then # because Intel 536 may have PCI_IDs assigned by modem assemblers, not Intel INTEL536ep=1 fi if $LSPCI -s $x -v | grep "Subsystem: Conexant" $RECORD >/dev/null ; then # because the PCI_IDs may be assigned by modem assemblers, not Conexant CNX=1 elif [ "$PCIDEV" = "1024:1024" ] || [ "$PCIDEV" = "148d:1003" ] || [ "$PCIDEV" = "158b:0015" ] || [ "$PCIDEV" = "141a:1035" ] ; then CNX=1 else echo "not a Conexant modem" >/dev/null fi if $LSPCI -s $x -v | grep "Smart Link HAMR5600" $RECORD >/dev/null ; then # because the PCI_IDs may be assigned by modem assemblers, not SmartLink SMART=1 fi if $LSPCI | grep M5451 >/dev/null ; then echo " A modem not supported under Linux may be within" >>$RECORD $LSPCI | grep M5451 >>$RECORD fi IRQ=`$LSPCI -s $x -vv | grep Interrupt | cut -d' ' -f7` if [ "$IRQ" = "0" ] ; then echo " `$LSPCI -s $x -vv | grep Interrupt`" >>$RECORD cat<>$RECORD The interrupt assignment: IRQ $IRQ predicts that modem function will fail. Possible corrections are: 1) to access the the boot up BIOS change to a non-PNP mode. Instructions for accessing BIOS are at: http://linmodems.technion.ac.il/resources.html within: Additional Resourcces. 2) Within some BIOS setups, IRQ assignments can be changed. 3) On non-laptop systems moving the modem card to another slot has helped. 4) Sometimes upgrading the kernel restores a non 0 IRQ . END fi ## Lucent/Agere/Xircom DSP modem section if [ "$Vendor" = "11c1" ] || [ "$Vendor" = "115d" ] ; then DEVICES="0x11c1:0x0440-0x045c" DEVICES=$DEVICES" 0x115d:0x0000-0x000f" DEVICES=$DEVICES" 0x115d:0x0440-0x045c" DEVICES=$DEVICES" 0x115d:0x0010-0x03ff" DEVVEN=$(( 0x`echo $PCIDEV | cut -d':' -f1` + 0 )) DEVNUM=$(( 0x`echo $PCIDEV | cut -d':' -f2` + 0 )) for DEV in $DEVICES do VENDOR=$(( `echo $DEV | cut -d':' -f1` + 0 )) DEVMIN=$(( `echo $DEV | cut -d':' -f2 | cut -d'-' -f1` + 0 )) DEVMAX=$(( `echo $DEV | cut -d':' -f2 | cut -d'-' -f2` + 0 )) FOUND= if test $DEVVEN -eq $VENDOR && test $DEVNUM -ge $DEVMIN && test $DEVNUM -le $DEVMAX then FOUND="yes" PCI_ID="$PCIDEV" MODEM_VENDOR=0x`echo $PCIDEV | cut -d':' -f1` MODEM_DEVICE=0x`echo $PCIDEV | cut -d':' -f2` if [ "$MODEM_VENDOR" = "0x11c1" ] ; then VENDED=LUCENT else VENDED=XIRCOM fi if test -n "$PCI_ID" ; then DSP=1 echo DSP=1 >>$RECORD cat< $TMPM The modem has a Lucent/Agere chipset for digital signal processing with primary PCI_ID: $PCI_ID END cat $TMPM cat $TMPM >>$RECORD cat $TMPM >>$RECORD.2 cat<>$RECORD.2 VENDOR $MODEM_VENDOR DEVICE $MODEM_DEVICE ------------------------------------------ LUCENT 0x11c1 0x0440-0x045c XIRCOM 0x115d 0x0000-0x000F XIRCOM 0x115d 0x0440-0x045c XIRCOM 0x115d 0x0010-0x03ff ------------------------------------------- Drivers and their compiler kits are available at: http://ltmodem.heby.de/ EOF else cat< $TMPM While ISA and PCMCIA card modems would not be detected, if the modem is a PCI type it will not be served by these drivers for Lucent/Agere digital signal processor modems. END PCI_ID= cat $TMPM cat $TMPM >>$RECORD fi fi done fi # end Lucent DSP section # for testing input if test -n "$TESTvend" ; then Vendor=$TESTvend fi #for AMR modem section testing # PCIDEV=10a5:3052 # PCIDEV=e159:0001 if grep $PCIDEV $TMPM.1 >/dev/null ; then AMR=1 echo " The modem Subsystem operates under an AC'97 or MC97 controller">>$RECORD grep $PCIDEV $TMPM.1>>$RECORD if grep $PCIDEV $TMPM.1 | grep "+ " >/dev/null ; then cat<>$RECORD Many soft modems under this controller are supported by the SmartLink slmdm-2.7.10 or slmodem-2.9.n drivers, even though an AC'97 modem_codec may not be displayed. END if test -n $SMART ; then SMART=1 else smart=1 fi else echo " SmartLink drivers are not compatible with this $PCIDEV controller.">>$RECORD fi fi if test -n "$AMR" ; then cat<>$RECORD.2 Soft modems under AC'97 or MC97 Controllers ============================= If a modem_codec SIL_id was not output earlier, please reboot Linux to freshen the bootup dmesg buffer and then rerun scanModem, to acquire an expected SIL_id. However The roughly classified with AC'97 modems may be housed within an AMR connector, the MDC connector, IBM's CDC connector, or a mini PCI slot. SmartLink http://www.smlink.com has a readible documentation set on soft modem rational and technologies. Their common feature is that they utilize the services of a digital audio card through use of an ac97_codec. This greatly reduces the cost of the modem hardware and specialization to the diverse telephone line standards around the world. Hoever the primary PCI_ID $PCIDEV identifies Only the Controller of the soft modem Subsystem $SUBSYS. This commonly FAILS to designate the chipset!! Queries under MS windows may be informative, by the following routes: Open a COMM console and send ATI commands to the modem, which may provide identifying information: ATI, ATI1, ATI2 etc. For a good report see: http://phep2.technion.ac.il/linmodems/archive/msg05099.html Get whatever detail information is available through: Start > Settings > Control Panel > Modem There may be a TestModem option available. Start > Settings > Control Panel > System > Devices > Modem Try to identify the modem setup file, with name perhaps MODEM.INF Information therein including driver names may help to identify the chipset. END fi # finish AMR modem section # AMR=1 # Following are Alternative information blocks for various chipsets PRIMARY= if test -n "$AMR" ; then cat<>$RECORD First accessing chipset provider and modem assembler information for the modem SubSystem under the AC'97 or MC97 Controller. END # doing the modem subSystem first for AMR modems. VEND="$SUBven $Vendor" else VEND="$Vendor $SUBven" fi if [ "$Vendor" = "$SUBven" ] ; then # no use repeating if identical VEND=$Vendor fi # for testing # Device=1746 # VEND=1043 for v in $VEND do if test -z "$PRIMARY" ; then PRIMARY=1 fi # if test -n "$PRIMARY" ; then # to limit outputs below from SUBven echo " === Checking $v through chipset providers and modem assemblers ====" >>$RECORD if [ "$v" = "17c0" ] ; then cat<>$RECORD Vendor $v is the Wistron Corp, Inc., http://www.wistron.com.tw/ a manufacturer of PC OEM subsystems including soft modems under AC'97 Controllers used in some Acer laptops. More chupset information may be gained by testing the modem under MS Windows: Start - Settings - Control Panel - Modem END if [ "$Device" = "1069" ] ; then echo " Device=$Device has an Agere Systems soft modem for which support is soon expected.">>$RECORD fi fi if [ "$v" = "13f6" ] ; then cat<>$RECORD Vendor $v is C-Media Electronics, which produced modems with device IDs: 0100 CMI8338/PCI C3DX PCI Audio Chip 0101 CMI8338-031 PCI Audio Device 0111 CMI8738/PCI C3DX PCI Audio Chip 0112 CMI-8378B/PCI-6CH PCI Audio Chip 0211 HSP56 Audiomodem Riser END fi if [ "$v" = "10cf" ] ; then cat<>$RECORD Vendor $v is Citicorp TTI, Inc. Its AMR modem Subsystem 10cf:1130 is an Agere chipset soft modem. The Agere AMR drivers have not been released as of this $UPDATE, but in checkout testing. The Smartlink slmdm-2.7.10 drivers did not support support the Subsystem 10cf:1130 AMR modem, through a dialout. For details see: http://linmodems.technion.ac.il/archive-third/msg00831.html But the slmodem-2.9.n drivers should be tested. END fi if [ "$v" = "144f" ] ; then cat<>$RECORD Vendor $v is Askey Computer Corp. http://www.askey.com/ END fi if [ "$v" = "1043" ] ; then cat<>$RECORD Vendor $v is Asustek Computer, Inc., producing a modem SubSystem serving under AC'97 Controllers. END if [ "$Device" = "1746" ] ; then cat<>$RECORD For device=$Device support is in development by AgereSystems, with release possible within 2003. ATI3 - Agere SoftModem Version 2.1.22 ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27 END fi fi if [ "$v" = "15f1" ] ; then cat<>$RECORD Vendors $v is TOPIC SEMICONDUCTOR Corp. 151f:0000 is a controller chipset modem using the Open Source serial.o driver. See http://www.math.sunysb.edu/~comech/tools/PCImodems.html END fi if [ "$v" = "14e4" ] || [ "$v" = "feda" ] ; then cat<>$RECORD Vendors 14e4 is BroadCom, producing modems for Dell laptops, desktops and Others? 14e4:4212 BCM V.90 56k modem http://support.ap.dell.com/ap/en/filelib/download/index.asp?fileid=R47114 However the code has not been updated for some time. A fix by Giacomo Comes must be used for current 2.4 kernels: http://linmodems.technion.ac.il/archive-third/msg01652.html END fi if [ "$v" = "104d" ]; then cat<>$RECORD Vendor $v is Sony, http://www.sony.com , but without Linux info. A Sony PCV-RX407 has a SIL39 modem_codec id, implying an Agere Soft modem: PCI_ID 1039:7013 ALI 630 Controller, SubSys 104d:8129 the soft modem. http://phep2.technion.ac.il/linmodems/archive-third/msg00120.html END fi if [ "$v" = "104d" ] && test -n "$AMR" && test -n "$smart" ; then cat<>$RECORD Pending release of Agere support, try the slmodem-2.9.n drivers ftp://ftp.smlink.com/linux/unsupported/ with a report at: END fi if [ "$v" = "oe11" ] ; then cat<>$RECORD Vendor $v is Compaq, now merged with Hewlett Packard END fi if [ "$v" = "1039" ] ; then echo " Vendor $v is SiS, Silicon Integrated System.">>$RECORD if test -n "$AMR" -a -n "$smart" ; then cat<>$RECORD Some of SIS modems under AC'97/MC97 Controllers are served by the SmartLink slmodem-2.9.n drivers. END fi fi if [ "$v" = "16be" ] ; then cat<>$RECORD Vendor $v is Creatrix , 16be:1040 is an Intel 536ep chipset Data Fax Modem. These messages may be seen upon driver loading: depmod****Unable to resolve symbol in 536ep.o depmod****Unable to resolve symbol in 536epcore.o but just reflect a harmless inter-dependency between the modules. END INTEL=1 fi if [ "$v" = "1179" ] ; then echo >>$RECORD echo " Vendor $v is Toshiba, using some motherboards with soft modems.">>$RECORD if test -n "$AMR" -a -n "$smart" ; then cat<>$RECORD Below are outputs from ATI commands under MS Windows for Subsystem: 1179:0001 ATI3 TOSHIBA V.90 Data+Fax Software Modem Version 3.1.89 ATI5 3.1.89, AMR Intel MB, AC97 ID:SIL REV:0x27, 19 Support may be achieved with the SmartLink slmodem-2.9.n drivers. See success report at http://phep2.technion.ac.il/linmodems/archive-third/msg00120.html END else cat<>$RECORD The modem subSystem 1179:0001 has an AgereSystems soft modem for which support is being developed. However, there is not a projected release date. END fi fi if [ "$v" = "1014" ] ; then cat<>$RECORD Vendor=1014 is IBM. END if test -n "$AMR" ; then cat<>$RECORD A Subsystem PCI_ID 1014:0227 soft modem (possible from Agere, Inc.) is in some/all? ThinkPad laptops: A30, A30p 31, A31p(*1), T23,T30 (*1)(*3), X22, X23, X24,X30(*1)(*2) While awaiting formal Agere support try the slmodem-2.9.n driver. A success report is: http://phep2.technion.ac.il/linmodems/archive-third/msg00120.html END fi fi #IBM if [ "$v" = "125d" ] ; then cat<>$RECORD Vendor=$VEND corresponds to ESS Technologies, making devices: :0000 ESS336H PCI Fax Modem (early model) :1968 ES1968 Maestro-2 PCI audio accelerator :1969 ES1938/41/46 Solo-1 PCI AudioDrive family :199B ES1938 Maestro-3.COMM PCI Voice+Fax Modem :2808 ES336H PCI Fax Modem (later model) :2898 ES2898S TelDrive ES56T-PI family V.90 PCI modem There has been no formal support for Linux since kernels 2.2.2 But see some informal hacks at: http://andrew.cait.org/ess/ http://sidlo.penguin.cz/ES2838/index_en.html http://phep2.technion.ac.il/linmodems/archive/msg04424.html These are of fading utility as the Linux kernel and hardware evolves. END fi if [ "$v" = "1131" ] ; then cat<>$RECORD Vendor=$v is Philips Semiconductors, producing Controllers for soft modems END fi if [ "$v" = "14fe" ] ; then cat<>$RECORD Vendor=$v is ARCHTEK TELECOM Corp, http://www.archtek.com/ incorporating chipsets from http://www.smlink.com in modem assemblies. Uses other chipsets too? END fi if [ "$v" = "1057" ] || [ "$v" = "11d4" ] ; then cat<>$RECORD Vendor=$v corresponds to Motorola with service through Analog Devices Inc. There was support for Linux the 2.4.5 kernels, but not subsequently. For Linux support start at: http://www.sm56.tk/ For history see: http://phep2.technion.ac.il/linmodems/archive/msg05016.html http://phep2.technion.ac.il/linmodems/archive/msg05030.html http://www.angelfire.com/linux/sm56/ http://linmodems.technion.ac.il/Motorola.html http://www.sm56linux.hpg.com.br http://phep2.technion.ac.il/linmodems/archive/msg02408.html The well intended hacks at http://www.sm56.tk/ will probably fail with emergence of 2.6.nn kernels. Better plan on getting a better supported modem!! See the modem support summary at the start of $RECORD.2 END fi if [ "$v" = "10b7" ] || [ "$v" = "12b9" ] ; then cat<>$RECORD 10b7 is 3COM :1006 0038TA <- AC101 - TF Mini-PCI 56K V.90 :1007 3C556 V.90 Mini-PCI 12b9 is US Robotics. acquired by 3COM :0062 erk41926a-0.6 usr 56k internal modem ;1006 3cp803598 Voice WinModem no Linux support :1007 ERL3263A-0 DF GWPCI PC99 WinModem no Linux support :1008 3cp803598 is Supported by the standard: serial.o Though the following carry USR labels, they may be supported by Conexant drivers: http://www.linuxant.com 14f1:2F12 (3COM/USR model 3094-3095) 14f1:2F13 (USR OEM) 14f1:2f14 3COM/USR END fi if [ "$v" = "10b9" ] ; then cat<>$RECORD Vendors $v is Acer Labs, producing ASUS highly integrated motherboards and Ali components. The tight integration unfortunately ofter blocks identification of the modem chipset. Desired information may be gained by using a COMM console under MS Windows, and using ATI commands to elicit chipset and driver information. Among the AMR modems, there are the following reports/information on Linux support: Devices 5450 and 5451 have Agere Systems soft modem chipsets which are not yet supported. Devices 5457 and 5459 have Agere Systems soft modem chipsets. supported by SmartLink slmodem-2.9.n driver. END if [ "$Device" = "5457" ] || [ "$Device" = "5459" ] ; then smart=1 fi fi # PCTEL section if [ "$v" = "134d" ] || [ "$v" = "134c" ] || [ -n "$CM8738" ] ; then smart=1 if test -n "$CM8738" ; then echo " CM8738 modem chipsets may be supported by PCTel drivers.">>$RECORD fi cat<>$RECORD Vendor=134d is PCTEL and Vendor=134c is Chori Joho System Co. Ltd, which market idenitcal devices including with deviceIDs: 7890 PCT789T-C1 HSP MicroModem 56 7891 PCT 789T HSP MicroModem 56 7892 PCT 789T-A HSP MicroModem 56 7893 S911 K017 HSP MicroModem 56 7894 FT13 HSP MicroModem 56 7895 PCT789T-C1 HSP MicroModem 56 7896 pct789t-c1 HSP MicroModem 56 7897 97860963 HSP MicroModem 56 9714 PCT 288-1A PCTEL D800 pct388p-a pctel 56k modem check for support at: http://pctelcompdb.sourceforge.net/ and read the PCTel minHOWTO: http://www.peacefulaction.org/sayamindu/docs.php A device node is made during driver installation: mknod /dev/ttyS15 c 62 79 After properly configuring your kernel sources (see $RECORD.2), Giacomo Comes supplies a neat compiling installation script at: http://linmodems.technion.ac.il/archive-third/msg01539.html It compenstes for the nuisnace that the current PCTEL pre-compiled binary component was compiled with gcc 2.95 But most recent Linux releases (RedHat 8.0 , Mandrake 9.0 , etc.) have been compiled with gcc 3.xx . A pctel.o insertion failure consequently results, with a warning message. However it can be bypassed by forcing (-f): insmod -f pctel followed by insmod ptserial Automation of modules insertion and ppp related modules can be achieved with the following block in /etc/modules.conf, or for Debian style systems in a new file /etc/modutils/pctel ################################################# # for pctel modem alias char-major-62 pctel install pctel /sbin/insmod "-f" "pctel" post-install pctel /sbin/insmod ptserial # country code for pctel modem options ptserial country_code=1 #USA ######## pctel end #### After the edit, inform the System with: # depmod -a or for Debian style systems with: # update-modules For some Systems, PCTel function requires disablement of apmd power monitoring function. IMPORTANT: there are some incorrect PCI_ids in hardware. Use the SIL_id information if any, it is NOT if agreement with the PCI_id information. See: http://phep2.technion.ac.il/linmodems/archive-third/msg00337.html System problems of various severity have been reported after modem usage. These may be alleviated by the following steps after a modem usage session. Log into a console as: # su - root # lsmod to display loaded modules. # modprobe -r ptserial # lsmod # modprobe -r Names_of_ppp_related_drivers # lsmod If such unloading does not solve problems, there is an alternative. Some of the Pctel HSP modems are well supported by the SmartLink slmodem-2.9.n drivers. But before testing them, remove from /etc/modules.conf: # for pctel modem alias char-major-62 pctel install pctel /sbin/insmod "-f" "pctel" post-install pctel /sbin/insmod ptserial # country code for pctel modem options ptserial country_code=1 #USA ######## pctel end #### END if [ "$Device" = "7897" ] ; then cat<>$RECORD For a case of a VIA686 motherboard PCTEL drivers compiled with hal=via686 did NOT provide effective drivers while the drivers were effective when compiled with hal=pct789 . END fi fi # End PCTEL section if [ "$v" = "127a" ] || [ "$v" = "14f1" ] || [ "$v" = "148d" ] || [ "$CNX" = "1" ] ; then cat<>$RECORD Vendors 127a and 14f1 are Conexant, successor to Vendor=148d Rockwell technology. Additional modems with the following PCI_IDs have Conexant HCF (Controller free) chipsets. 1024:1024 (Zenith Data Systems) 148D:1003 (DIGICOM Systems) 158B:0015 (Allied Data Technologies Tornado VFM56x-PRC) 141A:1035 (Apache Micro) Subsystem HSF Conexant soft modems serve under AC'97 or MC97 controllers. Download driver kits: http://www.linuxant.com/drivers As of September 2004, Linuxant is providing for free test drivers for low speed CONNECTs. There is a one time subscription fee for high speed support. Should a HCF driver installation fail to serve, then uninstall and instead try the HSF driver resource. Some PCI_ID mis-labeling has been reported with the HCF 127a:1025 most suspect. A post install suggestion for adjusting PCI latency is: http://phep2.technion.ac.il/linmodems/archive/msg05210.html END fi if [ "$v" = "8086" ] || [ "$v" = "1813" ] || test -n "$INTEL537" || test -n "$INTEL536ep" ; then INTEL=1 cat<>$RECORD Vendor=8086 is Intel, Inc. producing HaM and 536ep host controller free (HCF) modems, the 537 soft modem and AC'97 and MC97 controllers managing a varierty of non-Intel soft modem subSystems. These subSystems will in have PCI_IDs assigned by the modem assembler, not Intel. Download available drivers from: http://developer.intel.com/design/modems/support/drivers.htm Also check at: http://linmodems.technion.ac.il/resources.html for early releases and perhaps Already compiled drivers for some Linux distributions END fi # To help identify the modems with PCI_ID 8086:1040 , # see if [ "$PCIDEV" = "8086:1040" ] || test -n "$INTEL536ep" ; then cat<>$RECORD Some and perhaps all modems with: PCI_ID 8086:1040 subSystem 8086:1000 have the supported Intel 536ep chipset. Their drivers have a dependency on one other. with result that these messages may be seen upon driver loading: depmod****Unable to resolve symbol in 536ep.o depmod****Unable to resolve symbol in 536epcore.o but function is NOT affected. Bur when the message is any longer, the drivers probably have not been properly compiled. In which case carefully read COMPILING DRIVERS with ModemData.txt.2 END fi if test -n "$INTEL537" ; then smart=1 cat<>$RECORD The Intel 537 chipsets are sold to a variety of modem assemblers. Linux support from Intel is expected by the Fall of 2003. END fi if [ "$v" = "1813" ] ; then cat<>$RECORD Vendor=1813 Ambient Tech was acquired by Intel with its HaM (Host assisted Modem) chipsets. Intel-v92ham-453.tgz is the most recent update. It is also the last code release for this older chipset (relates Intel maintainer Dorian Araneda). Thus HaM chipset failures can be expected under the emerging 2.6.nn kernels But under the 2.4.nn kernels, all HaM chipsets are supported, with EXCEPTION of the odd PCI_ID 1813:4100 modems. For the explanation see message: http://linmodems.org/cgi-bin/ezmlm-cgi?1:mss:9448:200210:fbhcoigfcimgkjdedjad END fi # End Intel section if [ "$v" = "1013" ] ; then cat<>$RECORD There is NO SUPPORT the Vendor=1013 chipsets of CML, Cirrus Logic Modems. See message: http://linmodems.org/cgi-bin/ezmlm-cgi?1:mss:9448:200210:fbhcoigfcimgkjdedjad END fi if [ "$v" = "11c1" ] ; then cat<>$RECORD Vendor=$v corresponds to Lucent Technologies or subsidiary Agere Systems, Inc. Information is at: http://www.agere.com/support/client/modem_drivers.html but without any relevant to Linux. END if test -n "$AMR" -a -n "$smart" ; then cat<>$RECORD AC'97/MC97 link modems may evoke a modem_codec with SIL_id = 39. While awaiting formal support from Agere Systems, the SmartLink slmodem-2.9.n may serve. A success report is: http://phep2.technion.ac.il/linmodems/archive-third/msg00120.html END elif [ "$Device" = "0462" ] ; then cat<>$RECORD 56K.V90/ADSL Wildfire Modem with PCI_ID 11c1:0462 currently lacks support under Linux. END elif [ "$Device" = "048c" ] || [ "$Device" = "048e" ] ||[ "$Device" = "048f" ] ; then cat<>$RECORD Device=$Device has a soft modem chipset within a PCI slot. Support is eventually expected for the the following chipsets, but probably not within 2003. 048C has a "Levana" silicon line 048E has a Mercury transformer line interface and external Rx gain components, used in worldwide designs that support complex and real impedance. 048F , SV92P-T00 is like 048E, but using internal Rx gain. 048F is used in designs that support only real line impedance, typically for sale only in USA. A dialout terminates with "No Carrier" if usage of the current lt_modem.o lt_serial.o is attempted with this soft PCI modem types. END elif [ "$Device" = "0480" ] ; then echo " The Venus controller chipset 1673JV7 modems use the serial.o driver." >>$RECORD elif test -n "$DSP" ; then cat<>$RECORD Hacked support for 2.6.0-testN kernels is temporarily served from: http://linmodems.technion.ac.il/resources.html EOF # Setting up board.info for grepping MODEL_DATA cat< $TMPM.2 0x0440 -- Mars 2 - data/fax/voice 0x0441 -- Mars 2 - data/fax only 0x0442 -- Mars 2 - data/fax/tam only 0x0448 -- Mars 2 Global Board - data/fax/voice 0x0449 -- Mars 2 Global Board - data/fax only 0x044A -- Mars 2 Global Board - data/fax/tam only 0x0444 -- Apollo 2 data/fax only : Modem/LAN combo board Apollo behind an Intel 82559 0x0445 -- Apollo 2 Global Board data/fax only : Modem/LAN combo board Apollo behind an Intel 82559 0x0446 -- Apollo 2 data/fax/voice : Modem/LAN combo board Apollo behind an Intel 82559 0x0447 -- Apollo 2 Global Board data/fax/voice : Modem/LAN combo board Apollo behind an Intel 82559 0x044C -- Mars 3 Perseus data/fax only:North America and Global board 0x044E -- Mars 3 Mercury data fax only 0x0450 -- Mars 3 Mercury data fax Global board 0x0451 -- Mars 3 Mercury data/fax/voice 0x0452 -- Mars 3 Mercury data/fax/voice Global board 0x0455 -- Mars 3 Perseus data/fax/voice: North America and Global board 0x0458 -- Mars 3 Mercury data/fax/tam only. 0x0459 -- Mars 3 Mercury data/fax/tam only. Global board. 0x045A -- Mars 3 Perseus data/fax/tam only.: North America and Global board 0x045B -- Apollo 3 Perseus data/fax only : Modem/LAN combo board Apollo behind an Intel 82559 0x045C -- Apollo 3 Mercury data/fax only : Modem/LAN combo board Apollo behind an Intel 82559 0x045D -- Mars 3 Mercury data/fax/tam only. Global board for Cardbus modem product. 0x044C -- Mars 3.2 Mercury data fax only when no eeprom is present: North America DAA ############## END if grep $MODEM_DEVICE $TMPM.2 > /dev/null ; then grep $MODEM_DEVICE $TMPM.2 >>$RECORD fi if [ "$Device" = "0442" ] ; then echo "The device=$Device modems have an electro-optical coupling" >>$RECORD echo "which in some hardware is Not adequately supported by these drivers." >>$RECORD echo >>$RECORD fi else echo >>$RECORD fi fi # Lucent if [ "$v" = "115d" ] || [ "$PCIDEV" = "11c1:0420" ] ; then cat<>$RECORD Vendor=$v corresponds to Xircom, now an Intel subsidiary. http://www.intel.com/support/peripherals/xc/modems/index.htm http://appsr.intel.com/scripts-df/support_intel2.asp http://support.intel.com/ These Device ID Range ------------- XIRCOM 0x115d 0x0000-0x000F XIRCOM 0x115d 0x0440-0x045c XIRCOM 0x115d 0x0010-0x03ff -------------------------------------- are supported by the resources at http://ltmodem.heby.de/ Some other Xircom modems and Lucent 11c1:0420 modems MAY BE accessed by Insertion Options Download from http://ltmodem.heby.de/ the: ltmodem-"$LT_VERSION".tar.gz Open with: tar zxvf ltmodem-"$LT_VERSION".tar.gz Within the ltmodem/DOCs/ folder read the Insertion-param files and for fun, the history: andreas.txt To get a recommendation for an Installer kit, run $BN kit END fi # Xircom if test -n "$smart" && ! [ "$v" = "163c" ] ; then cat<>$RECORD The soft modem $SUBS serving under the controller: PCI_ID=$PCIDEV, $CNTRL may be supported by the SmartLink slmodem-2.9.n drivers. See the related support table listing in $RECORD.2 END fi if [ "$v" = "163c" ] || test -n "$smart" || test -n "$SMART" ; then cat<>$RECORD Vendor 163c is SmartLink, http://www.smlink.com/ with EXCELLENT Linux support! Downloads from ftp://ftp.smlink.com/linux/unsupported/ with some backups at: http://linmodems.technion.ac.il/packages/smartlink/ The slmodem-2.9.n drivers support several non-SmartLink soft modem chipsets under AC'97 Controllers. The slmodem series is compatible with 2.6.nn Linux kernels If there should be mis-dialing problems either use slmdm-2.7.10 or upgrade to a 2.6.nn kernel. The modem port is /dev/ttySL0 Please see the support compatibility table within $RECORD.2 The controllers with an in line + are compatible. There may be a warning about a not-SmartLink modem as the drivers load. But just proceed with modem functionality tests as described at the end of $RECORD.2 END SMART= smart= fi done # with Vendor and SUBven echo >>$RECORD done echo " ====== PCI_ID checking completed ======" >>$RECORD echo >>$RECORD fi # TESTS cat<>$RECORD.2 If the Primary and Subsystem Vendor information was not adeqaute, it may be useful to download http://www.yourvote.com/pci/vendors.txt and search it for the Vendor IDs with and without caps, for example: both 114d and 114D END # Just to be sure the Update is reported: echo " Update=$UPDATE">>$RECORD # DSP=011c:0442 if test -n "$DSP" || [ "$1" = "kit" ] ; then if ! [ "$DISTR" = "Not_identified" ] ; then # No use if the distribution is not known if [ "$DISTR" = "slackware" ] ; then echo Installers are not available for Slackware Linux >>$RECORD fi # echo DISTR=$DISTR # pick out the Distro section echo > $TMPM if [ "$DISTR" = "conectiva" ] ; then if [ "$GCCmajor" != "3" ] ; then cat< $TMPM ltmodem-6.00b7.i386.rpm ltmodem-kv_2.2.19_15cl-6.00b15-1.i386.rpm ltmodem-kv_2.2.19_25U70_3cl-6.00c2-1.i386.rpm ltmodem-kv_2.4.12_4U70_2cl-6.00c2-1.i386.rpm ltmodem-kv_2.4.18_3U8_4cl-8.22a4-1.i386.rpmq ltmodem-kv_2.4.19_1U80_5cl-8.22a5-1.i386.rpm ltmodem-kv_2.4.18_586-6.28a8-1.i386.rpm ltmodem-kv_2.4.19_1U80_2cl-8.26a9-1.i386.rpm ltmodem-kv_2.4.19_1U80_5cl-8.26a9-1.i386.rpm ltmodem-kv_2.4.19_1U80_8cl-8.26a9-1.i386.rpm EOF else cat< $TMPM EOF fi fi if [ "$DISTR" = "debian" ] ; then if ! [ "$GCCmajor" = "3" ] ; then cat< $TMPM ltmodem-2.2.20-compact_6.00c2_i386.deb ltmodem-2.2.20-idepci_6.00c2_i386.deb ltmodem-2.2.20-reiserfs_6.00c_i386.deb ltmodem-2.2.20_6.00c2_i386.deb ltmodem-2.2.21-compact_6.00c2_i386.deb ltmodem-2.2.21-idepci_6.00c2_i386.deb ltmodem-2.2.22_6.00c_i386.deb ltmodem-2.2.22-compact_6.00c_i386.deb ltmodem-2.2.22-idepci_6.00c_i386.deb ltmodem-2.2.25_6.00c_i386.deb ltmodem-2.2.25-compact_6.00c_i386.deb ltmodem-2.2.25-idepci_6.00c_i386.deb ltmodem-2.4.0-test11_8.00a3_i386.deb ltmodem-2.4.4-386_8.00a3_i386.deb ltmodem-2.4.4-586_8.00a3_i386.deb ltmodem-2.4.4-586tsc_8.00a3_i386.deb ltmodem-2.4.4-686-smp_8.00a3_i386.deb ltmodem-2.4.4-686_8.00a3_i386.deb ltmodem-2.4.4-k6_8.00a3_i386.deb ltmodem-2.4.4-k7_8.00a3_i386.deb ltmodem-2.4.4_8.00a3_i386.deb ltmodem-2.4.5-386_8.00a3_i386.deb ltmodem-2.4.5-586_8.00a3_i386.deb ltmodem-2.4.5-586tsc_8.00a3_i386.deb ltmodem-2.4.5-686-smp_8.00a3_i386.deb ltmodem-2.4.5-686_8.00a3_i386.deb ltmodem-2.4.5-k6_8.00a3_i386.deb ltmodem-2.4.5_8.00a3_i386.deb ltmodem-2.4.7-386_8.00a3_i386.deb ltmodem-2.4.7-586_8.00a3_i386.deb ltmodem-2.4.7-586tsc_8.00a3_i386.deb ltmodem-2.4.7-686-smp_8.00a3_i386.deb ltmodem-2.4.7-686_8.00a3_i386.deb ltmodem-2.4.7-k6_8.00a3_i386.deb ltmodem-2.4.7_8.00a3_i386.deb ltmodem-2.4.9-386_8.00a3_i386.deb ltmodem-2.4.9-586_8.00a3_i386.deb ltmodem-2.4.9-586tsc_8.00a3_i386.deb ltmodem-2.4.9-686-smp_8.00a3_i386.deb ltmodem-2.4.9-686_8.00a3_i386.deb ltmodem-2.4.9-k6_8.00a3_i386.deb ltmodem-2.4.9_8.00a3_i386.deb ltmodem-2.4.10-386_8.00a3_i386.deb ltmodem-2.4.10-586_8.00a3_i386.deb ltmodem-2.4.10-586tsc_8.00a3_i386.deb ltmodem-2.4.10-686-smp_8.00a3_i386.deb ltmodem-2.4.10-686_8.00a3_i386.deb ltmodem-2.4.10-k6_8.00a3_i386.deb ltmodem-2.4.10_8.00a3_i386.deb ltmodem-2.4.12-386_8.00a3_i386.deb ltmodem-2.4.12-586_8.00a3_i386.deb ltmodem-2.4.12-586tsc_8.00a3_i386.deb ltmodem-2.4.12-686-smp_8.00a3_i386.deb ltmodem-2.4.12-686_8.00a3_i386.deb ltmodem-2.4.12-k6_8.00a3_i386.deb ltmodem-2.4.12_8.00a3_i386.deb ltmodem-2.4.13-386_8.00a3_i386.deb ltmodem-2.4.13-586-ext3_8.00a3_i386.deb ltmodem-2.4.13-586_8.00a3_i386.deb ltmodem-2.4.13-586tsc_8.00a3_i386.deb ltmodem-2.4.13-686-smp_8.00a3_i386.deb ltmodem-2.4.13-686_8.00a3_i386.deb ltmodem-2.4.13-k6_8.00a3_i386.deb ltmodem-2.4.13_8.00a3_i386.deb ltmodem-2.4.14-386_8.00a3_i386.deb ltmodem-2.4.14-586-ext3_8.00a3_i386.deb ltmodem-2.4.14-586_8.00a3_i386.deb ltmodem-2.4.14-586tsc_8.00a3_i386.deb ltmodem-2.4.14-686-smp_8.00a3_i386.deb ltmodem-2.4.14-686_8.00a3_i386.deb ltmodem-2.4.14-k6_8.00a3_i386.deb ltmodem-2.4.14-k7_8.00a3_i386.deb ltmodem-2.4.14_8.00a3_i386.deb ltmodem-2.4.16-386_8.00a3_i386.deb ltmodem-2.4.16-586_8.00a3_i386.deb ltmodem-2.4.16-586tsc_8.00a3_i386.deb ltmodem-2.4.16-686-smp_8.00a3_i386.deb ltmodem-2.4.16-686_8.00a3_i386.deb ltmodem-2.4.16-k6_8.00a3_i386.deb ltmodem-2.4.16-k7_8.00a3_i386.deb ltmodem-2.4.16_8.00a3_i386.deb ltmodem-2.4.17-386_8.00a3_i386.deb ltmodem-2.4.17-586tsc_8.00a3_i386.deb ltmodem-2.4.17-686-smp_8.00a3_i386.deb ltmodem-2.4.17-686_8.00a3_i386.deb ltmodem-2.4.17-bf2.4_8.00a3_i386.deb ltmodem-2.4.17-k6_8.00a3_i386.deb ltmodem-2.4.17-k7_8.00a3_i386.deb ltmodem-2.4.17_8.00a3_i386.deb ltmodem-2.4.18-386_8.00a3_i386.deb ltmodem-2.4.18-586tsc_8.00a3_i386.deb ltmodem-2.4.18-686-smp_8.00a3_i386.deb ltmodem-2.4.18-686_8.00a3_i386.deb ltmodem-2.4.18-bf2.4_8.00a3_i386.deb ltmodem-2.4.18-k6_8.00a3_i386.deb ltmodem-2.4.18-k7_8.00a3_i386.deb ltmodem-2.4.18_8.00a3_i386.deb ltmodem-2.4.19-386_8.26a9_i386.deb ltmodem-2.4.19-586tsc_8.26a9_i386.deb ltmodem-2.4.19-686-smp_8.26a9_i386.deb ltmodem-2.4.19-686_8.26a9_i386.deb ltmodem-2.4.19-k6_8.26a9_i386.deb ltmodem-2.4.19-k7_8.26a9_i386.deb ltmodem-2.4.19-k7-smp_8.26a9_i386.deb ltmodem-2.4.19_8.26a9_i386.deb ltmodem-2.4.20_8.26a9_i386.deb ltmodem-2.4.20-speakup_8.26a9_i386.deb ltmodem-2.4.20-1-386_8.26a9_i386.deb ltmodem-2.4.20-1-586tsc_8.26a9_i386.deb ltmodem-2.4.20-1-686_8.26a9_i386.deb ltmodem-2.4.20-1-k6_8.26a9_i386.deb ltmodem-2.4.20-1-k7_8.26a9_i386.deb ltmodem-2.4.20-1-k7-smp_8.26a9_i386.deb EOF fi fi if [ "$DISTR" = "mandrake" ] ; then if ! [ "$GCCmajor" = "3" ] ; then cat< $TMPM ltmodem-kv_2.2.17_21mdk-6.00b4-1.i686.rpm ltmodem-kv_2.2.19_4.1mdk-6.00b4-1.i686.rpm ltmodem-kv_2.2.19_6.3mdk-6.00b15-1.i586.rpm ltmodem-kv_2.2.19_6.3mdk-6.00b15-1.i686.rpm ltmodem-kv_2.2.19_20.1mdk-6.00b7-1.i586.rpm ltmodem-kv_2.2.19_20.1mdk-6.00b7-1.i686.rpm ltmodem-kv_2.2.20_9.1mdk-6.00c2-1.i586.rpm ltmodem-kv_2.2.20_9mdk-6.00c2-1.i586.rpm ltmodem-kv_2.2.20_9mdk-6.00c2-1.i686.rpm ltmodem-kv_2.4.3_20mdk-6.00b15-1.i586.rpm ltmodem-kv_2.4.3_20mdk-6.00a1-1.i686.rpm ltmodem-kv_2.4.7_13mdk-6.00a1-1.i586.rpm ltmodem-kv_2.4.8_34.1mdk-6.00b15-1.i586.rpm ltmodem-kv_2.4.8_34.1mdk-6.00b15-1.i686.rpm ltmodem-kv_2.4.8_26mdk-6.00b7-1.i586.rpm ltmodem-kv_2.4.8_26mdk-6.00b7-1.i686.rpm ltmodem-kv_2.4.18_6mdksmp-8.22a4-1.486.rpm ltmodem-kv_2.4.18_6mdk-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_6mdk-8.22a5-1.i686.rpm ltmodem-kv_2.4.18_6mdksmp-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_6mdksmp-8.22a5-1.i686.rpm ltmodem-kv_2.4.18_8.1mdk-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_8.1mdk-8.22a5-1.i686.rpm ltmodem-kv_2.4.18_8.1mdksmp-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_8.1mdksmp-8.22a5-1.i686.rpm ltmodem-kv_2.4.19_16mdk-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_8.1mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_8.1mdk-8.26a9-1.i686.rpm EOF else cat< $TMPM ltmodem-kv_2.4.19_16mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.19_24mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.19_24mdk-8.26a9-1.i686.rpm ltmodem-kv_2.4.21_0.11mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.21_0.13mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.21_0.18mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.21_0.25mdk-8.26a9-1.i586.rpm ltmodem-kv_2.4.21_0.25mdk-8.26a9-1.i686.rpm ltmodem-kv_2.4.22_10mdk-8.26a9-1.i586.rpm EOF fi fi if [ "$DISTR" = "redhat" ] ; then if ! [ "$GCCmajor" = "3" ] ; then cat< $TMPM ltmodem-kv_2.2.16_22-6.00a1-1.i386.rpm ltmodem-kv_2.2.19_7.0.8-6.00a1-1.i386.rpm ltmodem-kv_2.4.2_2-8.22a3-1.i386.rpm ltmodem-kv_2.4.3_12-6.00a1-1.i386.rpm ltmodem-kv_2.4.3_SGI_XFS_1.0.1-6.00a1-1.i386.rpm ltmodem-kv_2.4.6_2.4-6.00a1-1.i386.rpm ltmodem-kv_2.4.7-6.00a1-1.i386.rpm ltmodem-kv_2.4.9_0.5-6.00b4-1.i386.rpm ltmodem-kv_2.4.9_6-6.00b4-1.i386.rpm ltmodem-kv_2.4.9_7-6.00b4-1.i386.rpm ltmodem-kv_2.4.7_10-6.00b15-1.athlon.rpm ltmodem-kv_2.4.7_10-6.00b15-1.i386.rpm ltmodem-kv_2.4.7_10-6.00b15-1.i586.rpm ltmodem-kv_2.4.7_10-6.00b15-1.i686.rpm ltmodem-kv_2.4.9_12-6.00b7-1.i386.rpm ltmodem-kv_2.4.9_13-6.00b7-1.i386.rpm ltmodem-kv_2.4.9_21-6.00b15-1.athlon.rpm ltmodem-kv_2.4.9_21-6.00b15-1.i386.rpm ltmodem-kv_2.4.9_21-6.00b15-1.i586.rpm ltmodem-kv_2.4.9_21-6.00b15-1.i686.rpm ltmodem-kv_2.4.9_31-6.00c2-1.i386.rpm ltmodem-kv_2.4.9_31-6.00b14-1.athlon.rpm ltmodem-kv_2.4.9_31-6.00b14-1.i686.rpm ltmodem-kv_2.4.9_34-8.22a5-1.i386.rpm ltmodem-kv_2.4.12_0.1-6.00b4-1.i386.rpm ltmodem-kv_2.4.17_0.13-6.00b15-1.athlon.rpm ltmodem-kv_2.4.17_0.13-6.00b15-1.i386.rpm ltmodem-kv_2.4.17_0.13-6.00b15-1.i586.rpm ltmodem-kv_2.4.17_0.13-6.00b15-1.i686.rpm ltmodem-kv_2.4.18_0.13-8.22a3-1.i386.rpm ltmodem-kv_2.4.18_3-8.22a3-1.athlon.rpm ltmodem-kv_2.4.18_3-8.22a3-1.i586.rpm ltmodem-kv_2.4.18_3-8.22a3-1.i686.rpm ltmodem-kv_2.4.18_3-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_3-8.22a5-1.i386.rpm ltmodem-kv_2.4.18_5-8.22a5-1.athlon.rpm ltmodem-kv_2.4.18_5-8.22a5-1.i386.rpm ltmodem-kv_2.4.18_5-8.22a5-1.i486.rpm ltmodem-kv_2.4.18_5-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_5-8.22a5-1.i686.rpm ltmodem-kv_2.4.18_10-8.22a5-1.athlon.rpm ltmodem-kv_2.4.18_10-8.22a5-1.i386.rpm ltmodem-kv_2.4.18_10-8.22a5-1.i486.rpm ltmodem-kv_2.4.18_10-8.22a5-1.i586.rpm ltmodem-kv_2.4.18_10-8.22a5-1.i686.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.athlon.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.duron.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_18.7.x-8.26a9-1.k6.rpm END else cat< $TMPM ltmodem-kv_2.4.18_14-8.26a9-1.athlon.rpm ltmodem-kv_2.4.18_14-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_14-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_14-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_14bigmem-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_14smp-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.athlon.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.duron.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_18.8.0-8.26a9-1.k6.rpm ltmodem-kv_2.4.18_19.8.0-8.26a9-1.1.i386.rpm ltmodem-kv_2.4.18_19.8.0-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_19.8.0-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_19.8.0-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_19.8.0-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_24.8.0-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_24.8.0-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_24.8.0-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_24.8.0-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_26.8.0-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_26.8.0-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_26.8.0-8.26a9-1.i686.rpm ltmodem-kv_2.4.18_27.7.x-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_27.8.0-8.26a9-1.i386.rpm ltmodem-kv_2.4.18_27.8.0-8.26a9-1.i486.rpm ltmodem-kv_2.4.18_27.8.0-8.26a9-1.i586.rpm ltmodem-kv_2.4.18_27.8.0-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_2.2-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_2.2-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_2.2-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_2.2-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_6-8.26a9-1.athlon.rpm ltmodem-kv_2.4.20_8-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_8-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_8-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_8-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_9-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_9-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_9-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_9-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_13.9-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_13.9-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_13.9-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_13.9-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_18.9-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_18.9-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_18.9-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_18.9-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_19.9-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_19.9-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_19.9-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_19.9-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_20.7-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_20.8-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_20.8-8.26a9-1.i686.rpm ltmodem-kv_2.4.20_20.9-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_20.9-8.26a9-1.i486.rpm ltmodem-kv_2.4.20_20.9-8.26a9-1.i586.rpm ltmodem-kv_2.4.20_20.9-8.26a9-1.i686.rpm END fi fi if [ "$DISTR" = "SuSE" ] ; then echo " Installer packages are also available from SuSE repositories, search for ltmodem at:">>$RECORD echo " http://rpm.pbone.net/ " >>$RECORD if ! [ "$GCCmajor" = "3" ] ; then cat< $TMPM ltmodem-kv_2.4.10_4GB-6.00b4-1.i386.rpm ltmodem-kv_2.4.16_4GB-6.00b9-1.i386.rpm ltmodem-kv_2.4.18_4GB-8.22a3-1.i386.rpm ltmodem-kv_2.4.19_4GB-8.22a5-1.i386.rpm ltmodem-kv_2.4.18_4GB-8.26a9-1.i386.rpm ltmodem-kv_2.4.19_4GB-8.26a9-1.i386.rpm ltmodem-kv_2.4.20_4GB-8.26a9-1.i386.rpm END else cat< $TMPM SuSE 8.3 uses gcc=3.3 END fi fi ################### Listing from http://ltmodem.heby.de/ ends fi # Done choosing DISTR block # for testing # PVER=2.4.18_5 # CPU=i786 # cat $TMPM echo >>$RECORD echo " The desired installer name is like:" >>$RECORD echo "========================================" >>$RECORD # echo Checking for suitable ltmodem Installers if [ "$DISTR" = "debian" ] ; then echo ltmodem-"$FILTER""$LT_VERSION"_i386.deb >>$RECORD # FILTER=2.4.18-6_ if grep $FILTER $TMPM > /dev/null ; then grep $FILTER $TMPM > $TMPM.1 BEST=$TMPM.1 fi else # conectiva mandrake redhat SuSE, all .rpm if [ "$DISTR" = "mandrake" ] || [ "$DISTR" = "redhat" ] ; then echo ltmodem-kv-$PVER-$LT_VERSION-1.$CPU.rpm >>$RECORD fi if [ "$DISTR" = "conectiva" ] || [ "$DISTR" = "SuSE" ] ; then echo "ltmodem-kv-$PVER-$LT_VERSION-i386.rpm" >>$RECORD fi grep $PVER $TMPM > $TMPM.2 grep $CPU $TMPM.2 > $TMPM.1 if grep "ltmodem-" $TMPM.1 >/dev/null ; then BEST=$TMPM.1 elif grep "ltmodem-" $TMPM.2 >/dev/null ; then BEST=$TMPM.2 else BEST= fi fi AGERE=`echo $LT_VERSION | cut -da -f1` cat<>$RECORD ---------------------------------------- ltmodem-kv-Kernel_FL-LTver--.CPU.rpm explains the versioning. For your System `echo Kernel_FL is $SYS , the full kernel version displayed by: uname -r` `echo LTver is $LT_VERSION, the release of the compiler kit` `echo $AGERE is the Agere core code designation.` The proccesor type or CPU is: $CPU dispayed by: uname -m used in compiling and assembling driver packages. END # Results if [ "$BEST" = "$TMPM.1" ] ; then cat< $TMPM.3 A suitable Installer is at http://ltmodem.heby.de/ in the section: $DISTR `cat $BEST` END cat $TMPM.3 >>$RECORD cat $TMPM.3 elif [ "$BEST" = "$TMPM.2" ] ; then cat< $TMPM.3 Installers that may suffice are at http://ltmodem.heby.de/ in the section: $DISTR ------------------------------------------------------ `cat $BEST` ------------------------------------------------------ The closest match to your $CPU=CPU is recommended. For example replacements in order of preference for an i686 would be i586, i486 and i386 The Kernel_FLavor section MUST match. If not the ltmodem-$LT_VERSION.tar.gz compiler MUST BE USED. END cat $TMPM.3 >>$RECORD cat $TMPM.3 else cat<>$RECORD A suitable installer is not available as of this $UPDATE update. Check in the section $DISTR at http://ltmodem.heby.de/ for a subsequent Installer submission. If not present use the ltmodem-$LT_VERSION.tar.gz compiler kit. The list of available Installers for $DISTR is inserted into to $RECORD.2 END cat<>$RECORD.2 GCCmajor=$GCCmajor -----------Installer list for $DISTR -------- `cat $TMPM` ------- end Installer List ------------------ END fi fi # DISTR not recognized if [ "$DISTR" = "redhat" ] || [ "$DISTR" = "SuSE" ] ; then echo >>$RECORD echo " Some installers may alternately be found by searching for ltmodem at:">>$RECORD echo " http://rpm.pbone.net/">>$RECORD echo >>$RECORD fi if grep smp $TMPM >/dev/null ; then ########### cat<>$RECORD.2 Symmetric Multi Processors (SMP) issues ---------------------------------------------------------------------------------- Beginning with the Agere version 8.00 core code, the ltmodem drivers are functional on Systems with SMP kernels such as your kernel-$SYS , so far as supporting dialout and initiation of ppp. However these dialout sessions inevitable stall, evidently because of inadequate interrupt handling by the core ltmodem code. This problem can be bypassed with some loss of performance by using the bootup option: NOAPCI END ############ fi # DSP fi # FAILED lspci -s scan # echo Scanning for a PCI bridge to a CardBus with: "$LSPCI | grep CardBus" echo ---------------------------------------- > $TMPM CARDBUS=`$LSPCI | grep -E CardBus | cut -d' ' -f1` if test -z "$CARDBUS" ; then CARDBUS=`$LSPCI | grep Cardbus | cut -d' ' -f1` fi if test -z "$CARDBUS" ; then echo A PCI CardBus is not detected on this System. >> $TMPM else port=0 for i in $CARDBUS ; do echo Analyzing information for PCMCIA device at PCI Bus $i >> $TMPM $LSPCI -s $i -v >> $TMPM echo "GREPping for an inserted PCMCIA modem with filter: ommunication" >> $TMPM MODEM=`$LSPCI -v | grep Communication` if test -n "$MODEM" ; then port=1 fi done if test $port -gt 0 ; then cat<>$TMPM A PCMCIA modem is detected. >> $TMPM `$LSPCI -s $i -v | grep ommunication` The stardard ltmodem resources should suffice for modem support: http://ltmodem.heby.de/ if the modem has a Lucent/Agere digital processing chipset. END else cat<>$TMPM If a PCMCIA modem is currently inserted and the sockets activated by /etc/init.d/pcmcia start then the PCMCIA bridge is NOT transparent. If the modem is known to have a Lucent digital signal processing chipset, then PCMCIA.tar.gz variant assembled by Joern Wustenfeld is necessary, rather than the standard ltmodem-$LT_VERSION.tar.gz at http://ltmodem.heby.de/ END fi cat $TMPM >>$RECORD.2 echo fi # gcc problem if [ "$GCCmajor" = "3" ] ; then echo GCCversion=$GCC >>$RECORD ######### cat<>$RECORD.2 --------------------------------------------------------------------------------------------- The proprietary Binary component of the some current winmodem drivers were compiled with version 2.9n gcc compiler. Red Hat 8.0 and Mandrake 9.0 releases utilize version 3.nn gcc compilers. This currently is causing difficulties either in compiling and/or insertion of updated winmodem drivers. The gcc compiler version of this System is: $GCC It will likely be necessary to force (-f) insertion of winmodem drivers, with credit to Jos Vos: http://phep2.technion.ac.il/linmodems/archive/msg04510.html For the ltmodem drivers with proprietary binary provided by Agere Systems, compiling with versions gcc=3.nn is successful. A minor edit required to compile PCTEL drivers has also been reported: http://phep2.technion.ac.il/linmodems/archive/msg04684.html Simple driver insertion fails in these cases with a message like: ----begin error---- % insmod lt_modem Using /lib/modules/2.4.18-14/ltmodem/lt_modem.o /lib/modules/2.4.18-14/ltmodem/lt_modem.o: The module you are trying to load (/lib/modules/2.4.18-14/ltmodem/lt_modem.o) is compiled with a gcc version 2 compiler, while the kernel you are running is compiled with a gcc version 3 compiler. This is known to not work. -----end error----- It is necessary as Root to force (-f) loading with commands like: insmod -f pctel respecting the dependency ordering of the drivers. Then check for insertion with: lsmod If driver insertion is successful, the forcing can be automated by putting the lines (credit to Bhaskaran Raman) like the following, install pctel /sbin/insmod --force pctel In order of preference depending on your particular Linux installation. Put these lines into ONLY ONE of the following files, within any modem loading subsection if present: /etc/modutils/ltmodem /etc/modutils/aliases /etc/modules.conf Then inform your System of the edit for Debian like Systems with update-modules which rewrites and reads /etc/modules.conf . For other System types depmod -a re-reads the edited /etc/modules.conf . Thereafter module loading should behave as previously. For the ltmodem drivers loading, it should suffice to either start a ppp session or modprobe ptserial END ############### fi # A general Advisory ETHER=`$LSPCI | grep Ether | cut -d' ' -f1` if test -n "$ETHER" ; then cat<>$RECORD.2 ----------------------------------------------------- The System has Ethernet capability. If not expert, shut down ethernet before initiated modem usage with: # ifconfig eth0 down END $LSPCI -s $ETHER -v >>$RECORD.2 echo >>$RECORD.2 fi ############ echo >>$RECORD echo The following information blocks just query some ppp support items. >>$RECORD echo "====================================================================" >>$RECORD echo " grep ppp /etc/modules.conf" >>$RECORD echo -------------------------------- >>$RECORD grep ppp /etc/modules.conf >>$RECORD echo -------------------------------- >>$RECORD if ! grep ppp /etc/modules.conf >/dev/null ; then echo echo Be sure to read the section about ppp related modules and aliases in $RECORD.2 >>$RECORD cat<>$RECORD.2 Within /lib/modules/You_Kernel_Version/kernel/drivers/net/ at least the following modules needed for communication should be found ppp_deflate.o zlib_inflate.o zlib_deflate.o bsd_comp.o ppp_async.o ppp_generic.o slhc.o BUT they may be present instead as ModuleName.o.gz If so unpack them with a commands like: # gzip /lib/modules/You_Kernel_Version/kernel/drivers/net/ModuleName.o.gz Alternatively, installing the dialer package KPPP may force their unpacking. Following a dialout attempt, display loaded modules with: # /sbin/lsmod If there are not displayed lines like: ppp_deflate 3512 1 (autoclean) zlib_inflate 18980 0 (autoclean) [ppp_deflate] zlib_deflate 18648 0 (autoclean) [ppp_deflate] bsd_comp 4440 0 (autoclean) ppp_async 7744 1 (autoclean) ppp_generic 16380 3 (autoclean) [ppp_deflate bsd_comp ppp_async] slhc 5264 1 (autoclean) [ppp_generic addition of the following lines to /etc/module.conf may be needed: ### automate ppp modules loading ### alias /dev/ppp ppp_generic alias char-major-108 ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldisc-14 ppp_synctty alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate ### end ppp block #### After any edit of /etc/modules.conf , inform the System by logging into a console with # su - root and running the update command: # depmod -a which re-reads /etc/modules.conf and parses all the modules dependencies. END fi # ethernet and isdn can hinder DNS acquisition if test -x /sbin/ifconfig ; then /sbin/ifconfig | grep Link> $TMPM echo === ifconfig test ==== >>$RECORD cat $TMPM >>$RECORD echo >>$RECORD if grep tap $TMPM>/dev/null ; then echo ISDN function should be stopped before initiating modem usage>>$RECORD echo >>$RECORD fi fi if test -e /dev/ppp ; then DEVPPP=`ls -l /dev/ppp` echo DEVPPP=$DEVPPP >>$RECORD else cat<>$RECORD A port needed for the PPP protocol is absent!!! echo " crw------- 1 root root 108, 0 Dec 31 1969 /dev/ppp" END fi if test -e /dev/.devfsd ; then DEVFS=active echo DEVFS=$DEVFS >>$RECORD # Check for /dev/modem link elif [ -L /dev/modem ] ; then MODEM=`ls -l /dev/modem | cut -d'>' -f2- | cut -d" " -f2-` cat<> $RECORD The current modem symbolic link is: /dev/modem -> $MODEM" The ports /dev/ttyS0 or 1,2,3 are for standard Controller chip modems END else echo A /dev/modem symbolic link is not present >>$RECORD fi if test -f /etc/devfsd.conf ; then DEVFSD=/etc/devfsd.conf elif test -f /etc/devfs/devfsd.conf ; then DEVFSD=/etc/devfs/devfsd.conf else cat<>$RECORD No devfsd.conf file sound, indicated absense of the devfsd daemon package for device file system (devfs) symbolic link support. END fi echo DEVFSD=$DEVFSD>>$RECORD if [ "$DEVFSD" != "" ] ; then DEVFSD_PPP=`grep PPP $DEVFSD` >>$RECORD echo tts/0 > $TMPM echo tts/1 >> $TMPM echo tts/2 >> $TMPM echo tts/3 >> $TMPM echo MODEM=`grep -f $TMPM $DEVFSD` if test -z "$MODEM" ; then if test -d /etc/devfs ; then MODEM=`grep -rs modem /etc/devfs/ | grep -f $TMPM | grep :REGISTER` fi fi if test -n "$MODEM" ; then FILE=`grep -rs modem /etc/devfs/ | grep -f $TMPM | grep :REGISTER | cut -d: -f1` # echo $FILE cat<>$RECORD Supporting /dev/modem symbolic link: $FILE ------------------------------ `cat $FILE` ------------------------------ EOF cat<>$RECORD.2 Supporting /dev/modem symbolic link: $FILE ------------------------------ `cat $FILE` ------------------------------ is for device file system support of Controller chip modems and will conflict with usages of any other modem requiring a symbolic link: /dev/modem --> /dev/SomeNode It will for example conflict with support for the Lucent chip modems with support file /etc/devfs/conf.d/ltmodem.conf --------------------------------- ### /dev/modem symbolic link to /dev/tts/LT0 REGISTER ^tts/LT0$ CFUNCTION GLOBAL symlink $devname modem UNREGISTER ^tts/LT0$ CFUNCTION GLOBAL unlink modem --------------------------------- Thus unless use of a Controller chip modem is anticipated, either comment out those lines with a leading # or move $FILE somewhere else, say /root/ to avoid conflict with other modems!! Inform the devfsd (device file system) daemon of the edit with # killall -HUP devfsd See http://linmodems.technion.ac.il/archive-third/msg00869.html END fi fi cat<>$RECORD.2 ================================================================ COMPILING DRIVERS, for Linux Newbies This text provides a very minimal introduction to compiling drivers, particularly WinModem drivers under Linux. Must points are covered in much more detail in the Linux HOWTO documentation set. WinModem drivers commonly include: 1) a readible Open Source component, which can be readily debugged by experts in code. This component provides "wrappers" to common kernel functions for the binary and a Closed Source component of the modem code. 2) A Closed Source component compiled into BINARY form in which the original source code is not available to the public to protect its proprietary information. The binary format precludes incorporation of the modem drivers in many Linux distributions (Debian, Mandrake, Red hat, etc.) for legal reasons, practical reasons, and/or reasons of principle. Thus the modem user must commonly COMPILE his own drivers, and properly install these drivers into their Linux System. Fully pre-compiled modem binaries are generally not provided. The administrative cost is too high, for maintaining drivers for all the different customized variations to the linux kernel distributions use. Pre-compiled binaries are usually only found for the most common and generic distributions on the market. Since almost all the newer PCs are now equipped with WinModems, most everyone will have to compile theirown linux modem drivers. Exceptions are the more expensive modems with Controller chipsets, characteristic of the earliest modems. They are supported by Open Source serial code included in Linux distributions (Distros hereafter). Winmodems are less expensive because of greatly reduced hardware costs (ie: no Digital Signal Processing, DSP, and/or no controller chips). Some of the functions of the older Controller based chipsets are replaced by a combination of software code and/or other System hardware. Modems without a controller are referred to as "controllerless modems" and modems without a DSP and controller are referred to as "soft modems". With faster central processor units (CPU), some processing tasks are performed by the CPU for the HCF (host controller free) modems. For the soft modems serving under ac97_codec audio singnal processing rules the digital audio card does some of the signal processing. COMPILING is the process of converting human readable source code into compact binary code that the Operating System (OS) can process quickly. For winmodems, code components from the modem chipset provider are combined with KERNEL-HEADERS, thus generating one or more complementary drivers. They are commonly compiled as Modules and installed as ModuleNames.o into sub-folders of: /lib/modules/kernel-version/ Therefrom they can be dynamically inserted into the boot kernel of the Operating System (OS) when needed, sometimes with auxiliary instructions from /etc/modules.conf They can be removed from the kernel when no longer serving, thus economizing on System resources. The KERNEL-HEADERs have FileNames.h can can be read with a text browser. Some are installed to /usr/include/ For systems with RPM package managers, they are provided by a package kernel-headers-SomeVersion.rpm They specify: 1) code bits to be incorporated by various of your installed programs, and 2) the dependencies within the set of FileNames.h However the whole set of /usr/include/FileNames.h Are in general TOO FEW to support compiling. Exceptions to note are the kernel-header-version.deb packages of Debian style Distros, which are designed to support compiling. A KERNEL-SOURCE package must more generally be installed, and processed to produce needed kernel headers. The kernel-source is some 20-30 MB now even in compressed form. The kernel-source package provided by your Linux Distro SHOULD preferentially be used. It will usually have some differences from that initially released at http://www.kernel.org . Typically the installation process will set a symbolic link: /usr/src/linux --> PATH_to/kernel-source-version/ Check with: ls -l /usr/src/linux Move into it with: cd /usr/src/linux Look at the first few lines of the Makefile with: more Makefile They will look like: -------------------- VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 21 EXTRAVERSION = -Some.Extraversion.Designation -------------------- wherein -Some.Extraversion.Designation was that last used by your Linux Distro for a specialization of the more general kernel-release 2.4.21 . For Mandrake Linux their will generally be an include an "mdk", such as: EXTRAVERSION = -3.1mdk These four makefile lines specify that: 1) the compiled kernel will have a version name like: vmlinuz-2.4.21-3.1mkd 2) the complementary kernel modules will have an encoded version label: 2.4.21-3.1mkd 3) the modules will be installed by: make modules-install to sub-folders of /lib/modules/2.4.21-3.1mkd/ Some kernel-headers from a prior usage may be resident from the Last.Usage of the kernel-source/. Check with: ls include/linux/ which may display abundant FileNames.h The version of these headers will be in the UTS line displayed (for example) by cat include/linux/version.h #define UTS_RELEASE "2.4.21-3.1mdk" Next, list completely the contents of your current folder /usr/src/linux with: ls -a Where the " -a " additionally reveals ".dot-prefixed-confguration-files" such as .config .hdepend .depends which may be left over from the prior usage of the kernel-source. IMPORTANT: the kernel-source as installed generally WILL NOT represent your current kernel version as displayed with: uname -r even if the kernel-version is the same. For example, in the RedHat Distro kernel-source/ there is a set of kernel-configuration files within /usr/src/linux/configs/ Each is specialized for a different CPU (i586, i686, K6, etc), Yet each will be represented by the VERY SAME version.h and "uname -r" . !!!! Thus a PROPER CONFIGURATION MUST BE DONE by You, before any usage of kernel-source !!!! Configuration of the kernel-source is where almost all the Mistakes occur!!! Here is a way to do it correctly (but read through EXCEPTIONAL CASES below). 1)Within /usr/src/linux, browse the README file for general guidance. It will relate the usage: # make mrproper cleans up leftovers from any previous usage .dot-files and the include/linux/ folder. Additionally you may need to do an edit within Makefile, but ONLY that 4th line. If the general source release version is say 2.4.21 and # uname -r Displays 2.4.21-8.1enterprise This EXTRAVERSION mis-match must be corrected. Otherwise, compiled drivers would not be installed to the matching: /lib/modules/kernel_version/ 2) If necessary to edit, FIRST make a backup: cp Makefile Makefile.backup then edit ONLY the 4th line of Makefile to EXTRAVERSION = -8.1enterprise NEVER change anything else within the Makefile. 3) Copy the config file of the current kernel to # /usr/src/linux/.config and DO SPECIFY that " . " But where is it? For many Distros, it will be the file like /boot/config-2.4.21-Current.Kernel.Extraversion matching the output of: # uname -r Or it may be the target of a symbolic link: /boot/config --> So # cp /boot/config-2.4.21-Current.Kernel.Extraversion /usr/src/linux/.config For SuSE linux it is: # cp /boot/vmlinuz.config /usr/src/linux/.config PLEASE do not omit that "." in .config as it is crucially necessary. View .config with a text browser. It is simply a listing of the code components used in the kernel and its modules. 4) The .config file will be read during # make oldconfig which feeds its specifications through a process specifying the SAME inter-dependencies previously used in compiling your kernel, and generating fresh .dot-config files . They can be displayed with: # ls -al 5) Though it may be redundant after "make mrproper", it will do no harm to: make clean 5a) If your Linux Distribution is SuSE, there will exist files: /boot/vmlinuz.autoconf.h /boot/vmlinuz.version.h They MUST be copied as: cp /boot/vmlinuz.autoconf.h /usr/src/linux/include/linux/autoconf.h cp /boot/vmlinuz.version.h /usr/src/linux/include/linux/version.h 6) Now rebuild kernel headers with: make dep 7) Check with: ls include/linux/ and cat include/linux/version.h to verify the version. EXCEPTIONAL CASES For Distros with a Debian style package management system, a kernel-header-Version.deb package matched with your kernel-version is available. If may suffice to set a symbolic link: ln -s /usr/src/kernel-header-Version /usr/src/linux and then compile the modem drivers. If a custom kernel is to be compiled, the kernel-package.deb software will GREATLY simplify the task. Here is a typical command line: make-kpkg --revision 2:test.1 --append_to_version -MySpecial --arch_in_name --initrd kernel_headers kernel_image wherein "--append_to_version -MySpecial" replaces the need for an edit of the Makefile 4th line: EXTRAVERSION = For the 2.4.nn kernels, a symbolic link is set during initial module installations: /lib/modules/kernel-version/build --> /usr/src/linux The driver resources from Intel (and others?) have a Makefile using this build link. So if your compile fails, check with: ls -l /lib/modules/kernel-version/build Then establish the build link if necessary with: ln -s PATH-To/kernel-source or headers folder/ /lib/modules/kernel-version/build Do NOT forget the "-s" for symbolic, or you will Duplicate folder contents As already mentioned above, for the SuSE distribution, there may be files: version.h autoconfig.h located in the /boot/ folder. Before beginning a compile, they should be copied to /usr/src/linux/include/linux/ Someone reported that a critical header file: modversions.h is written to /usr/src/linux/include/linux ONLY if the kernel-source package has been installed with the YAST package manager. COMPILING the MODEM DRIVERS can now finally be done. Unpack the compiler kit for your modem drivers, cd into its folder, read any README files, make clean FINALLY, your modem drivers will compiled by a command like make ModuleName or perhaps make all During this process, some of the kernel-header code with be joined with the supplied modem specific code, and ModemDrivers.o will be produced. Follow and further instructions in the modem code resource to install the drivers, often with: make install ## end COMPILING DRIVERS =================================================== FOLLOW UP STEPS. 1) Check for a symbolic link: ls -l /dev/modem which should display something like /dev/modem --> /dev/WinModemPort Some Distros may set a default /dev/modem --> /dev/ttyS0 (or 1,2,3) which are for Controller Chip modems only. If represent,as Root: # rm -f /dev/modem # ln -s /dev/WinModemPort /dev/modem If may prove necessary to disable a default BOOT UP setup for Controller Chip modems, to prevent resetting of the unwanted default link. 2) Loading drivers Depending upon your installation, the modem drivers may/may_not be autoloaded. Login as Root in a console with: # su - root # lsmod If the modem drivers are not already loaded onto the kernel, insert them with command # modprobe ModuleDriver 3) Testing drivers. For a first test of the drivers, it is Very Usefull to have installed the package: wvdial Do read "man wvdial" and sometime browse the documentation that is written to /usr/share/doc/wvdial/ The first step in setting up wvdial is to run its configuration program as Root. Below is the output from a System with a Lucent/Agere modem wvdialconf will either follow a symbolic link /dev/modem --> /dev/ModemPort or check through ports with name style: /dev/ttyS* Below ttySLT0 is the modem port name, replacing /dev/ttyLTO when the Device Files System (devfs) is in use. %% begun lines below are my added comments. # wvdialconf /etc/wvdial.conf Scanning your serial ports for a modem. ttySLT0<*1>: ATQ0 V1 E1 -- OK ttySLT0<*1>: ATQ0 V1 E1 Z -- OK ttySLT0<*1>: ATQ0 V1 E1 S0=0 -- OK ttySLT0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttySLT0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttySLT0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK %% in the AT* tests above Only the lt_modem.o driver is being interrogated ttySLT0<*1>: Modem Identifier: ATI -- LT V.92 Data+Fax Modem Version 8.26a %% The ATI test queries the modem firmware, concurrently prompting loading of the lt_serial.o driver ttySLT0<*1>: Speed 4800: AT -- OK ttySLT0<*1>: Speed 9600: AT -- OK ttySLT0<*1>: Speed 19200: AT -- OK ttySLT0<*1>: Speed 38400: AT -- OK ttySLT0<*1>: Speed 57600: AT -- OK ttySLT0<*1>: Speed 115200: AT -- OK ttySLT0<*1>: Max speed is 115200; that should be safe. ttySLT0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found a modem on /dev/ttySLT0. : Can't read config file /etc/wvdial.conf : No such file or directory Modem configuration written to /etc/wvdial.conf ttySLT0: Speed 115200; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0" %%% This wvdialconf action if successful generates the files: /etc/ppp/peers/wvdial /etc/ppp/peers/wvdial-pipe and for further editing, /etc/wvdial.conf [Dialer Defaults] Modem = /dev/ttySLT0 Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 ISDN = 0 Modem Type = Analog Modem ; Phone = ; Username = ; Password = Note that if your IP is the MicroSoft Network, then use syntax: Username = MSN/ Edit these lines and remove the ";" to activate them. Many Users prefer to use the dialout utility KPPP. This is fine. But each User MUST run the configuration process separately. In principle, different Users on the same Linux System could have different Internet providers and/or use different modems. 4) Preparation for your first dialout. Concurrent ethernet capability will compete for the Domain Name Service (DNS) needed for browser naviagation. So as root: # /sbin/ifconfig eth0 down before starting a dialout! With a Mandrake installation, it will be necessary to: # /etc/init.d/network stop 5) Internet clients such as Netscape, Mozilla, Explorer etc. should be CLOSED during your first dial out trials. Should a URL on the Internet be specifed as the default URL/connect, then the Client may compete with ppp for connectivity functions. After PPP functionality has been verified, the effects of opened or launched browsers can be checked If you have installed the DIALD (dial on demand) package, stop it for initial tests: # /etc/init.d/diald stop Otherwise diald function will be initiated with modem usage, and could compilate issues. Test diald only after ppp by itself is fine. If your internet provider assigns DNS dynamically then add to /etc/ppp/options: usepeerdns To analyze a dialout attempt, it is useful to display kernel messages with: # tail -f /var/log/messages & or to achieve some prefix trimming: # tail -f /var/log/messages | cut -d: -f4- & The & puts the commanded process in the "background" allowing recovery of the command prompt. Some dialer packages (kppp etc) may automate the above steps. 6) A dail out with wvdial will then display like: # wvdial & --> WvDial: Internet dialer version 1.53 --> Initializing modem. --> Sending: ATZ ATZ OK --> Sending: ATQ0 V1 E1 M1 S0=0 &C1 &D2 +FCLASS=0 ATQ0 V1 E1 M1 S0=0 &C1 &D2 +FCLASS=0 OK --> Modem initialized. --> Sending: ATDT3019178111 --> Waiting for carrier. ATDT3019178111 CONNECT 53333 V42bis --> Carrier detected. Waiting for prompt. ** APX1.LNH.MD.RCN.NET Terminal Server ** Login: --> Looks like a login prompt. --> Sending: marvstod marvstod Password: --> Looks like a password prompt. --> Sending: (password) Entering PPP Session. IP address is 66.44.1.6 MTU is 1006. --> Looks like a welcome message. --> Starting pppd at Sat Jul 26 13:59:03 2003 --> pid of pppd: 2404 : pppd 2.4.1 started by root, uid 0 : Using interface ppp0 : Connect: ppp0 <--> /dev/tts/LT0 : kernel does not support PPP filtering Jul 26 13:59:08 stodolsklap kernel: PPP BSD Compression module registered Jul 26 13:59:08 stodolsklap kernel: PPP Deflate Compression module registered : local IP address 66.44.1.6 : remote IP address 208.59.89.132 : primary DNS address 207.172.3.8 7) Note that for some Linux distributions (Mandrake for one), maintain modules in compressed module.gz format, if modem service was not specified during the Linux installation. A subsequent installation of any dialer package: wvdial - PPP dialer with built-in intelligence. kppp - PPP dialer for KDE dtmfdial - A DTMF Tone Dialer gkdial - Gtk-based PPP dial-up configuration tool. gkdial-gnome - GNOME-based PPP dial-up configuration tool. masqdialer - daemon for remote control of masqueraded dialup links will stimulate unpacking of ppp related modules during bootup. The cogent ppp related modules loaded during such a CONNECT are displayed within the output from: # lsmod ppp_deflate 3512 1 (autoclean) zlib_inflate 18980 0 (autoclean) [ppp_deflate] zlib_deflate 18648 0 (autoclean) [ppp_deflate] bsd_comp 4440 0 (autoclean) ppp_async 7744 1 (autoclean) ppp_generic 16380 3 (autoclean) [ppp_deflate bsd_comp ppp_async] slhc 5264 1 (autoclean) [ppp_generic For ealier 2.4.nn kernels, loading of these modules may be need the following lines within /etc/module.conf : ### automate ppp modules loading ### alias /dev/ppp ppp_generic alias char-major-108 ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldisc-14 ppp_synctty alias ppp-compress-21 bsd_comp alias ppp-compress-24 ppp_deflate alias ppp-compress-26 ppp_deflate ### end ppp block #### For more recent kernels with their modutils, these lines are no longer needed. 8) For potential causes of a NO DIALTONE failure, read the Post-install.html at http://linmodems.technion.ac.il/ Not setting the Country Code may be and additional problem. COUNTRY CODE Issues ==================== The modem which you purchase locally or abroad may not be preset with the proper Country Code setting. An incorrect setting can hinder acquisition of dial tone. Inclusion of an X3 (dial without wainting) in the modem Init string of under wvdial, including in /etc/wvdial.conf a line Stupid Modem = yes Dialtone recognition depends on the setting of country and/or local phone line equipment. To properly get dialtone for your country phone experiment use AT+GCI=xx where xx=00..FF hex number Theoretically there could be 256 different countries but not all are valid. Tables in manuals are way off date, you have to write a small script to try all combinations for yourself if you can't guess by chance. After country select you can check textual name of the country it represents. For example: at+gci=00 OK ati9 Japan If you can't find exact contry, choose the nearest one available. Nearby countries tend to have similar equipment and compatible dialtones. These comments from: Emard ================= 9) After a successful CONNECT, the Domain Name Service (DNS) needed for Browser navigation can be checked with: # ping corel.com PING corel.com (206.47.20.85): 56 data bytes 64 bytes from 206.47.20.85: icmp_seq=0 ttl=52 time=209.1 ms 64 bytes from 206.47.20.85: icmp_seq=1 ttl=52 time=189.9 ms 64 bytes from 206.47.20.85: icmp_seq=2 ttl=52 time=180.0 ms 64 bytes from 206.47.20.85: icmp_seq=3 ttl=52 time=179.9 ms # Ctrl-C aborts ping --- corel.com ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 179.9/189.7/209.1 ms # ping 206.47.20.85 PING 206.47.20.85 (206.47.20.85): 56 data bytes 64 bytes from 206.47.20.85: icmp_seq=0 ttl=52 time=179.8 ms 64 bytes from 206.47.20.85: icmp_seq=1 ttl=52 time=190.0 ms 64 bytes from 206.47.20.85: icmp_seq=2 ttl=52 time=170.0 ms # Ctrl-C aborts ping Should there be a success with: # ping 206.47.20.85 BUT a failure with the named address: ping corel.com Then DNS has not been acquired. Note that failure to stop ethernet service # /sbin/ifconfig eth0 down before starting a dialout, will commonly block DNS under ppp. To terminate the wvdial session, bring the action to the foreground (fg): # fg wvdial Ctrl-C to terminate: wvdial Caught signal #2! Attempting to exit gracefully... : secondary DNS address 207.172.3.9 : Terminating on signal 15. : Connection terminated. : Connect time 7.8 minutes. --> Disconnecting at Sat Jul 26 14:06:53 2003 10) The Debian distribution provides a utility: # pppconfig for setting up a chatscript for ppp initiation. Most dialers do use chatscripts and will produce similar records. Below is the record of a dial out initiated by: # pon : pppd 2.4.1 started by marv, uid 1000 : abort on (BUSY) : abort on (NO CARRIER) : abort on (VOICE) : abort on (NO DIALTONE) : abort on (NO DIAL TONE) : abort on (NO ANSWER) : abort on (DELAYED) : send (ATZ^M) : expect (OK) : ATZ^M^M : OK : -- got it : send (ATQ0V1E1M0S0=0W2&C1&D2+FCLASS=0^M) : expect (OK) : ^M : ATQ0V1E1M0S0=0W2&C1&D2+FCLASS=0^M^M : OK : -- got it : send (ATDT3019178111^M) : expect (CONNECT) : ^M : ATDT3019178111^M^M : CONNECT : -- got it : send (\d) : Serial connection established. : Using interface ppp0 : Connect: ppp0 <--> /dev/modem : kernel does not support PPP filtering Jul 26 14:08:39 stodolsklap kernel: PPP BSD Compression module registered Jul 26 14:08:39 stodolsklap kernel: PPP Deflate Compression module registered : local IP address 66.44.1.195 : remote IP address 208.59.89.132 : primary DNS address 207.172.3.8 11) GENERAL ITEMS If attemped insertion of a modem driver evokes a complaint like: unresolved symbol do_SAK_R9a0bcb74 then the kernel-headers using in compiling the modem drivers do not match those of your current kernel whose KernelVersion is displayed by: uname -r and whose kernel config file is often located at /boot/config-KernelVersion The section above "COMPILING DRIVERS, for Newbies" relates how to make corrections. There are definitely IPs whose login protocols are Linux hostile. If you cannot achieve a login, try another Internet Provider (IP). or ask for someone on discuss@linmodems.org to test your IP. For general upto date advice: http://linmodems.technion.ac.il/ http://linmodems.technion.ac.il/resources.html for a general PCI_ID database http://www.yourvote.com/pci/ The Vendor listing is http://www.yourvote.com/pci/vendors.txt with some Device IDs too. the original Linux winmodems URL is: http://linmodems.org with a mailing list on Winmodems: discuss@linmodems.org whose archives can be searched at: http://linmodems.technion.ac.il/wgindex.html There is an extensive modem database at: USB modem information: http://www.linux-usb.org/USB-guide/x332.html http://start.at/modem/ If your IP is MSN, the Microsoft Network, then for UserName in dialup scripts under Linux, instead use: MSN/UserName ---------- end FOLLOW UP STEPS --------------- END if [ "$BN" = "scanModem" ] ; then if [ "`pwd`" != "/" ] ; then cp "$RECORD"* ./ echo Please read: `ls ModemData.txt*` else echo " Please read $RECORD and $RECORD.2" fi if test -z $FAST ; then rm -r /tmp/modem/ &> /dev/null fi else echo -------------- ending SCANMODEM section ---------------- >>$RECORD fi echo