--- /dev/null
+#!/bin/bash
+echo
+NOTE=" ONLY use scanModem downloaded as: http://linmodems.technion.ac.il/packages/scanModem.gz"
+UPDATE="2005_June_02"
+cat<<END>/dev/null
+
+ Browse http://linmodems.technion.ac.il and
+ download scanModem.gz . Within a Linux partition only:
+ gunzip scanModem.gz
+ To make it executable:
+ chmod +x scanModem
+ Run diagnositics with:
+ ./scanModem
+
+This following is admittedly a hodge podge of historically entered code bits and diverse contributions.
+The maintainers weekly updates are based on User's problems and Other's expert advice.
+These are in the Archives at http://www.linmodems.org with
+a searchable copy at http://linmodems.technion.ac.il/
+Maintainer Marvin Stodolsk y (MarvS) does occassionally simplify this informal code heap.
+
+Outputs are written to a newly created folder Modem/
+The ModemData.txt therein has the major diagnostic output.
+It is overly VERBOSE by design, so that all information Potentially Usefull is presented.
+This enables more experienced discuss@linmodems.org Volunteers
+to pick out the bits cogent to a Novices query, without having to search elsewhere.
+Thus help queries from Novices can be quickly returned with minimal effort.
+
+scanPCI written by Chris Hebeisen is the predecessor of scanModem. It was written to serve
+within the ltmodem software support packages at http://ltmodem.heby.de . The role is now
+fullfilled by this this script, but called by name "scanmodem", to limit non-relevant output in
+the ltmodem package environment.
+
+END
+
+echo UPDATE=$UPDATE
+# BaseName can be inherited from the ltmodem script ./build_module or Installers or checkout
+if test -z "$BN" ; then BN=`basename $0` ; fi
+if [ "$BN" = "scanModem" ] ; then echo $NOTE ; fi
+
+# for script testing, with $2 and $3 format VendorID:DeviceID
+if [ "$1" = "test" ] ; then
+ TST=1
+ PCIDEV="$2"
+ SUBSYS="$3"
+ DISTR="$4"
+ SYS="$5"
+ GCCmajor="$6"
+ CPU="$7"
+fi
+
+# Short term files have names 0tmpfile.1 2 3 etc.
+if test -z "$TMPM" ; then
+ if test -d /dev/shm ; then
+ # use /dev/shm RAM space if possible for transient writes
+ SHM=`ls -dl /dev/shm | cut -d' ' -f1`
+ if [ "$SHM" = "drwxrwxrwt" ] ; then
+ TMPM=/dev/shm/0tmpfile
+ else
+ TMPM=0tmpfile
+ fi
+ fi
+else
+ TMPM=0tmpfile
+fi
+echo > $TMPM
+echo
+# conditional when scanmodem is used in ltmodem.deb or .rpm installation
+# with stops disabled
+mkdir -p Modem
+if ! [ "$BN" = "scanModem" ] ; then
+ FAST=yes
+ RECORD2=/dev/null
+else
+ RECORD2=Modem/YourModem.txt
+ 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
+fi
+if [ "`pwd`" = "/" ] && ! [ "$ENVIR" = "rpm" ] ; then
+ cat<<END
+
+ $0 should NOT be run in the / directory!!
+ Copy scanModem to /root/ or /tmp/ of some /home/User/ folder.
+ Exiting now
+
+END
+ exit
+fi
+
+if test -z "$RECORD" ; then
+ mkdir -p Modem
+ RECORD=Modem/ModemData.txt
+ echo > $RECORD
+else
+ echo ------------ beginning SCANMODEM section ------ >>$RECORD
+fi
+echo > $RECORD2
+
+# Defining other needed variables, there may be testing inputs
+if test -z "$SYS" ; then
+ SYS=`uname -r`
+fi
+FILTER="$SYS"_
+# FILTER needed for Debian style distros
+
+# SYS=2.6.8.1-3-686
+MAJOR=`echo $SYS | cut -d. -f1-2`
+Ktest1=`echo $SYS | cut -d- -f1`
+Ktest2=`echo $Ktest1 | cut -d. -f4`
+KERNEL_RELEASE=`echo $SYS | cut -d. -f3-`
+KERNEL_RELEASE_NUM=`echo $KERNEL_RELEASE | sed 's/^\([0-9][0-9]*\).*/\1/'`
+if test -n "$Ktest2" ; then
+ KVER=`echo $SYS | cut -d. -f1-3`
+ KEXT=.$Ktest2
+ BASE=`echo $SYS | cut -d- -f1`
+ LOCAL=`echo $SYS | cut -d- -f2-`
+ PVER="$BASE"_"$LOCAL"
+else
+ KVER=`echo $SYS | cut -d- -f1`
+ KEXT=`echo $SYS | cut -d- -f2-`
+ PVER="$KVER"_"$KEXT"
+fi
+# PVER needed for rpm underscore syntax
+
+if test -z "$CPU" ; then
+ CPU=`uname -m`
+fi
+# CPU=i686
+# Define version, currently 8.26a9, within ltmodem CVS maintained by Mark Spieth
+LT_VERSION=8.31a10
+
+if test -z "$DISTR" ; then
+ STEM=`cat /etc/issue | cut -c 2- | cut -d' ' -f1`
+ distro=`ls /etc/* | grep $STEM | grep version | cut -d_ -f1 | cut -d- -f1 | cut -d/ -f3`
+ # Acquire distribution data
+ DISTRO_FILES="redhat-release SuSE-release mandrake-release conectiva-release \
+ bluepoint-release slackware-version gentoo-release debian_version knoppix-version \
+ fedora-release xandros-desktop-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
+ if [ -n "$DISTRO" ] && [ "$DISTRO" = "fedora-release" ] ; then
+ FEDORA=1
+ else
+ DISTR=`ls /etc/$i | cut -d/ -f3 | cut -d"-" -f1`
+ fi
+ if [ "$DISTR" = "debian_version" ] ; then
+ DISTR=debian
+ fi
+ DVERSION=`cat /etc/$i`
+ fi
+ done
+fi
+
+if [ -z "$DISTRO" ] && [ -z "$DISTR" ] ; then
+ DISTR="Not_identified"
+fi # DISTR
+if [ -f /etc/issue ] ; then
+ ISSUE=`cat /etc/issue | cut -d' ' -f1-2`
+fi
+if [ "$BN" = "scanModem" ] ; then
+ cat<<END>Modem/UNSUBSCRIBE.txt
+ For instructions to UNSUBSCRIBE from discuss@linmodems.org,
+ send an email to: discuss-help@linmodems.org
+END
+ cat<<END>>$RECORD
+
+ DO use the following line as the email Subject Line, to alert cogent experts:
+ $BN, $ISSUE kernel $SYS
+ Occassionally reponses are blocked by an Internet Providers mail filters.
+ So do in a day also check the Archived responses at DISCUSS@linmodems.org
+Code updated on: $UPDATE
+------------ -------------- System information ------------------------
+`cat /etc/issue | cut -d'\' -f1`
+ distro=$distro
+ on System with processor: $CPU
+ currently under kernel: $SYS
+END
+fi
+if [ "$DISTR" = "slackware" ] ; then
+ echo " m.mohr@laposte.net will help with Slackware problems" >>$RECORD
+fi
+if [ "$CPU" = "x86_64" ] || [ "$CPU" = "x86_64-smp" ] ; then
+ cat<<END>>$RECORD
+
+ See success reports on a softmodem installation on AMD Athlon 64 system
+ http://linmodems.technion.ac.il/archive-fourth/msg02592.html - slmodem compatible
+ http://linmodems.technion.ac.il/archive-fourth/msg03581.html - Conexant hsfmodem
+
+END
+fi
+if [ "$MAJOR" == "2.6" -a $KERNEL_RELEASE_NUM -ge 10 ]; then
+ cat<<END>>$RECORD
+
+There are emerging complications under 2.6.10 and later kernels. Concerning code for:
+Smartlink slmodem :
+ slmodem-2.9.9d.tar.gz at http://linmodems.technion.ac.il/packages/smartlink/
+ has the current fixes. Related messages are:
+ http://www.datiku.com/documents/2610_migration.php
+ http://www.ussg.iu.edu/hypermail/linux/kernel/0409.3/0345.html
+ http://linmodems.technion.ac.il/archive-fourth/msg03736.html .
+ http://linmodems.technion.ac.il/packages/smartlink/ has an upgrab-winmodem.tar.gz,
+ providing a driver to alleviate inappropriate capture of a winmodem by a serial port driver.
+Lucent/Agere DSP/ltmodem:
+ http://linmodems.technion.ac.il/archive-fourth/msg03733.html
+Concerning Intel-536ep and 537
+ http://www.ubuntulinux.org/wiki/IntelFiveThreeSixEPModemHowto/
+ http://linmodems.technion.ac.il/archive-fifth/msg00280.html
+ http://linmodems.technion.ac.il/archive-fifth/msg00881.html
+
+END
+fi
+
+ls /boot/config* &> $TMPM
+if grep config $TMPM >/dev/null ; then
+ if grep "CONFIG_REGPARM=y" /boot/config*>/dev/null ; then
+ cat<<END>>$RECORD
+
+ The kernel-$SYS was compiled with CONFIG_REGPARM, providing more compact and faster code.
+
+END
+ fi
+fi
+if [ "$SYS" = "2.4.25-1-multimedia-686" ] ; then
+ cat<<END>>$RECORD
+
+ For the Debian derived DeMudi multimedia distribution, the kernel-headers do Not faithfully
+ represent the installation kernel version 2.4.25-1-multimedia-686. This may block compilation
+ of certain drivers. To compile auxiliary drivers,
+ update to a more recent Debian kernel and matching kernel-headers. Subsequently compile
+ modem drivers under the new kernel. For the Lucent/AgereSystems DSP modem, a driver pair
+ and instructions are included in ltmodem-2.4.25-1-multimedia-686.tar.gz
+ at http://linmodems.technion.ac.il/packages/ltmodem/Demudi/
+
+END
+fi
+
+GCC_INPUT=`cat /proc/version | sed -e 's/)/ /g' | sed -e 's/(/ /g'`
+# sed to remove ( and )
+GCC_PC=`for i in $GCC_INPUT ; do echo $i ; done | grep -A2 gcc | grep -A1 ersion | grep -v ersion`
+# Picks our version following gcc
+echo " The kernel was assembled with compiler: $GCC_PC">> $RECORD
+GCC_TEST=`echo $GCC_PC | cut -d. -f1`
+echo $GCC_TEST > $TMPM
+if grep "-" $TMPM >/dev/null ; then
+ GCCmajor=`echo $GCC_TEST | cut -d- -f2`
+else
+ GCCmajor=$GCC_TEST
+fi
+
+if test -z "$GCC" ; then
+ # could be test input
+ GCC=`gcc -dumpversion`
+ GCCs=`echo $GCC | cut -d. -f 1-2`
+fi
+if test -z "$GCC" ; then
+ echo " a $GCCmajor package must be installed to support driver compiling">>$RECORD
+ GCC=none
+else
+ echo " with current System compiler GCC=$GCC">>$RECORD
+ GCCsys=`echo $GCC | cut -d. -f1-`
+ if [ -L /usr/bin/gcc ] ; then
+ echo " /`ls -l /usr/bin/gcc | cut -d/ -f2-`" >>$RECORD
+ fi
+fi
+echo >>$RECORD
+echo "Checking for kernel-headers needed for compiling.">>$RECORD
+SRCS=`ls -d /usr/src/lin* /usr/src/ker* /lib/modules/$SYS/build 2>/dev/null`
+if test -n "$SRCS" ; then
+ for d in $SRCS
+ do
+ if test -f $d/include/linux/version.h ; then
+ if grep $SYS $d/include/linux/version.h >/dev/null ; then
+ echo " kernel-headers have base folder $d">>$RECORD
+ fi
+ fi
+ done
+else
+ cat<<END>>$RECORD
+Kernel-header resources are not evident.
+Within your Linux distributions' installation CD or online resource (and mirrows), search for :
+ Distribution PackageName OnLine
+ ----------------------------------------------------------------------
+ Debian kernel-headers-$SYS http://www.debian.org/distrib/packages or install CD
+ Ubuntu linux-headers-$SYS http://http://packages.ubuntu.com/ or install CD
+ Debian & Ubuntu will also require installation of kernel-kbuild package
+ Mandrake kernel-source-$SYS If not present on install CDs search
+ http://mirror.switch.ch/ftp/mirror/mandrake/official/10.0/i586/Mandrake/RPMS/
+ http://rpms.mandrakeclub.com/rpms/mandrake/official/LByName.html, or other mirrors.
+ SuSE kernel-source-$SYS , kernels are named k_deflt
+One of which must be installed if compiling drivers to match kernel $SYS proves necessary.
+Within the output Modem/ folder, read CompilingDrivers.txt for details.
+
+END
+fi
+echo >>$RECORD
+
+# Check for /dev/modem link
+if [ -L /dev/modem ] ; then
+ echo " Modem symbolic link is: /`ls -l /dev/modem | cut -d/ -f2-`" >>$RECORD
+else
+ echo " A /dev/modem symbolic link is not set.">>$RECORD
+fi
+
+if test -d /dev/tts ; then
+ echo " Checking for /dev/tts/ devices" >> $RECORD
+ ls -l /dev/tts/ >> $RECORD
+ echo >> $RECORD
+fi
+if test -f /proc/bus/usb/devices ; then
+ if grep odem /proc/bus/usb/devices>/dev/null ; then
+ grep odem /proc/bus/usb/devices >> $RECORD
+ # S: Product=U.S. Robotics 56K Faxmodem USB
+ if grep "USB HSF Modem" /proc/bus/usb/devices>/dev/null ; then
+ echo " Download the hsfmodem package from http://www.linuxant.com/drivers">> $RECORD
+ fi
+ else
+ echo " USB modem not detected.">> $RECORD
+ fi
+else
+ echo " /proc/bus/usb/devices file not present, barring USB modem query. ">> $RECORD
+fi
+echo >> $RECORD
+
+PNP=`dmesg | grep "IRQ XX" `
+if test -n "$PNP" ; then
+ cat<<END>> $RECORD
+
+ If after boot up
+# dmesg | grep "IRQ XX"
+displays:
+ IRQ XX nobody cared
+ a change in the bootup BIOS may be necessary to a non-PNP choice is likely necessary.
+
+END
+fi
+
+if [ "$DISTR" = "mandrake" ] ; then
+ cat<<END | tee -a $RECORD
+
+ For Mandrake 9.1 later, installation of the pciutils.rpm package providing lspci is necessary.
+ The installed utility lspcidrake is NOT an adequate alternate for scanModem support.
+
+END
+fi
+
+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
+# ending lspci test section
+
+# Acquire PCI bus slots.
+echo Modem > $TMPM
+echo modem >> $TMPM
+echo "erial controller" >> $TMPM
+# filering for modem
+PCIBUS=`$LSPCI 2>/dev/null | grep -f $TMPM | cut -d' ' -f1`
+BUS2=`$LSPCI -n 2>/dev/null | grep " 07..: " | cut -d' ' -f1`
+# add CLass 07 devices if not already recognized
+echo "$PCIBUS" > $TMPM.1
+if ! [ "$BUS2" = "" ] ; then
+ for i in $BUS2
+ do
+ if ! $LSPCI 2>/dev/null | grep $i | grep "FIR Port" >/dev/null ; then
+ # exclude Infrared controllers
+ if ! grep $i $TMPM.1 >/dev/null ; then
+ # exclude already captured PCIBUS
+ PCIBUS="$PCIBUS $i"
+ fi
+ fi
+ done
+fi
+if test -n "$TST" ; then
+ PCIBUS=`echo $PCIBUS | cut -d' ' -f1`
+fi
+
+if test -z "$PCIBUS" && [ -z "$PCIDEV" ] ; then
+ # Display all PCI devices only if no candidates.
+ echo --------- lspci scan ---------------- >>$RECORD
+ echo " PCI_bus">>$RECORD
+ $LSPCI 2>/dev/null >>$RECORD
+ echo ------------------------------------- >>$RECORD
+
+# if no modem candidates AND not PCIDEV input test
+ if $LSPCI 2>/dev/null | grep "udio controller" | grep M5451 >/dev/null ; then
+ AUDIO=`$LSPCI 2>/dev/null | grep "udio controller" | cut -d' ' -f2-`
+ cat<<END>>$RECORD
+
+ Though not displayed, an embedded soft modem may reside in this Audio card:
+ $AUDIO
+ which sadly is not yet supported under Linux. However a low level driver may
+ in the future become available, which provide access to the higher level COMM
+ functions already avialable in the SmartLink slmodemd.
+ Browse the Modem/Slmodem.txt for some details.
+
+END
+ fi
+
+ cat<<END>>$RECORD
+
+ A modem was not detected among the above PCI devices.
+ This indicates that the modem, if present has a non-standard or ISA bridge.
+ Please follow the directions in Modem/SoftModem.txt 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.
+
+ The IBM mwave modem does have a driver within 2.6.n kernel+module releases. If is at:
+ /lib/modules/$AYA/kernel/drivers/char/mwave/mwave.ko
+and can be loaded only if Mwave hardware is present Test with:
+ # su - root
+ followed by
+ # modprobe wmave
+ If successful see:
+ http://tedfelix.com/Mwave/
+ http://www.linuxdocs.org/HOWTOs/mini/ACP-Modem/ , section 2.4 and later.
+ http://www.freenetpages.co.uk/hp/mjbou/dwtpul.html
+ http://tedfelix.com/Mwave/
+
+ A failure response has output like:
+ FATAL: Error inserting mwave (/lib/modules/2.6.10-1-686/kernel/drivers/char/mwave/mwave.ko): Input/output error
+indicating absence of an Mwave modem
+
+END
+else
+
+$LSPCI | grep audio >>$RECORD
+echo >>$RECORD
+# The 2nd Table in Modem/SoftModem.txt is parsed if a soft modem controller is resident
+cat<<END>Modem/SoftModem.txt
+
+ Soft Modem Information
+
+The earlier generations of modems had chips with digital signal processing (DSP) capability in which
+most of the total modem effort proceeded. The "soft modem" is a generic name for modems
+which lack DSP. Rather, the CPU does almost all the signal processing as directed by software code.
+There are a few soft modems which are fully identified by the primary PCI ID of the modem card,
+such as the Agere Systems 11c1:048(a,b,c,d) series.
+
+The larger family is more troublesome, for identification of supporting software.
+They are comprised of a primary modem controller which can host a variety of Subsystems.
+Both the primary PCI ID and "mc97 codec" written in a Subsystem firmware chip are required,
+for assessing support under Linux. Only subsequently is the Subsystem PCI ID useful, for record keeping.
+
+The scanModem script contains five routines for acquiring the critical mc97 codec identification:
+1) a modem driver independent test, only usefull for some of the earliest soft modems,
+ described at the end of this file;
+2) a test using modem drivers already on your System, as part of the ALSA (Advanced Linux Sound
+ Architecture) software package ; See Slmodem-ALSA.txt for details.
+3) a test requiring the SmartLink slamr.ko driver: see Slmodem.txt ;
+4) comparison with PCI IDs with codecs historically gathered and stored within scanModem;
+5) In case 1-4 are not adequate, there are the following instructions for running ATI queries under Microsoft windows.
+Chipset information may be obtained under Microsoft Windows through:
+ 1) Start > Settings > Control Panel > Classical View (for WinXP) > Modem , or alternatively,
+ Start > Settings > Control Panel > Classical View (for WinXP) > System > Devices > Modem
+ Do the modem diagnostics test, if available, looking for manufacturer chipset,
+ It is within information output in lines: ATI - specifications
+ 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. Here is an example
+ ATI3 - Agere SoftModem Version 2.1.22
+ ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27
+ successfully identifying an Agere SoftModem chipset, both by name and through
+ the:softmodem SIL ID: AC97 ID:SIL REV:0x27
+
+ The IBM mwave modem cannot be detected by scanModem.
+ But the mwave driver is included in 2.6.n kernel releases. So try
+ # modprobe mwave
+ Either the module will load, or the absence of the modem will be indicated by:
+FATAL: Error inserting mwave (/lib/modules/2.6.10-1-686/kernel/drivers/char/mwave/mwave.ko): Input/output error
+See http://www.linuxdocs.org/HOWTOs/mini/ACP-Modem/ for details on this modem.
+
+Subsystems for softmodems are primarily made by Silicon Labs (SIL),
+under contract to companies like Intel, Agere Systems, Motorola etc.
+In the Table below,
+The ChipMadeBy does NOT imply software support directly from that manufacturer.
+
+The chart of information below is largely harvested from messages to discuss@linmodems.org.
+ A codec_indent like REV:0x27 is reported by diagnostics under Microsoft, as illustrated above.
+The matching designation like SIL27 are translations under Linux,
+ output by a diagnostic of the slamr.ko driver, from the SmartLink slmodem software.
+The SIL is an abbreviation for Silicon Laboratorys Inc., which provides Subsystems for many total modem assemblies.
+SML is used below as abbreviation for SmartLink Inc., with official driver resources at
+ http://www.smlink.com/main/index1.php?ln=en&main_id=40 and recent patches provided at:
+ http://linmodems.technion.ac.il/packages/smartlink/
+
+ codec_ident ID translation driver sources
+--------------------- ------------------ -------------------------
+ 0x21 SIL21 PCTel for 2.4.n kernels, pctel-2.7.9 at http://linmodems.technion.ac.il/pctel-linux,
+ and SML for 2.4.n or 2.6.n kernels
+ 0x23 SIL23 PCtel same as SIL21
+ 0x22 SIL22 SML
+ 0x24 SIL24 Broadcom, use SML drivers
+ ???? BCM64 Broadcom, use SML in ALSA mode, but only under the Intel ICH modem controllers.
+0x25 SIL25 Intel 537AA " or SML
+???? INT65 Intel 537EA http://linmodems.technion.ac.il/packages/Intel/537/ or SML
+0x26 SIL26 Silicon Integrated Systems (SiS), use SML drivers
+0x27 SIL27 AgereSystems(AS), use SML needed under 2.6.n kernels,
+ but for 2.4.n, there are also AS drivers through http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52698
+ ???? CXT(21,22,23,29,41 and others) Conexant - http://www.linuxant.com/drivers, the hsfmodem package
+ --------------------------------------------------------------------------------
+ If a novel identifier is displayed during diagnostics, please report to discuss@linmodems.org
+
+A rough/practical guide is first given, with some qualifications and exceptions to follow:
+ SILnm (n,m digits) are SML supportable;
+ CXTnm are ONLY supported by the http://www.linuxant.com/drivers, the hsfmodem package ;
+ INTnm are supported by Intel drivers and perhaps slmodemd with ALSA support;
+ BCMnm, INT65 (and similar name styles) have had successes with SmartLink slmodem in ALSA mode.
+ See the companion Slmodem-ALSA.txt for details.
+Qualifications to the Table below relate to Linux software support for soft modem controllers.
+In particular, no software package provides support for all soft modem controllers.
+
+Primary
+PCI_IDs Name Possible support by:
+--------------- ----------------------------- -------------------------
+8086:1080 ac97 controller i .
+8086:2416 82801AA ICHAA > + A a p c .
+8086:2426 82801AB ICHAB > + A a .
+8086:7186 > c .
+8086:7196 82440 Banister > + A a c .
+8086:2446 82801BA ICH2 > + A a p c .
+8086:2486 82801CA/CAM ICH3 > + A a p c i .
+8086:24c6 82801DB ICH4 > + A a c i b .
+8086:24d6 82801EB ICH5 > + A c i .
+8086:266d 82801EB ICH6> + c .
+8086:xxxx types above are from Intel
+
+1039:7013 SIS 630 > + a p c i .
+1039:7018 SIS 960 > + i .
+10de:01c1 Nvidia Corp > + i .
+10de:00d9 Nvidia Corp > A c .
+1106:3068 VIA > + a p c i .
+1022:7446 AMD AC_LINK > + .
+10b9:5450 ALI 5450 >
+10b9:5451 ALI 5451 >
+10b9:5453 ALI 5453 AC-Link > p c .
+1025:5453 ALI 5453 AC-Link > c .
+10b9:5457 ALI 5457 AC-Link > + p c i .
+1025:5457 ALI 5457 AC-Link > c . .
+e159:0001 TigerJet > i .
+1002:434d ATI > T a c i .
+1543:3052 SI3052 > i .
+10ec:8197 RealTek > + .
+ --------------------------------------------------------
+The following letters indicate compatibility for the modem controller,
+BUT do NOT gaurantee support by the software.
+Support MUST be ascertained by identifing the soft modem codec.
+
+ + SmartLink (SML) - http://www.smlink.com, the slmodem-2.9.9 series
+ A SML slmodem-2.9.9d-alsa software supporting the ALSA intel8x0m-modem driver
+ Soft modems with the Broadcom codec BCM64 should thus be served.
+ T SML slmodem-2.9.9d-alsa software supporting the ALSA snd-atiixp-modem driver
+With the above SML software, port creation is controlled by a daemon, slmodemd,
+rather than being a static feature of the /dev/ files.
+ a AgereSystems only under 2.4.n
+ p PCtel support at http://pctelcompdb.sourceforge.net/
+ c Conexant/Rockwell - http://www.linuxant.com
+ i Intel - http://www.intel.com
+ b Broadcom, under 2.4.n kernels, with ALSA code under 2.6.n
+ for details on A and T slmodem implementations, see Modem/ALSA.txt
+ ===========================================================
+
+To achieve codec readouts for SmartLink (SML) compatible modem controllers listed above,
+follow the directions in Slmodem.txt.
+
+The 1) driver independent test, some details
+During bootup, kernel diagnostics on the System are stored for later display by:
+ dmesg
+This information may include a SIL_id of modems under AC97/MC97 Controllers,
+depending upon the type of bridging of the modem card to the motherboard.
+The scanModem script processes dmesg output to capture AC97 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: AC97 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
+ # detected modem devices
+
+ echo "Modem candidates are at PCI_buses: $PCIBUS">>$RECORD
+ echo PCIBUS=$PCIBUS
+fi
+# Start modem displays
+for i in $PCIBUS
+do
+ if $LSPCI -n 2>/dev/null | grep $i | grep Class >/dev/null ; then
+ CLASS0=`$LSPCI -n 2>/dev/null | grep $i | cut -d' ' -f3-4`
+ else
+ CLASS0=`$LSPCI -n 2>/dev/null | grep $i | cut -d' ' -f2-3`
+ fi
+ # $LSPCI -n 2>/dev/null | grep $i | cut -d' ' -f2-4 > $TMPM
+ # echo "0000:00:02.6 0703: 1039:7013 (rev a0)" > $TMPM
+ CLASS="Class $CLASS0"
+ NAME=`$LSPCI -v 2>/dev/null | grep $i | cut -d' ' -f2-`
+ if test -n "$TST" ; then
+ echo Using the test inputs.
+ cat<<END | tee -a $RECORD
+
+ Substituted test inputs:
+ PCIDEV=$PCIDEV
+ SUBSYS=$SUBSYS
+
+END
+ else
+ PCIDEV=`echo $CLASS | cut -d' ' -f3`
+ cat<<END | tee -a $RECORD
+
+Providing detail for device at $i
+ with vendor-ID:device-ID
+ ----:----
+$CLASS $NAME
+END
+ fi
+ Vendor=`echo $PCIDEV | cut -d: -f1`
+ Device=`echo $PCIDEV | cut -d: -f2`
+ # Now Subsystem info
+ # It would be more elegant in the above queries to select -s PCI_bus.
+ # But for older lspci versions, there is failure of lspci -s PCI_bus
+ # when the PCIBUS has an "f" as on some Acer motherboards with a PCI slot 00:1f.6
+ SUBNAME=`$LSPCI -v 2>/dev/null | grep -A1 $i | grep Subsystem | cut -d: -f2-`
+ if test -n "$TST" ; then
+ echo "Using test $SUBSYS Subsystem"
+ # skip if test SUBSYS was input
+ else
+ SUBSYS=`$LSPCI -nv 2>/dev/null | grep -A1 $i | grep Subsystem: | cut -d' ' -f2`
+ echo " SubSystem $SUBSYS $SUBNAME" | tee -a $RECORD
+ $LSPCI -nv 2>/dev/null | grep -A2 $i | grep -v Class | grep -v Subsystem: | tee -a $RECORD
+ IRQ0=`$LSPCI -v 2>/dev/null | grep -A2 $i | grep IRQ | grep "IRQ 0"`
+ if test -n "$IRQ0" ; then
+ cat<<END>>$RECORD
+
+ The modem will NOT function because of interrupt assignment: IRQ 0
+ 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 changes IRQ assignment.
+
+END
+ fi
+ fi
+ if test -n "$SUBSYS" ; then
+ SUBven=`echo $SUBSYS | cut -d: -f1`
+ SUBdev=`echo $SUBSYS | cut -d: -f2`
+ fi
+ cat<<END | tee -a $RECORD
+
+ -----PCI_IDs------- --CompilerVer-
+ Feature List: Primary Subsystem Distr KernelVer kernel default CPU
+ ./scanModem test $PCIDEV $SUBSYS $DISTR $SYS $GCC_PC $GCC $CPU
+
+END
+ ## Checking for major chipset types
+ if grep $PCIDEV Modem/SoftModem.txt >/dev/null ; then
+ # Check for support under the Controller of the unknown Subsystem chip
+ CNTRL=`grep $PCIDEV Modem/SoftModem.txt | cut -d">" -f1`
+ cat<<END | tee -a $RECORD
+
+ The soft modem Subsystem operates under a controller
+ $CNTRL
+ capable of supporting under Linux AT LEAST modem Subsystem chips from manufacturers:
+END
+echo >>$RECORD
+ if grep $PCIDEV Modem/SoftModem.txt | grep "p " >/dev/null ; then
+ echo " Pctel" | tee -a $RECORD
+ SOFT=PCTEL
+ fi
+ if grep $PCIDEV Modem/SoftModem.txt | grep "b " >/dev/null ; then
+ echo " Broadcom" | tee -a $RECORD
+ SOFT=$SOFT" BRD"
+ fi
+ if grep $PCIDEV Modem/SoftModem.txt | grep "a " >/dev/null ; then
+ echo " AgereSystems" | tee -a $RECORD
+ SOFT=$SOFT" AGR"
+ AGR=1
+ fi
+ if grep $PCIDEV Modem/SoftModem.txt | grep "c " >/dev/null ; then
+ echo " Conexant" | tee -a $RECORD
+ SOFT=$SOFT" CNX"
+ CNX=1
+ fi
+ if grep $PCIDEV Modem/SoftModem.txt | grep "i " >/dev/null ; then
+ echo " Intel" | tee -a $RECORD
+ SOFT=$SOFT" INTEL537"
+ AAEA=1
+ INTEL537=1
+ fi
+ echo $SOFT>$TMPM.soft
+ if grep $PCIDEV Modem/SoftModem.txt | grep "+ " >/dev/null ; then
+ echo " Smartlink" | tee -a $RECORD
+ SMLok=" Driver slamr from the SmartLink slmodem package can identify the soft modem codec."
+ smart=may
+ fi
+ if grep $PCIDEV Modem/SoftModem.txt | grep "A " >/dev/null ; then
+ echo >> $RECORD
+ echo " Smartlink software in ALSA mode may support this modem " >> $RECORD
+ Smart=ALSA
+ fi
+ # finished softmodem chip candidates
+ if grep $PCIDEV Modem/SoftModem.txt>/dev/null ; then
+ SOFT=1
+ fi
+ # Decisive Subsystem IDENTS
+ echo >$TMPM.3
+ if [ "$SUBven" = "134d" ] || [ "$SUBven" = "14e4" ] ; then
+ echo Use the SmartLink slmodem software for support. | tee -a $RECORD
+ IDENT=PCTEL
+ if [ "$SUBven" = "14e4" ] ; then
+ IDENT=BCM64
+ echo For this Broadcom subsystem modem, the slmodemd daemon must be used in ALSA mode | tee -a $RECORD
+ echo " slmodemd --alsa --country=YOURS modem:1" | tee -a $RECORD
+ fi
+ elif [ "$SUBven" = "14f1" ] ; then
+ # Conexant HSF
+ echo ONLY the hsfmodem software from http://www.linuxant.com/drivers can support this Conexant subsystem soft modem | tee -a $RECORD
+ IDENT=CXT
+ else
+ echo " The Subsystem PCI id does not itself identify the modem Codec.">>$RECORD
+ fi
+
+ # Choose driver for codec test
+ if [ "$PCIDEV" = "1002:434d" ] ; then
+ MODULE=snd-atiixp-modem
+ MCONFIG=ATIIXP_MODEM
+ elif [ "$PCIDEV" = "1106:3068" ] ; then
+ MODULE=snd-via82xx-modem
+ MCONFIG=VIA82XX_MODEM
+ else
+ MODULE=snd-intel8x0m
+ MCONFIG=INTEL8X0M
+ fi
+ MOD_=`echo $MODULE | sed -e 's/-/_/g'`
+ MPLACE=`find /lib/modules/$SYS/ -name $MODULE.ko`
+ # Rhywek <rhywek@o2.pl>
+
+# case $PCIDEV in
+# "1002:434d") MODULE=snd-atiixp-modem ;;
+# "1106:3068") MODULE=snd-via82xx-modem ;;
+# *) MODULE=snd-intel8x0m ;;
+# esac
+
+ # Check for driver in kernel or modules
+ echo >>$RECORD
+ if grep $MCONFIG /boot/config-$SYS | grep "=y" > /dev/null ; then
+ echo " Driver $MODULE is included in the kernel. " >>$RECORD
+ ASOUND=1
+ elif test -n "$MPLACE" ; then
+ echo " Driver $MODULE may enable codec acquisition " >>$RECORD
+ if grep $MOD_ /proc/modules >/dev/null ; then
+ ASOUND=1
+ elif [ "$UID" = "0" ] ; then
+ /sbin/modprobe $MODULE
+ ASOUND=1
+ else
+ echo This line is strangely necessary >/dev/null
+ cat<<END
+
+ To enable capture of codec information, please briefly login as Root:
+ su - root
+ Load $MODULE with:
+ modprobe $MODULE
+ Exit Root status
+ exit
+ and rerun
+ ./scanModem
+
+END
+ exit
+ fi
+ else
+ echo " $MODULE support not included in $SYS kernel+modules " >>$RECORD
+ fi
+
+# I guess you mean '/proc/asound/cardN/codec97#0/mc97*'.
+# If it does not exist after intel8x0m loading this may indicate that device
+# was not initialized, for instance because it is in use by other driver,
+# like hsf*, slamr or even serial - device has 0703 pci class - COMMUNICATION_MODEM.
+ if test -n "$ASOUND" ; then
+ MC97=`find /proc/asound -name "mc97*" | grep -v regs`
+ # MC97=`find /proc/asound -name 'mc97#[0-3]-[0-3]'` # Sasha's alternate
+ if ! test -n "$MC97" ; then
+ echo " /proc/asound lacks an mc97 codec file.">>$RECORD
+ else
+ echo " === Begin mc97 codec query ===">>$RECORD
+ for codec in $MC97
+#Also note there are new modems in the wild equipped by SiLabs 3054/5 codec,
+#it works with ALSA drivers, but many of such codecs encode codec vendorid1,
+# vendorid2 registers not with "traditional" "SILXX", but with other values
+#(few "AGRXX" was reported already, and "BCM64" is from this group too)
+ do
+ if grep 0x42434d64 $codec >/dev/null ; then
+ echo " $SUBSYS has a Broadcom BCM64 codec" >>$RECORD
+ IDENT1=BCM64
+ elif grep Conexant $codec >/dev/null ; then
+ NM=`grep Conexant $codec | cut -d' ' -f2-`
+ grep Si3036 $codec >>$RECORD
+ echo " $SUBSYS has a $NM" >>$RECORD
+ IDENT1=CXT
+ elif grep "Si3036/8 rev " $codec >/dev/null ; then
+ grep Si3036 $codec >>$RECORD
+ revision=`for i in $INPUT ; do echo $i ; done | grep -A1 rev`
+ REV=`echo $revision | cut -d" " -f2`
+ echo " Subsystem $SUBSYS has a SIL2$REV codec" >>$RECORD
+ IDENT1=SIL2$REV
+ elif grep "Motorola (rev 4 IIRC)" $codec >/dev/null ; then
+ echo " $SUBSYS has a Motorola codec " >>$RECORD
+ IDENT1=ALSA
+ cat<<END>/dev/null
+
+> RE:new modems in the wild equipped by SiLabs 3054/5
+> Should slmodem in ALSA mode should be recommended for these cases uniformly?
+
+Yes, but note that vendor's drivers (if exist) may work too, at least I think
+that Agere driver supports 'AGRxx' codecs.
+END
+ else
+ echo File $codec >>$RECORD
+ echo " --------" >>$RECORD
+ cat $codec >>$RECORD
+ echo " --------" >>$RECORD
+ if grep 3054/5 $codec >/dev/null && grep snd_intel8x0m >/dev/null ; then
+ # for non SILnm codecs such as AGRnm and INT65
+ echo " Try using slmodemd in ALSA mode with driver snd-intel8x0m" >>$RECORD
+ fi
+ fi
+ codec=
+ done
+ echo " === End mc97 codec query ===">>$RECORD
+ fi # codec aquisition
+ fi # module loaded
+
+echo >$TMPM
+echo >$TMPM.1
+echo >> $RECORD
+echo " Beginning check for older ac97_codec modems." >> $RECORD
+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 Modem codec" $TMPM.3 > /dev/null ; then
+ ac97_codec=1
+ echo " ----- Raw output ------" >> $RECORD
+ # unusual case: ac97_codec: AC97 Modem codec, id: CXT41 (Unknown)
+ grep "AC97 Modem codec" $TMPM.3 | tee -a $RECORD
+fi
+# manual test
+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`
+ CODEC=$codec_id
+ else
+ SIL_id=$codec_id not processed
+ fi
+ else
+ SIL_id=$codec_id
+ fi
+ if test -f $TMPM.3 ; then
+ cat<<END >>$RECORD
+
+--- processed from dmesg -----
+`cat $TMPM.3`
+------------------------------
+ SIL_id=$SIL_id
+
+END
+ fi # TMPM.3
+done # end of for
+fi # codec_id
+if test -z "$SIL_id" ; then
+ echo " An older ac97_modem codec was not detected.">>$RECORD
+ echo >>$RECORD
+else
+ echo " An ac97_modem codec was detected.">>$RECORD
+fi # SIL_id
+
+# slamr.ko test
+if [ -x /bin/dmesg ] ; then
+ DMESG=/bin/dmesg
+ SLAMR=`find /lib/modules/ -name slamr.* -mindepth 3 -maxdepth 5 | grep $SYS`
+fi
+
+if test -n "$DMESG" -a -n "$SLAMR" -a -n "$smart" ; then
+ echo > $TMPM
+ $DMESG | grep -v "SmartLink AMRMO modem" | grep slamr > $TMPM
+ ### typical output
+# slamr: SmartLink AMRMO modem.
+# slamr: probe 8086:24c6 ICH4 card...
+# slamr: mc97 codec is SIL27
+# slamr: slamr0 is ICH4 card.
+ if grep slamr $TMPM >/dev/null ; then
+ SLAMRout=1
+ elif [ "$UID" = "0" ] ; then
+ /sbin/modprobe -r slamr
+ /sbin/modprobe slamr
+ $DMESG | grep -v "SmartLink AMRMO modem" | grep slamr > $TMPM
+ if grep slamr $TMPM >/dev/null ; then
+ SLAMRout=1
+ fi
+ else
+ cat<<END | tee -a $RECORD
+
+ Please rerun scanModem after login as
+ # su - root
+ WithIn Modem/Slmodem.txt, see the slamr test for an explanation.
+
+END
+ sleep 3
+ fi
+ if test -n "$SLAMRout" ; then
+ echo " ------ dmesg slamr filtered -------">>$RECORD
+ cat $TMPM >>$RECORD
+ CODEC=`$DMESG | grep slamr | grep codec | cut -d' ' -f5`
+ if test -n "$CODEC" ; then
+ COD=`echo $CODEC | cut -b-3`
+ echo " The softmodem Codec is: $CODEC">>$RECORD
+ fi
+ fi
+ $DMESG | grep HSF: > $TMPM
+ if grep HSF: $TMPM>/dev/null ; then
+ $DMESG | grep HSF: >>$RECORD
+ fi
+fi
+ ##ARCHIVEbegin
+ # Used as backup to a CODEC acquisition
+ rm $TMPM.2 &>/dev/null
+ echo " Checking through information gathered from LinModem ARCHIVES">>$RECORD
+ if [ "$PCIDEV" = "8086:1080" ] ; then
+ cat<<EOF>$TMPM.2
+INTEL537EP 8086:1000 8086:1007 8086:1008 8086:100A 1028:1000
+EOF
+ elif [ "$PCIDEV" = "8086:2416" ] ; then
+ # 8086:2416 82801AA ICHAA
+ cat<<EOF>$TMPM.2
+CXT 107b:0012
+SIL22 14c0:0012 COMPAL Electronics Inc Smartlink
+EOF
+# cat $TMPM.2
+ elif [ "$PCIDEV" = "8086:2426" ] ; then
+ # 8086:2426 82801AB ICHAB
+ cat<<END>TMPM.2
+SIL21 134d:4c21
+Unknown 107b:9019 Gateway
+END
+ elif [ "$PCIDEV" = "8086:7196" ] ; then
+ # 8086:7196 82440 Banister ICH1
+ cat<<EOF>$TMPM.2
+Unknown 10cf:10d2 Fujitsu Limited
+EOF
+ elif [ "$PCIDEV" = "8086:2446" ] ; then
+ # 8086:2446 82801BA ICH2
+ cat<<EOF>$TMPM.2
+CXT 104d:80df
+SIL21 10cf:10d2 CitiCorp
+Unknown 1025:1027 Acer
+EOF
+ elif [ "$PCIDEV" = "8086:2486" ] ; then
+ # 8086:2486 82801CA/CAM AC97 CAM AC'97 ICH3
+ cat<<END>$TMPM.2
+CXT 1668:5421 CXT21, 14f1:5421 MD56ORD V.92 MDC Modem
+SIL27 103b:0757 Tatung Co , 1014:0223 IBM , 1179:0001 , 144d:2115 Samsung, 1014:0227
+BCM64 14e4:4d64
+SIL22 14c0:0012 COMPAL Electronics Inc
+Unknown 1558:1800 CLEVO/KAPOK Computer , 104d:813c Sony, CMedia CXT?, 1014:0503
+END
+ elif [ "$PCIDEV" = "8086:24c6" ] ; then
+ # 8086:24c6 82801DB ICH4 AC'97 Modem Controller
+ cat<<END>$TMPM.2
+SIL27 152d:0706 QUANTA Computer, 144d:2115 Samsung , 1019:d551 1179:0001 1734:1033 1854:0005 1014:0227 0e11:0860 1014:0524 1014:0525 mc97 , 1025:0061 Acer, 1025:003d 107b:0200 1025:0071 1014:0544 10cf:10d1
+SIL21 1071:8050 134d:4c21 4c21:5349 1071:8160 1734:1055
+SIL22 1734:102a
+CXT 104d:8129 Sony , 104d:818c CXT23 , 104d:816a , 1014:055a , 104d:80fa , 14f1:5422 , 1043:1826 , 103c:3084 1025:0064 CXT30, 1014:0559 CXT23
+BCM64 14e4:4d64
+SIL24 144f:1050 Askey Comp. with BroadCom,
+Unknown 104d:816a 1509:2970
+END
+ elif [ "$PCIDEV" = "8086:24d6" ] ; then
+ # 8086:24d6 82801EB ICH5
+ cat<<END>$TMPM.2
+SIL27 1179:0001 104d:8128
+BCM64 14e4:4d64
+CXT 103c:006a
+END
+ elif [ "$PCIDEV" = "8086:266d" ] ; then
+ echo " The 8086:266d modems may be supported by hsfmodem OR slmodem-2.9.9c ,but not both" >>$RECORD
+ cat<<END>$TMPM.2
+SIL27 1509:3670
+CXT 14f1:5423 CXT23 no /proc/asound/mc97* ,
+END
+ elif [ "$PCIDEV" = "1039:7013" ] ; then
+ # 1039:7013 SIS 630
+ cat<<EOF>$TMPM.2
+SIL27 1043:1736 , 104d:8129 17c0:1059 , 1033:8216 1028:0195
+SIL23 1039:7013
+CXT 104d:814e Sony CXT23, 1043:1816 CXT22
+SIL22 1631:3003 NorthBridge , 1584:4003 , 1734:105f ,1558:2202 CLEVO/KAPOK Computer: HAMR,http://linmodems.technion.ac.il/archive-fourth/msg01957.html
+SIL21 Pctel 1039:7013 1849:9739 13bd:102f
+Unknown 1019:0a01 1558:4201 , 1509:2470 First Int. Comp. , 1734:105f with AMD64 processor, 1509:2470 , 1043:1456 Asustek
+EOF
+
+ elif [ "$PCIDEV" = "1039:7018" ] ; then
+ # 1039:7018 SIS 960
+ cat<<EOF>$TMPM.2
+none
+EOF
+ elif [ "$PCIDEV" = "10de:01c1" ] ; then
+ # 10de:01c1 Nvidia Corp
+ cat<<EOF>$TMPM.2
+none
+EOF
+ elif [ "$PCIDEV" = "10de:00d9" ] ; then
+ # 10de:01d9 Nvidia Corp
+ Smart=ALSA
+ cat<<EOF>$TMPM.2
+CXT 1043:1856 Asustek
+SIL27 103c:006d HP ,
+EOF
+ elif [ "$PCIDEV" = "1106:3068" ] ; then
+ # 1106:3068 VIA
+ cat<<EOF>$TMPM.2
+SIL27 1102:0033 CreativeLabs , 1025:0046 Acer , 1025:0033 , 1734:1078
+SIL22 1743:1032 , 10cf:118e , 1734:1054 , 1462:309e , 1631:e004 , 1543:4c22 , 161f:2032 1584:4005
+SIL21 10cf:118e , 13bd:1022 , 1543:4c21 1071:8375
+CXT 104d:8143 104d:80f6 , 1025:0030 CXT41 ,
+Unknown 1584:4005 Uniwell, 1025:0030 Acer 104d:80f6CXT?
+EOF
+ elif [ "$PCIDEV" = "1022:7446" ] ; then
+ # 1022:7446 AMD AC_LINK
+ cat<<EOF>$TMPM.2
+none
+EOF
+ elif [ "$PCIDEV" = "10b9:5453" ] ; then
+ # 10b9:5453 ALI 5453
+ cat<<EOF>$TMPM.2
+none
+EOF
+ elif [ "$PCIDEV" = "1543:3053" ] ; then
+ # Silicon Inst
+ cat<<EOF>$TMPM.2
+Unknown 1543:3052
+EOF
+ elif [ "$PCIDEV" = "e159:0001" ] ; then
+ # Tiger Jet
+ cat<<EOF>$TMPM.2
+INTEL537 8086:0003
+EOF
+ elif [ "$PCIDEV" = "1543:3052" ] ; then
+ # SILabs SI3052
+ cat<<END>$TMPM.2
+none
+END
+ elif [ "$PCIDEV" = "10b9:5457" ] ; then
+ # 10b9:5457 ALI 5457
+ cat<<EOF>$TMPM.2
+SIL27 1179:0001 , 1033:81f3
+CXT 103c:002a CXT21, 103c:0024 CXT41 , 103c:0029
+Unknown 0e11:005a 5457 Compaq
+EOF
+ elif [ "$PCIDEV" = "10b9:5459" ] ; then
+ # 10b9:5457 ALI 5457
+ cat<<EOF>$TMPM.2
+SIL26 10a5:5459 Smart Link Ltd.
+EOF
+ elif [ "$PCIDEV" = "1002:434d" ] ; then
+ # 1002:434d ATI Technologies Inc:
+ IDENT=ATI
+ Smart=ALSA
+ ALSA=1002:434d
+ cat<<EOF>$TMPM.2
+SIL27 103c:006b HP, 1179:0001 Toshiba , 1025:0052 Acer
+EOF
+ ##ARCHIVEend
+ else
+ cat<<EOF | tee -a $RECORD
+ This combination of softmodem controller and Subsystem:
+ Primary $PCIDEV
+ SubSystem $SUBSYS
+ has not been previously reported.
+
+EOF
+ fi
+ # Analysis of Archival info
+ if test -f $TMPM.2 ; then
+ CODECp=`grep $SUBSYS $TMPM.2 | cut -d' ' -f1`
+ if test -z "$CODECp" ; then
+ echo " Modem codec information on Subsystem $SUBSYS is not in the records.">>$RECORD
+ elif [ "$CODECp" = "Unknown" ] ; then
+ echo " A codec for this Subsystem record under controller $PCIDEV was not been reported".>>$RECORD
+ if [ -n "$CODEC" ] ; then
+ echo " Please report this New assignment to Discuss@linmodems.org : $PCIDEV $SUBSYS $CODEC" | tee -a $RECORD
+ fi
+ else
+ echo " From prior reports, the modem codec type of the Subsystem is: $CODECp">>$RECORD
+ fi
+ fi
+
+ # This section compares diagnostis from slamr test and Archival records:
+ if [ -z "$CODEC" ] ; then
+ # echo " Using archived information for soft modem codecs.">>$RECORD
+ CODEC=$CODECp
+ CODECnone=1
+ COD=`echo $CODEC | cut -b-3`
+ elif [ "$CODEC" = "$ ALG10" ] ; then
+ echo " ALG10 is an audio codec, the modem hardware has not been properly accessed.">>$RECORD
+ elif [ "$COD" = "CXT" ] && [ "$CODECp" = "CXT" ] ; then
+ CODEC=$COD
+ echo " Agreement between slamr diagostic and Archive.">>$RECORD
+ elif [ "$CODECp" = "$CODEC" ] ; then
+ echo " Agreement between slamr diagostic and Archive.">>$RECORD
+ elif ! [ "$CODECp" = "$CODEC" ] ; then
+ echo " DisAgreement between slamr diagostic and Archive. Using slamr diagnostic: CODEC=$CODEC">>$RECORD
+ CODECp=$CODEC
+ else
+ echo "All cases should be covered">/dev/null
+ fi
+
+ # Case by case of CODEC
+ if test -n "$CODEC" && ! [ "$CODEC" = "Unknown" ] ; then
+ if [ "$CODECp" = "INTEL537" ] ; then
+ echo " The modem has an Intel 537 chipset" | tee -a $RECORD
+ echo " Use driver resource Intel-537-MostRecentVersion.tgz" >>$RECORD
+ IDENT=INTEL537
+ elif [ "$CODECp" = "INTEL537EP" ] ; then
+ echo " The modem has an Intel 537EP chipset" | tee -a $RECORD
+ echo " Use driver resource Intel-537EP-MostRecentVersion.tgz" >>$RECORD
+ IDENT=INTEL537EP
+ elif [ "$COD" = "CXT" ] ; then
+ CXT=yes
+ Smart=
+ smart=
+ echo " The modem has a Conexant codec: $CODEC" | tee -a $RECORD
+ if test -z "$CNX" ; then
+ echo " BUT $CNTRL is not yet supported by Linuxant code." | tee -a $RECORD
+ else
+ IDENT=CXT
+ cat<<END | tee -a $RECORD
+ and there is support for the modem controller: $CNTRL
+ Some Linux Distributions include the hsfmodem driver.
+ Search your packages information for "hsfmodem" and "Conexant".
+ If not found there, download a hsfmodem package from http://www.linuxant.com .
+
+ For 2.4.n kernels, If there is not an exact match your kernel version: `uname -r`
+ then kernel-sources must be prepared as described in Modem/DriverCompiling.txt
+ before the hsfmodem driver compiling can be successfull.
+ For recent kernel-source-2.4.6 ,configuration steps are not necessary.
+
+END
+ fi
+ elif [ "$CODEC" = "SIL22" ] ; then
+ echo " The Subsystem has the a SmartLink codec" | tee -a $RECORD
+ if [ "$smart" = "may" ] ; then
+ echo " with a supported $PCIDEV modem controller" | tee -a $RECORD
+ IDENT=SMART
+ else
+ echo " but sadly, support is lacking for the $PCIDEV modem controller." | tee -a $RECORD
+ fi
+ elif [ "$CODEC" = "BCM64" ] || [ "$CODEC" = "SIL24" ] ; then
+ IDENT=$CODEC
+ echo " The Subsystem has a Broadcom codec $CODEC" | tee -a $RECORD
+ elif [ "$CODEC" = "INT65" ] || [ "$CODECp" = "SIL25" ] ; then
+ IDENT=$CODEC
+ Smart=yes
+ cat<<END>>$RECORD
+
+ The Subsystem has the INTEL codec $CODEC
+ The Intel_secure-537AA driver and possibly the SmartLink driver support the modem.
+ Details below and read Modem/Slmodem.txt
+END
+ elif [ "$CODEC" = "SIL24" ] || [ "$CODEC" = "SIL26" ] ; then
+ echo " The Subsystem has a Broadcom codec $CODEC" | tee -a $RECORD
+ IDENT=SMART
+ elif [ "$CODEC" = "SIL21" ] ; then
+ IDENT=Smart
+ echo " The Subsystem has a PCTel codec $CODEC" | tee -a $RECORD
+ if [ "$MAJOR" = "2.4" ] ; then
+ IDENT=PCTEL
+ echo "The pctel-0.97 drivers may support this modem.">>$RECORD
+ fi
+ elif [ "$CODEC" = "SIL23" ] ; then
+ IDENT=Smart
+ echo " The Subsystem has Silicon Integrated Systems (SiS) codec $CODEC" | tee -a $RECORD
+ elif [ "$CODEC" = "SIL27" ] ; then
+ echo " The Subsystem has an Agere Systems codec $CODEC" | tee -a $RECORD
+ if [ "$MAJOR" = "2.4" ] && [ -n "$AGR" ] ; then
+ IDENT=AGR
+ echo " Under 2.4.n kernels, there are AgereSoftModem drivers">>$RECORD
+ else
+ IDENT=Smart
+ fi
+ else
+ echo " Please report this new SIL type to Discuss@linmodems.org "
+ fi
+ if [ "$smart" = "may" ] && ! [ "$COD" = "CXT" ] && ! [ "$IDENT" = "ATI" ] ; then
+ Smart=may
+ echo " SmartLink software should support this modem">>$RECORD
+ if [ "$CODEC" = "BCM64" ] ; then
+ Smart=ALSA
+ echo " Only the SmartLink slmodem-2.9.9d-alsa software supports this modem">>$RECORD
+ fi
+ fi
+ else
+ echo " There are the following routes toward support:">>$RECORD
+ echo " Follow instructions in Modem/SoftModem.txt for identifying the modem under a Microsoft boot.">>$RECORD
+ if [ "$smart" = "may" ] ; then
+ if [ "$DISTR" = "SuSE" ] && [ "$MAJOR" = "2.6" ] ; then
+ cat<<END | tee -a $RECORD
+
+ SuSE has a slamr driver. Please run the diagnostic:
+ # su - root
+ # modprobe slamr
+ # dmseg | grep slamr
+ and report the results to discuss@linmodems.org.
+ Read Modem/Slmodem.txt for details.
+END
+ else
+ echo " Read Modem/Slmodem.txt instruction for doing the slamr diagnostic.">>$RECORD
+ fi
+ fi
+ if test -n "$CNX" ; then
+ echo " Test the effectiveness of the hsfmodem package from http://www.linuxant.com/drivers/hsf/index.php.">>$RECORD
+ fi
+ # Distro specific issues
+ if [ "$DISTR" = "debian" ] || [ "$DISTR" = "Ubuntu" ] || [ "$DISTR" = "knoppix" ] && ! [ "$IDENT" = "ATI" ] ; then
+ cat<<END>>$RECORD
+
+ The $DISTR Linux includes sl-modem packages with Smartlink drivers
+ Install the kernel-headers-$SYS.deb
+ If necessary, set a symbolic link needed for slmodem compiling:
+ # ln -s /usr/src/kernel-headers-$SYS /lib/modules/$SYS/build
+ as described in Modem/DriverCompiling.txt
+ Then install the two sl-modem/slmodem packages and follow their directions.
+ Thereafter the above slamr diagnositic can be run.
+
+END
+ elif [ "$DISTR" = "SuSE" ] && ! [ "$PCIDEV" = "1002:434d" ] && ! [ "$CODECp" = "CXT" ] && ! [ "$CODECp" = "BCM64" ] ; then
+ cat<<END>>$RECORD
+
+ Install kernel-source package, the slmodem and km_slmodem packages.
+ If necessary, set a symbolic link needed for slmodem compiling:
+ # ln -s /usr/src/linux-$SYS /lib/modules/$SYS/build
+ Then install the packages and compile the drivers.
+ The compiling process is described in:
+ http://linmodems.technion.ac.il/archive-fourth/msg00176.html
+
+END
+ elif [ "$DISTR" = "Mandrake" ] && [ "$MAJOR" = "2.6" ] ; then
+ cat<<END>>$RECORD
+ Current Mandrake installations have slmodem packages.
+ http://linmodems.technion.ac.il/packages/smartlink/
+
+END
+ else
+ echo Leaving space for expansion >/dev/null
+ fi # Distros specific
+ fi # CODECnot
+ fi # soft
+ echo >$TMPM.2
+ if test -z "$IDENT" ; then
+ cat<<END>$TMPM.2
+ 4005:0308 Avance ALS-300plus sound+softmodem combo PCI card (obsolete).
+ 1055:9178 STANDARD_MICROSYSTEM
+ 10b9:545a ALI545A SL1801
+ 10b9:5459 ALI 5459 SmartPCI561
+ 10b9:5459 Subsystem: 10a5:5459 ALi Corporation SmartLink SmartPCI561 56K Modem (NetoDragon)
+ 10ec:8197 PCI SmartLAN56 (RealTek ether/modem combo)
+ 1131:3400 SmartPCI56 (Philips UCB1500)
+ 10a5:3052 Racal Interlan SL1900
+ 10a5:5459 Racal Interlan SmartPCI561 SL1900
+ 163c:5459 SmartLink SmartPCI561 SL1900
+ 2000:2800 Gateway SL2800
+ 2003:8800 SmartLink SL2800
+END
+ fi
+ # marv
+ if grep $PCIDEV $TMPM.2>/dev/null ; then
+ IDENT=SMART
+ SMT=`grep $PCIDEV $TMPM.2`
+ cat<<END | tee -a $RECORD
+
+ SmartLink drivers support this modem:
+ $SMT
+END
+ if [ "$PCIDEV" = "2003:8800" ] ; then
+ echo " But version slmodem-2.9.10 or later is necessary." | tee -a $RECORD
+ fi
+ elif [ "$Vendor" = "11c1" ] ; then
+ IDENT=AGERE
+ elif [ "$Vendor" = "115d" ] ; then
+ IDENT=XIRCOM
+ elif [ "$v" = "127a" ] || [ "$v" = "14f1" ] || [ "$v" = "148d" ] || [ "$PCIDEV" = "158b:0001" ] || [ "$PCIDEV" = "158b:0005" ] || [ "$PCIDEV" = "158b:0015" ] ; then
+ IDENT=CXT
+ # Intel 536EP & 537 secton
+ elif [ "$PCIDEV" = "e159:0001" ] && [ "$SUBSYS" = "8086:0003" ] ; then
+ echo " Use driver resource Intel-537-MostRecentVersion.tgz">>$RECORD
+ IDENT=INTEL537
+ elif [ "$PCIDEV" = "8086:1040" ] ; then
+ if [ "$SUBSYS" = "8086:1005" ] ; then
+ echo SUBSYS=$SUBSYS
+ echo " Use driver resource Intel-537SP-MostRecentVersion.tgz">> $RECORD
+ IDENT=INTEL537SP
+ fi
+ if [ "$SUBSYS" = "8086:1000" ] ; then
+ IDENT=INTEL536ep
+ echo " Use driver resource Intel-536ep-MostRecentVersion.tgz ">>$RECORD
+ # no SMP http://linmodems.technion.ac.il/archive-third/msg00855.html
+ fi
+ elif grep $PCIDEV Modem/SoftModem.txt >/dev/null && $LSPCI -v 2>/dev/null | grep "Intel 537" >/dev/null ; then
+ # 1st line, because of mistakes in the PCI id databset
+ echo " Due to a PCI ID database error, the Intel 537 designation is commonly incorrect." | tee -a $RECORD
+ AMBIG=537
+ else
+ echo No definitive Intel 537 soft modem>/dev/null
+ fi
+ echo $IDENT >$TMPM
+
+ echo > $TMPM.soft
+ if test -z "$IDENT" ; then
+ # Special cases
+ if $LSPCI -v 2>/dev/null | grep CM8738 >/dev/null ; then
+ IDENT=CM8738
+ elif $LSPCI -v 2>/dev/null | grep "Intel 536" >/dev/null ; then
+ # because Intel 536 may have PCI_IDs assigned by modem assemblers, not Intel
+ IDENT=INTEL536ep
+ elif $LSPCI -v 2>/dev/null | grep "Subsystem: Conexant" >/dev/null ; then
+ # because the PCI_IDs may be assigned by modem assemblers, not Conexant
+ IDENT=CXT
+ else
+ echo "probably not a Conexant modem" >/dev/null
+ fi
+
+ if $LSPCI -v 2>/dev/null | grep "Smart Link HAMR5600" >/dev/null ; then
+ # because the PCI_IDs may be assigned by modem assemblers, not SmartLink
+ # and mistakes in the PCI ID database
+ AMBIG=$AMBIG" HAMR5600"
+ #XX some misidentified softmodem
+ fi
+ fi
+
+ if test -z "$IDENT" ; then
+ AMBIG=
+ cat<<END>>$RECORD
+
+ Information on several modem chipset providers is provided below,
+ because ambiguities remain on the correct choice of supporting software.
+
+END
+ fi
+ PRIMARY=
+ if test -n "$SOFT" ; then
+ VEND="$SUBven $Vendor"
+ if [ "$Vendor" = "$SUBven" ] ; then
+ VEND=$Vendor
+ fi
+ else
+ VEND="$Vendor"
+ # SUBven not important if not softmodem
+ fi
+ for v in $VEND
+ do
+ echo " == Checking PCI IDs through modem chip suppliers ==">>$RECORD
+
+ if [ "$Vendor" = "1002" ] && ! [ "$ATI" = "done" ] ; then
+ ATI=done
+ smart=1
+ cat<<END>>$RECORD
+
+ Vendor 1002 is ATI Technolgies, http://www.ati.com, producing video cards, motherboard and
+ a 1002:434d ATI soft modem controller with a variety of Subsystems.
+ There is a modem driver, snd-atiixp_modem.ko , becoming available through http://www.alsa-project.org ,
+ with complementary port creation through the SmartLink slmodem-2.9.9d-alsa
+ For history see: http://website.lineone.net/~bryanrpoole/atiixp-modem.htm
+ For details on setup and testing, see Modem/ATI.txt
+
+END
+ fi
+ if [ "$Vendor" = "151f" ] ; then
+ IDENT=Topic
+ cat<<END>>$RECORD
+
+ Vendors $v is TOPIC SEMICONDUCTOR Corp.
+ Class 0780 151f:0000 is a controller chipset modem using the standard drivers.
+ See http://www.math.sunysb.edu/~comech/tools/PCImodems.html
+
+END
+ fi
+ if [ "$v" = "10de" ] ; then
+ cat<<EOF>>$RECORD
+
+ Vendor 10de is Nvidia, producing the video cards and
+ two softmodem controllers: 10de:01c1 and 10de:00d9
+ For subsystems with SILnm codecs,
+ slmodem-2.9.n software in ALSA mode provides support.
+
+EOF
+ fi
+ if [ "$PCIDEV" = "10de:00d9" ] ; then
+ cat<<EOF>>$RECORD
+
+ At least some of the 10de:00d9 chipset modems have a Conexnant codec, with support by the hsfmodem package from http://www.linuxant.com/drivers/hsf.
+ After installation of the software, an edit may be necessary in the file:
+ /usr/lib/hsfmodem/mod_mc97ich.c
+ Search for "0x01C1" , which will reveal a line beginning:
+ { 0x10DE, 0x01C1, PCI_ANY_ID, PCI_ANY_ID,
+ and change to:
+ { 0x10DE, 0x00D9, PCI_ANY_ID, PCI_ANY_ID,
+
+EOF
+ fi
+ if [ "$v" = "e159" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor $v is Tiger Jet (TJ).
+ $v:0001 translates PCI commands to the serial link used by
+ the silabs DAA from the si3034, si3044 and si3056 family.
+ $v:0001 8086:0003 TJ320 v2.0 , with subsystem 8086:0003 is an Intel-537 soft modem
+ supported by: Intel-537-MostRecentVersion.tgz
+ $v:0001 0359:0003 TJ320 v3.1
+
+END
+ fi
+ if [ "$v" = "1106" ] ; then
+ VIA=1
+ cat<<END>>$RECORD
+
+ Vendor $v is VIA Technologies Inc.,producing diverse bridges including devices:
+ 1106:3068 VT82C686/686A/686B AC97 Modem Codec
+ Under the later, the 10cf:118e the "Intel 537" is partially supported
+ by the SmartLink slmodem-2.7.10 software
+ Subsystem 1102:0033 has an AgereSystems soft modem chip
+
+END
+ fi
+ if [ "$v" = "13f6" ] ; then
+ PCTEL=13f6
+ cat<<END>>$RECORD
+
+ Vendor $v is C-Media Electronics, which produced modem:
+ 13f6:0211 C-Media Electronics Inc CM8738,
+ 13f6:0211 subsystem HSP56 Audiomodem Riser
+ supported under 2.4.n kernels by PCTEL software.
+ BUT there is no support under 2.6.n kernels.
+
+END
+ fi
+ if [ "$v" = "14e4" ] || [ -n "$BRD" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor 14e4 is BroadCom
+ 14e4:4212 is a BCM V.90 56k modem
+ There is a driver for 2.2.n kernels called BCOM_WAN_V20.
+ Search for it at http://www.dell.com
+ However the code has not been updated for some time.
+ For 2.4 kernels, fix by Giacomo Comes must be used. See :
+ http://linmodems.technion.ac.il/archive-third/msg01652.html
+ When serving under softmodem controllers like the Intel ICH series,
+ the Broadcom Subsystem 14e4:4d64 has mc97 codec BCM64.
+ For 2.6.n kernels, see success reports:
+ http://linmodems.technion.ac.il/archive-fourth/msg03690.html
+ http://oboc.ucdavis.edu/Marik/inspiron/
+ The support is achieved through a combination of:
+ 1) the snd-intel8x0m.ko of 2.6.n kernel releases, which provides a low level interface with the modem;
+ 2) an slmodemd daemon which creates ports and provides higher level functions.
+ Get the slmodem-2.9.9d-alsa.tar.gz from http://linmodems.technion.ac.il/packages/smartlink/
+ To compile the slmodemd, it is first Necessary to install a libasound2-dev package, providing alsa headers.
+ 3) After compilation and installation of slmodemd, initiate service with:
+ # modprobe snd-intel8x0m
+ # slmodemd --alsa --country=YOURCOUNTRY hw:1
+ Read the slmodem documentation for details and Modem/Slmodem.txt
+
+END
+ fi
+ if [ "$v" = "104d" ]; then
+ cat<<END>>$RECORD
+
+ Vendor 104d is Sony. Subsystem 104d:8129 under a 8086:2486 Intel modem controller
+ has a Conexant chip in a Sony Vaio grx560 laptop.
+ A bootup "acpi=on" was required for IRQ acquisition.
+END
+ fi
+ if [ "$v" = "1039" ] ; then
+ echo " Vendor $v is SiS, Silicon Integrated System, producing soft modem controllers and subsystems.">>$RECORD
+ fi
+ if [ "$v" = "1014" ] ; then
+ echo Vendor=1014 is IBM.>>$RECORD
+ if test -n "$SOFT" ; then
+ cat<<END>>$RECORD
+
+ Some thinkPad laptops have soft modem Subsystems with AgereSystems codec: 1014:0227 and 1014:0524.
+ Software access is through IBM:
+ http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52698
+END
+ fi
+ fi #beginESS
+ if [ "$v" = "125d" ] ; then
+ IDENT=ESS
+ cat<<END>>$RECORD
+
+ Vendor=$v is ESS Technologies, making devices:
+ There has been no formal support for Linux since kernels 2.2.2
+ Some kludges are of fading utility as the 2.4.n Linux kernels and hardware evolves:
+ http://linmodems.technion.ac.il/archive-fourth/msg00317.html (2004Feb08)
+ http://andrew.cait.org/ess/
+ http://sidlo.penguin.cz/ES2838/index_en.html
+ http://tx.technion.ac.il/~raindel/
+ http://phep2.technion.ac.il/linmodems/archive/msg04424.html
+
+ There is no hope for support under 2.6.n kernels.
+
+END
+ fi
+ if [ "$v" = "1025" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor=$v is Acer, http://global.acer.com/ PC and latop manufacturer with devices including:
+ 1025:5453 M5453 AC-Link Controller Modem Device
+ 1025:0038 an AC97 link modem.
+
+END
+ fi
+ # beginMotorola
+ if [ "$v" = "1057" ] || [ "$v" = "11d4" ] ; then
+ IDENT=Motorola
+ cat<<END>>$RECORD
+
+ -----------------------------
+ Vendor=1057 is Motorola with service provided through vendor=11d4 Analog Devices Inc.
+ Installers are available at: http://www.motorola.com/softmodem/sm56_download.htm
+as RPM packages containing binary images of drivers
+applicable for installation on the following systems:
+* RedHat 7.3 (kernel version 2.4.18-3, sm56-06.05.00-1.rh7.i386.rpm)
+* RedHat 8.0 (kernel version 2.4.18-14, sm56-06.05.00-1.rh8.i386.rpm)
+* RedHat 9.0 (kernel version 2.4.20-8, sm56-06.05.00-1.rh9.i386.rpm)
+* Mandrake Linux 9.2 (kernel version 2.4.22-10mdk, sm56-06.05.02-1.mdk.i586.rpm)
+* Mandrake Linux 10.0 (kernel version 2.6.3-7mdk, sm56-06.05.02-2.mdk10_263-7.i586.rpm)
+* Suse Linux 9.0 (kernel version 2.4.21, sm56-06.05.02-1.suse90-020421-99.athlon.rpm)
+* Suse Linux 9.0 (kernel version 2.4.21, sm56-06.05.02-1.suse90-020421-99.i586.rpm)
+ There is also available a Legacy driver - SM56_5.1_I386.rpm for 2.4.n kernels ONLY
+ for which the advice at http://www.sm56.tk/ may be effective.
+
+ Jan Ibanez <jmibanez@gmail.com> is our expert on Motorola problems
+
+ Achieving function with these drivers is often difficult.
+ If you computer alternatively boots Linux and Microsoft OS,
+ do a complete PowerOff before starting Linux.
+ Otherwise there may be an error during following Motorola usage:
+ SM_DisplayFatalError
+
+ Some guidance for particular cases is:
+ http://linmodems.technion.ac.il/archive-fourth/msg01751.html
+ http://linmodems.technion.ac.il/archive-fourth/msg01749.html
+ http://linmodems.technion.ac.il/archive-fourth/msg01750.html
+ http://linmodems.org/cgi-bin/ezmlm-cgi?1:mss:13952:200405:enbjmmngagmdejkemacc
+ http://users.volja.net/kutulu/sm56.tar.gz
+ There is a volunteer Motorola site: http://www.sm56.tk/
+ The installation creates a driver sm56.o , the character devices
+ /dev/motomem
+ /dev/sm56
+ with symbolic link /dev/modem --> /dev/sm56
+ the /etc/modules.conf lines:
+ alias char-major-24 sm56
+ options sm56 country=1
+ and documentation in usr/share/doc/HTML/en/sm56/ and "man sm56"
+ An additional line in /etc/modules.conf
+ alias /dev/modem /dev/sm56
+ would beneficially aid driver autoloading, without which there may be a failure of the wvdial functionality test:
+ # /etc/wvdialconf /etc/wvdial.conf
+ --------------------------------- End Motorola ------------------
+
+END
+ fi # begin3com
+ if [ "$v" = "10b7" ] || [ "$v" = "12b9" ] ; then
+ smart=
+ IDENT=3COM
+ cat<<END>>$RECORD
+
+ 10b7 is 3COM
+ :1006 0038TA <- AC101 - TF Mini-PCI 56K V.90 WinModem no Linux support
+ :1007 3C556 V.90 Mini-PCI WinModem no Linux support
+ 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
+ The following may be supported by Conexant drivers at http://www.linuxant.com
+ 14f1:2f12 (3COM/USR model 3094-3095)
+ 14f1:2f13 (USR OEM)
+ 14f1:2f14 3COM/USR
+ though they carry USR labels.
+
+END
+ fi
+ if [ "$v" = "1543" ] ; then
+echo >>$RECORD
+echo "Vendor 1543 is Silicon Laboratories (SIL). SIL produces "blanks" for soft modem Subsystems" >>$RECORD
+echo which subsequent acquire the Subsystem PCI ID from the final Subsystem assembler. >>$RECORD
+echo Subsystems for soft modems are also produced. >>$RECORD
+echo >>$RECORD
+ fi
+ if [ "$v" = "10b9" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor 10b9 is Acer Labs, producing 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.
+ 10b9:5450 ALI 5450 and 10b9:5451 ALI 5451 are controllers for unsupported "sound modems"
+
+END
+ if [ "$Device" = "545a" ] || [ "$Device" = "5459" ] ; then
+ cat<<END>>$RECORD
+ $PCIDEV ALI545A SL1801 and $PCIDEV ALI 5459 SmartPCI561 have SmartLink chipsets.
+
+END
+ fi
+
+ if [ "$Device" = "5457" ] || [ "$Device" = "5459" ] ; then
+ cat<<END>>$RECORD
+
+ These messages may aid setup of soft modems under $v:M5457 controllers:
+ http://linmodems.technion.ac.il/archive-third/msg02518.html
+ http://linmodems.technion.ac.il/archive-third/msg02100.html
+ The slmodem-2.9.9 support was developed for $v:5459,
+ but there a range of reports the related $v:5457 modemd controllers:
+ fully functional;
+ functional only after a power on reboot from Microsoft windows;
+ hang/crash upon initiation of modem usage.
+
+ 10b9:5457 Modem: ALi Corporation [M5457 AC-Link Modem]
+ SubSystem 1179:0001 Toshiba America Info Systems: Unknown device 0001
+ has an AgereSoftModem chip which may be supported by the Smartlink slmodem-2.9.9 driver
+
+END
+ fi
+ fi # beginPctel
+
+ if ! [ "$PCTEL" = "DONE" ] ; then
+ if [ -z "$IDENT" ] || [ "$IDENT" = "PCTEL" ] || [ "$IDENT" = "CM8738" ] ; then
+ if [ "$v" = "134d" ] || [ "$v" = "134c" ] || [ -n "$CM8738" ] || [ "$PCTEL" = "13f6" ] || [ "$CODECp" = "SIL21" ] ; then
+ if [ "$CODECp" = "SIL21" ] ; then
+ cat<<END>>$RECORD
+
+ For Pctel AMR under $CNTRL,
+ the SmartLink slmodem-2.9.n software can serve.
+ The advantage is current updates, extending into the 2.6.n kernels.
+
+END
+ smart=1
+ fi
+ echo " Read ModemData.txt and Pctel.txt in the new sub-folder Modem/" | tee -a $RECORD
+ if [ "$PCIDEV" = "134d:2189" ] ; then
+ echo " The 134d:2189 is a PCTel 688T modem which is currently NOT supported see:" >>$RECORD
+ echo " http://linmodems.technion.ac.il/archive-fifth/msg00057.html" >>$RECORD
+ fi
+ cat<<END> Modem/Pctel.txt
+
+ Vendor=134d is PCTel and Vendor=134c is Chori Joho System Co. Ltd,
+ producing idenitcal devices including deviceIDs. For supported PCtel modems
+ The PCTel Inc., modem sector has been sold to Conexant.
+ Thus official updates for Linux support are unlikely!!
+
+ Through volunteer efforts, there are code releases are at
+ http://linmodems.technion.ac.il/pctel-linux .
+ Download the pctel-0.9.7-9.tar.gz
+ Do the following preliminary steps:
+ Unpack with command : tar zxvf pctel-0.9.7-9.tar.gz
+ Change directory: cd pctel-0.9.7-9
+ Read README file less README (space bar goes to next page)
+ Is a compiler installed? Test with: gcc
+ If not found, install it from your Linux distribution.
+ Become root: su root
+ Seeing lspci? lspci
+ If not, install the package pciutils .
+ Now you can follow instructions in README
+
+ For guidance on compiling and installing the pctel drivers, read the PCTel minHOWTO:
+ http://www.peacefulaction.org/sayamindu/docs.php
+ and the remainder of this file
+
+ The ISA card pct388p modem is not supported by the current driver series see:
+ http://linmodems.technion.ac.il/archive-fifth/msg00166.html
+ The PCI ID 134d:2189 modem is a PCTel 688T modem which is currently NOT supported see:
+ http://linmodems.technion.ac.il/archive-fifth/msg00057.html
+ There are No success reports under current 2.6.nn kernels using PCTel code,
+ though volunteer efforts are in progress to achieve support under 2.6.n kernels.
+ The slmodem Smartlink code can however support the AMR PCtel modems under 2.4.n and 2.6.n kernels.
+
+ During PCtel code installations, the node made is character device /dev/ttyS15 c 62 69
+ Check with:
+ ls -l dev/ttyS15
+
+ There is a pre-compiled binary component in the Pctel code which was assembled with a gcc 2.95 compiler
+ A consequence is the loading fails under kernels compiled with gcc 3.n , unless forcing (-f) is used:
+ # insmod -f pctel
+ # insmod ptserial
+This can be automated by adding the following lines to /etc/modules.conf
+
+####### for pctel modem ######
+alias char-major-62 pctel
+alias /dev/modem ptserial
+install pctel /sbin/insmod "-f" "pctel"
+post-install pctel /sbin/insmod ptserial
+
+# country code for pctel modem, for USA
+options ptserial country_code=1
+######## pctel end ####
+
+then run:
+# depmod -a
+to inform the System and thereafter
+# modprobe ptserial
+will load both drivers,
+
+ For some Systems, PCTel function requires disablement of apmd power monitoring function.
+
+ 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
+
+ For a case of a 134d:7897 modem on a VIA686 motherboard PCTEL drivers compiled with
+ hal=via686
+ did NOT provide effective drivers while the drivers were effective when compiled with
+ hal=pct789
+
+ For pctel-0.9.7-9 with variant hal=via686a, a fix is needed:
+ # cd src
+ # make clean
+ # ./configure -auto
+Search the Makefile for a line containing DAUDIO. Edit that line into:
+ AUDIOROUTING=-DVIA
+Then:
+ # make
+ # make install
+
+END
+ fi
+ PCTEL=DONE
+ fi
+ fi # IDENT
+
+ if [ "$v" = "158b" ] ; then
+ cat<<END>>$RECORD
+
+ echo Vendor 158b is Allied Data Technologies, http://
+ 158b:0001 and 158b:0005 have Conexant HSF chipsets.
+ 158b:0015 has a Conexant HCF chipset.
+ There are 158b:xxxx modems with the Intel 536ep chipset.
+
+END
+ INTEL536ep=1
+ fi
+ if [ "$v" = "1013" ] ; then
+ cat<<END>>$RECORD
+
+ There is no CURRENT SUPPORT for the Vendor=1013 chipsets of CML, Cirrus Logic Modems,
+ with modem business acquired by Intel, Inc.
+ See message: http://linmodems.org/cgi-bin/ezmlm-cgi?1:mss:9448:200210:fbhcoigfcimgkjdedjad
+
+END
+ fi
+ if [ "$v" = "1813" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor=1813 Ambient Tech was acquired by Intel with its HaM (Host assisted Modem) chipsets.
+ Intel-v92ham-453.tgz ifor 2.4.n kernels is FINAL update for HaM modems, available at:
+ http://linmodems.technion.ac.il/packages/Intel/ham/
+ http://developer.intel.com/design/modems/support/drivers.htm
+ It is NOT functional when compiled under 2.6.n kernels and will NOT be updated to support
+ the 2.6.n kernels, Intel maintainer Dorian Araneda has reported.
+ But under the 2.4.nn kernels, all HaM chipsets are supported,
+ with a single EXCEPTION: 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
+ # beginCXT
+ if test -z "$Dcnx" ; then
+ Dcnx=done
+ echo "148d 158b 141a 127a 14f1 1024" > $TMPM
+ # hcfpciconfig
+ if [ "$IDENT" = "CXT" ] || grep $v $TMPM >/dev/null ; then
+ # Conexant HSF, adapted from www.linuxant.com HSF page
+cat<<END>$TMPM
+
+ HSFi tyes
+ -----------
+ 14f1:2f00, Subsystem ID 2002:14f1
+ 14f1:2f00, Subsystem ID 2003:14f1
+ 14f1:2f00, Subsystem ID 2004:14f1
+ 14f1:2f01
+ 14f1:2f02
+ 14f1:2f03
+ 14f1:2f04
+
+ HSF types
+ ----------
+ 14f1:2013
+ 14f1:2014
+ 14f1:2015
+ 14f1:2016
+ 14f1:2f10
+ 14f1:2f11
+ 14f1:2f12
+ 14f1:2f13
+ 14f1:2f14
+ 14f1:4311 (RIPTIDE - sound not supported)
+ 127a:2013
+ 127a:2014
+ 127a:2015
+ 127a:2016
+ 127a:4311 (RIPTIDE - sound not supported)
+ 127a:2114
+
+ Basic2 / SmartDAA types
+ --------------------------
+ 14f1:2043
+ 14f1:2044
+ 14f1:2045
+ 14f1:2046
+ 14f1:2443
+
+ Athens (Yukon)
+ -----------------
+ 14f1:1631
+ 14f1:1636
+ 14f1:1637
+
+ 8086:2486 104d:8129 SoftK56 CModem in a Sony Vaio grx560 laptop required a bootup "acpi=on" for IRQ acquisition.
+
+END
+
+if [ "$PCIDEV" = "14f1:2f00" ] ; then
+ echo $Vendor:2002 > $TMPM.0
+ echo $Vendor:2003 >> $TMPM.0
+ echo $Vendor:2004 >> $TMPM.0
+# cat $TMPM.0
+ if grep 14f1:2f00 $TMPM | cut -dD -f2- | grep -f $TMPM.0 >/dev/null ; then
+ HSF=1
+ fi
+fi
+if grep $Vendor $TMPM >/dev/null ; then
+ grep $Vendor $TMPM > $TMPM.1
+ if grep $Vendor:$Device $TMPM.1 >/dev/null ; then
+ HSF=1
+ fi
+fi
+if test -n "$HSF" ; then
+ echo " $PCIDEV is a Conexant HSF modem." | tee -a $RECORD
+fi
+# END Conexant HSF
+# the four set 127a,14f1:1025,2005 can be HCF and HSF and are included in the following HCF section
+
+# www.linuzant.com HCF page adaptation
+cat<<END>$TMPM
+# Vendor:-------devices----- of HCF List
+ 127a:1002:1003:1004:1005:1006 (71DP v90)
+ 14f1:1002:1003:1004:1005:1006 (71DP v90)
+ 127a:1022:1023:1024:1026
+ 14f1:1022:1023:1024:1026
+ 127a:1025:1085:2005 (if it doesn't work: try HSF driver)
+ 14f1:1025:1085:2005 (if it doesn't work: try HSF driver)
+ 127a:2004:2006
+ 14f1:2004:2006
+ 127a:1032:1033:1034:1035:1036
+ 14f1:1032:1033:1034:1035:1036
+ 127a:14f1:4321 (RIPTIDE)
+ 14f1:10b3:10b4:10b5:10b6
+ 127a:1802:1804:1805 (LAN/Modem combo)
+ 14f1:1813:1815 (LAN/Modem combo)
+ 14f1:1f10:1f11:1f14:1f15
+ 14f1:1053:1054:1055:1056 (Smart HCF board rev 3)
+ 14f1:1052:1057:1059 (Smart HCF board rev 4)
+ 14f1:1063:1064:1065:1066 (Smart HCF US-only: Dell)
+ 14f1:1453:1454:1455:1456 (Smart HCF mini-PcI board rev 3)
+ 14f1:1452:1457:1459 (Smart HCF mini-PcI board rev 4)
+ 1024:1024 (Zenith Data Systems)
+ 148d:1003 (DIGICOM Systems)
+ 158b:0015 (Allied Data Technologies Tornado VfM56x-PRc)
+ 141a:1035 (Apache Micro)
+
+END
+if grep " $Vendor:" $TMPM >/dev/null ; then
+ grep " $Vendor:" $TMPM > $TMPM.1
+ if grep :$Device $TMPM.1>/dev/null ; then
+ #for the four set 127a,14f1:1025,2005
+ if grep $Vendor:1025:1085:2005 $TMPM.1 >/dev/null ; then
+ echo " $PCIDEV could be either an HSF or an HCF Conexant modem" | tee -a $RECORD
+ else
+ echo " $PCIDEV is a Conexant HCF modem." | tee -a $RECORD
+ fi
+ fi
+fi
+ cat<<END>>$RECORD
+
+ Vendors 127a and 14f1 are Conexant, inheritor of Rockwell modem technology. There are also Conexant chipsets
+ in some modems from vendors 158b - Allied Data Tech., 1024 - Zenith ,141a - Apache Micro and 148d Digicom Systems.
+ With respect to software support there are two main types, hcfpcimodem* and hsfmodem* .
+ Download drivers from http://www.Linuxant.com/drivers/
+
+ At http://linmodems.technion.ac.il/resources.html#conexant , there are scripts aiding installation:
+ For HSF modems.
+ For HCF modems.
+ There is additional Conexant information written to Modem/Conexant.txt
+
+END
+
+ cat<<END> Modem/Conexant.txt
+
+ Linuxant Inc. provides Linux drivers for Conexant chipset modems
+ Go to http://www.linuxant.com/drivers
+-Find the HCF or HSF menu in the left part of the screen.
+-Read README.
+-Read INSTALLATION.
+-Click DOWNLOAD.
+-Accept conditions.
+-Find text: "You can download HCF (or HSF) modem packages from the driver
+ download page." and click there.
+-Look for your distribution, your processor, and your kernel.
+-Download the matching file.
+-Read again and, if you do this under Windows, print the installation
+ instructions matching the kind of driver file which you downloaded.
+-Now just follow these instructions.
+
+http://www.linuxant.com/drivers/hsf/downloads-patches.php has patches
+ that may be necessary for recent kernels.
+
+ A detailed software installation example is provided at:
+ http://linmodems.technion.ac.il/archive-fourth/msg00350.html
+
+ The HCF (Host Controller Free) modems which have a digital signal processsing (DSP) chipset,
+ while the HSF in the soft modem family without a DSP.
+ HSF support is included with SuSE 9.0 and later releases
+ Modems with the following PCI_IDs also 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)
+ The following six may be either HCF of HSF modems. Test the HSF package first
+ (127a,14f1):(1025,1085, 2005)
+ Should a HCF driver installation fail to serve among there,
+ then uninstall and instead try the HSF driver resource.
+ Subsystem HSF Conexant soft modems serve under AC97 or MC97 controllers. These include:
+ 14f1:(5422 2002) , plus many others with vendors assigned PCI IDs.
+
+ After loading of HSF drivers, there will be displayed by command: /sbin/lsmod
+Module Size Used by Tainted: P
+hsfich 119116 0 (autoclean)
+hsfserial 26388 0 (autoclean)
+hsfengine 1126348 0 (autoclean) [hsfserial]
+hsfosspec 35328 0 (autoclean) [hsfich hsfserial hsfengine]
+ plus many others not modem related.
+ While drivers are pre-compiled for some Linux distributions,
+ the installation of the HCF/HSF packages DOES in general require kernel-source/ preparation,
+ as described in Modem/DriverCompiling.txt.
+
+ There is a conflict between modules snd-intel8x0m and hsfmc97ich.
+ The snd-intel8x0m Must be loaded first or the system may hang upon hsfmc97ich insertion.
+ http://linmodems.technion.ac.il/archive-fourth/msg03027.html
+
+ A post install suggestion for adjusting PCI latency is:
+ http://phep2.technion.ac.il/linmodems/archive/msg05210.html
+
+END
+ fi
+ fi # cnxt # beginIntel
+
+ echo $IDENT>$TMPM
+ if [ -z "$Dintel" ] ; then
+ if grep INTEL $TMPM >/dev/null || [ "$v" = "8086" ] || [ "$v" = "1813" ] || [ "$AMBIG" = "INTEL537" ] || [ "$CODECp" = "INT" ]; then
+ Dintel=done
+ cat<<END>>$RECORD
+
+ Vendor=8086 is Intel, Inc. producing HaM and 536ep host controller free (HCF) modems, 537 soft modem
+ and AC97 and MC97 controllers managing a varierty of non-Intel soft modem Subsystems.
+ These subSystems often have PCI_IDs assigned by the modem assembler, rather than the chip provider.
+ Download available drivers through: http://developer.intel.com/design/modems/support/drivers.htm with Intel-537 types at:
+ http://downloadfinder.intel.com/scripts-df/Filter_Results.asp?selCat=all&strOSs=39&ProductID=1230&page_nbr=2
+ Also check at: http://linmodems.technion.ac.il/packages/Intel/537/
+ for beta releases and perhaps Already compiled drivers for some Linux distributions
+ A very detailed installation report cogent to 537 type modems is at:
+ http://linmodems.technion.ac.il/archive-fifth/msg00541.html
+ Setup call id with:
+ Type 1 : When the phone line is not in use at+vcid=1
+ Type 2 : When the phone line is already in use on a call at+pcw=0
+ ---------------------
+END
+ if [ "$IDENT" = "INTEL536ep" ] ; then
+ cat<<END>>$RECORD
+:
+ The older 2.4.n driver pair 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 Modem/DriverCompiling.txt
+
+ A problem maintaining CONNECT under the version 4.62 drivers was resolved
+ by dropping back to the 4.60 version. See:
+ http://linmodems.technion.ac.il/archive-third/msg02127.html
+
+ The Intel-537SP-MostRecentVersion.tgz driver package may alternatively provide support.
+
+ For Debian like distros, a modified install script is:
+http://members.lycos.co.uk/persianlinux/downloads/intel536ep/Intel536_inst_debian
+
+END
+ fi # 536ep
+ if [ "$AMBIG" = "INTEL537" ] || [ "$CODECp" = "INT" ] ; then
+ echo " Recent Intel-537 fixes are related in http://linmodems.technion.ac.il/archive-fifth/msg00013.html , http://linmodems.technion.ac.il/archive-fifth/msg00166.html">>$RECORD
+ if [ "$DISTR" = "SuSE" ] ; then
+ cat<<END>>$RECORD
+
+ Within http://linmodems.technion.ac.il/packages/Intel
+ there are packages with compiled Intel 537 drivers for 2.4.nn kernels with name formats like:
+ intel-537EP_SuSE-9.0_2.4.21-99-default_ONLY.tgz
+
+END
+ fi
+ if [ "$AMBIG" = "INTEL537" ] ; then
+ cat<<END>>$RECORD
+ The installer code candidate is:
+ Intel_secure-537AA-MostRecentVersion.tgz
+ But the Intel 537 readout needs confirmation !!
+ Sadly there are a few mis-designations in the pciids dataset, which $0 relies on
+ Too many modems are being labeled Intel537 types.
+ http://linmodems.technion.ac.il/archive-third/msg02463.html
+ http://linmodems.technion.ac.il/archive-third/msg02476.html
+ This includes the distinct Agere, Conexant and SmartLink chipsets types. Conseqeuntly
+ YOU must manually obtain further information under Microsoft Windows through modem ATI tests/queries
+ as instructed in $RECORD2 Please include this information in any report to discuss@linmodems.org
+
+END
+ fi
+ cat<<END>>/dev/null
+
+ There are Five types of Intel 537 chipsets sold to a variety of modem assemblers,
+ though they may are all called out as Intel 537 by the LSPCI tool used in $0.
+ Intel 537, a 8086:0003 subsystem PCI card modem with TigerJet PCI Controller - e159:0001
+ The installer is: Intel-537-MostRecentVersion.tgz
+ Intel 537EP, an Intel PCI modem si3052 chip(Intel 537EP(G)), si=Silicon Instruments
+ 8086:1080 Intel AC97 controller with modem subSystem 8086:100[7,8,A,0] with
+ with installer is intel-537EP_MostRecentVersion.tgz
+ at http://downloadfinder.intel.com/scripts-df/Product_Search.asp?Prod_nm=537ep
+ Intel 537SP (was known as MD5690) a PCI modem with dsp on board but disabled.
+ 8086:1040 Intel AC97 controller, with modem subsyst 8086:1005
+ with installer intel-537SP-MostRecentVersion.tgz
+ There are ambiguities in identification of modems with two Intel537 AA and EA chipset types
+ http://linmodems.technion.ac.il/archive-third/msg02463.html
+ http://linmodems.technion.ac.il/archive-third/msg02476.html
+ Intel 537AA/EA, MDC/AC97 controller with si3054 modem chip
+ currently supported AC97 controllers - Intel (ICH3,4,5), VIA, NVIDIA, SIS, Realtek, ALI, ATI
+ with installer intel-537AA_secure-MostRecentVersion.tgz
+ serving also Intel 537EA, CNR controller with si3038 modem chip
+
+END
+ fi # IDENT
+ fi # End Intel section
+ fi # DONE
+# EOF
+ # Lucent or Xircom DSP
+ if [ "$IDENT" = "AGERE" ] || [ "$IDENT" = "XIRCOM" ] ; 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
+ cat<<END | tee -a $RECORD
+
+ The modem has a supported Lucent/Agere DSP (digital signal processing) chipset
+ with primary PCI_ID: $PCI_ID
+ DSP=1
+
+ Agere Systems, Inc provides periodic software releases for there DSP modems,
+ which are made more Newbie friendly by volunteers. There are some installer packages
+ and also resources for compiling drivers:
+ http://ltmodem.heby.de is a repository for installers for later 2.4.2n and early 2.6.n kernels.
+ Packages below are for compiling drivers:
+ ResourceName Use for kernel ranges
+ --------------------------------------------------------------------------------------------------
+ ltmodem-8.26a.tar.gz kernels 2.4.21 and earlier
+ ltmodem-8.30a3.tar.gz kernels 2.4.21 and subsequent 2.4.2n kernels
+ ltmodem-8.31a10.tar.gz beginnig with 2.4.21 through and into 2.6.n kernels
+
+ http://linmodems.technion.ac.il/packages/ltmodem/
+ has installers for older 2.4.n kernels moved from http://ltmodem.heby.de
+ and subfolder kernel-2.6/ for 2.6.n kernel support. The latest resouce is:
+ ltmodem-2.6-7-alk-7.tar.bz2 from Alex Kondratenko
+ ltmodem-2.6-7alk.src.rpm is a repackaging for by Stephan Puck. After installation
+ of a kernel-source package (not necessary for fedora releases) use by:
+ rpmbuild --rebuild ltmodem-2.6-7alk.src.rpm , which will deposit an installer at:
+ /usr/src/rpm/RPMS/i586/ltmodem-kv_YourVersion.rpm Check with
+ # ls -l /usr/src/rpm/RPMS/i586/ltmodem*
+ Then install with:
+ # rpm -i /usr/src/rpm/RPMS/i586/ltmodem-kv_YourVersion.rpm
+
+Support is effective at least into 2.6.11-1.14_FC3.
+PCMCIA ltmodem support is still being ported from 2.4.n to 2.6.n, as of May 2005
+
+ http://dag.wieers.com/packages/kernel-module-ltmodem/ for some 2.4.n installers
+ SuSE/Novell has some ltmodem installers at their repositories and newer install CDs.
+ More related output is below.
+
+END
+
+ cat<<EOF>>$RECORD2
+
+ VENDOR $MODEM_VENDOR DEVICE $MODEM_DEVICE
+ ------------------------------------------
+ LUCENT 0x11c1 0x0440-0x045c
+ XIRCOM 0x115d 0x0000-0x000F
+ XIRCOM 0x115d 0x0440-0x045c
+ XIRCOM 0x115d 0x0010-0x03ff
+ -------------------------------------------
+ Driver installer and and their predecessor driver compiler kits are available through:
+ http://ltmodem.heby.de/ and http://linmodems.technion.ac.il/packages/ltmodem/
+
+EOF
+ else
+ cat<<END > $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
+ ## begin LUCENT
+ if [ -z "$IDENT" ] || [ "$IDENT" = "AGR" ] || [ "$IDENT" = "AGERE" ] || [ -n "$DSP" ] && ! [ "$ALSA" = "snd-atiixp-modem" ] && [ -z "$ADONE" ] ; then
+ ADONE=1
+ if [ "$v" = "11c1" ] || [ "$CODEC" = "SIL27" ] || [ -n "$AGR" ] && ! [ "$SMART" = "only" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor 11c1 corresponds to Lucent Technologies or subsidiary Agere Systems, Inc.
+ Information is at: http://www.agere.com/client/modem_dsp.html. Produced are both:
+ 1) modems identifiable from their primary PCI IDs and
+ 2) soft modem Subystem chips requiring identification through codec readouts.
+
+END
+ fi
+ if [ "$CODECp" = "SIL27" ] || [ -n "$AGR" ] ; then
+ Smart=AGR
+ cat<<END>>$RECORD
+ AgereSoftModem drivers only support AC97 or MC97 modem controllers with codecs charcterized by one of:
+ SIL_id = 39
+ mc97 codec is SIL27
+ 0x27 , as output by modem diagnostics under Microsoft Windows
+ If uncertain, identity the softmodem codec through tests described in Modem/SoftModem.txt
+ Support is currently ONLY for 2.4.n kernels and the following modem controllers:
+ 8086:(2416 2426 2446 7196 2486 24C6) , with 8086 == Intel
+ 1039:7013 SIS
+ 1106:3068 VIA
+ Access the soft modem software through code sponsor IBM at:
+ http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52698
+ The SmartLink slmodem-2.9.9 may serve for modems not served by this AgereSystems software.
+
+ If may be necessary to add -DMODVERSIONS to the compile flags,
+ depending on whether your kernel was thus compiled. See
+ http://linmodems.technion.ac.il/archive-fourth/msg01408.html
+
+END
+ elif [ "$Device" = "0462" ] ; then
+ cat<<END>>$RECORD
+
+ 56K.V90/ADSL Wildfire Modem with PCI_ID 11c1:0462
+ http://www.lucent.com/press/0598/980505.mea.html
+ currently lacks support under Linux.
+
+END
+ elif [ "$Device" = "048c" ] || [ "$Device" = "048e" ] || \
+ [ "$Device" = "048f" ] || [ "$Device" = "0600" ] ; then
+ smart=
+ SMART=
+ cat<<END>>$RECORD
+
+ Class 0703: $v:$Device is still NOT supported under Linux, as of $UPDATE
+ It is a "software" modem without a digital signal processing (DSP) chipset.
+ The ltmodem drivers from http://ltmodem.heby.de resources for DSP modems do NOT provide support,
+ A dialout terminates with "No Carrier" or a Hang if usage of the ltmodem drivers is attempted.
+
+END
+ elif [ "$Device" = "0480" ] ; then
+ echo " The Venus controller chipset 1673JV7 modems use the serial.o driver." >>$RECORD
+ elif test -n "$DSP" ; then
+ echo " Call waiting specified by, +pcw=1, is not implmented in the ltmodem drivers." >>$RECORD
+ echo Configuration with forcing is described in: http://linmodems.technion.ac.il/archive-fifth/msg00055.html >> $RECORD
+# Setting up board.info for grepping MODEL_DATA
+ cat<<END > $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 [ "$MAJOR" = "2.6" ] ; then
+ if [ "$SYS" = "2.6.3-4mdk" ] ; then
+ cat<<END>>$RECORD
+
+ There are ltmodem packages in Mandrake. Search for ltmodem in the package lists
+ and check for installation already with:
+ rpm -qa ltmodem
+ There is also a ltmodem-2.6.3-4mdk.tgz at
+ at http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6
+
+END
+ fi
+ if [ "$KVER" = "2.6.8.1" ] ; then
+ cat<<END>>$RECORD
+
+ Drivers compiled with ltmodem-2.6-alk-6.tar.bz2 have been effective with Mandrake 10
+ kernel versions $KVER-* . See within http://linmodems.technion.ac.il/packages/ltmodem/
+ ltmodem-2.6.8.1-10mdk.tar.gz
+
+END
+ fi
+ fi
+ if [ "$DISTR" = "SuSE" ] ; then
+ cat<<END>>$RECORD
+
+ SuSE has a ltmodem packages for with pre-compiled drivers, beginning with the 8 releases
+ For the SuSE 9.1 release, there is an update improving bootup automation.
+ A failure had been reported for the 9.3 release ltmodem package,
+ but the ltmodem-2.6-7-alk-7.tar.bz2 resource gave effective drivers.
+
+END
+ 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
+ fi #DSP
+ fi # IDENT2
+
+ if [ "$v" = "115d" ] || [ "$PCIDEV" = "11c1:0420" ] ; then
+ cat<<END>>$RECORD
+
+ Vendor=115d 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/
+ 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
+ $0 kit
+
+END
+ if test -z "$DSP" ; then
+ echo " The ltmodem drivers do NOT support this modem.">>$RECORD
+ fi
+ fi # Xircom
+
+ if [ -z "$ALT" ] ; then
+ # SmartLink section
+ ALT=1
+
+ if [ "$Smart" = "ALSA" ] ; then
+ cat<<END>>$RECORD
+
+ Under the controller $CNTRL,
+ with modem subSystem $SUBSYS
+ Only ALSA mode usage of slmodem-2.9.n code may provide support.
+
+END
+ fi
+
+ if [ -n "$Smart" ] && ! [ "$Vendor" = "163c" ] && [ -n "$CNTRL" ] && ! [ "$IDENT" = "ATI" ] && ! [ "$Smart" = "ALSA" ] ; then
+
+ cat<<END>>$RECORD
+
+ Under the controller $CNTRL,
+ with modem subSystem $SUBSYS
+ Alternative supporting packages are the SmartLink slmodem-2.9.n using its proprietary slamr driver,
+ or dependent on $CNTRL, an Open Source driver from the ALSA package.
+ See Modem/Slmodem-ALSA.txt for details.
+
+ For SuSE 9.2 users, there is an update for driver slamr.ko loading during bootup.
+ To find it easily, search for "slamr" within http://www.novell.com/linux/download/updates/92_i386.html
+
+END
+ fi
+ fi #ALT
+
+ if [ -z "$SMDONE" ] && [ -z "$DSP" ] && ! [ "$PCIDEV" = "8086:1040" ] ; then
+ echo "163c 2000 2003 2004" > $TMPM
+ # make all KERNEL_VER=2.6.0-test7 , due to lack of kernel-headers
+ if grep $v $TMPM>/dev/null || [ -n "$smart" ] || [ -n "$SMART" ] || [ "$IDENT" = "SMART" ] && [ -z "$CXT" ] && ! [ "$IDENT" = "ATI" ] ; then
+ cat<<END>>$RECORD
+
+ SmartLink at http://www.smlink.com/ owns vendor IDs 163c, 2000, 2003, and 2004
+ The official download site is: http://www.smlink.com/main/index1.php?ln=en&main_id=40 ,
+ but http://linmodems.technion.ac.il/packages/smartlink/ has older packages and new fixes.
+ For the emerging 2.6.10 kernels, use the slmodem-2.9.9d.tar.gz therefrom.
+ Also DO download the ungrab-winmodem.tar.gz
+ For details read Slmodem.txt, Slmodem-ALSA.txt and
+ http://linmodems.technion.ac.il/slmodem-serial.html
+
+END
+ # a HowTo http://www.raspberry.co.za/michael/slmodem.html
+ SMART=
+ smart=
+ fi
+ SMDONE=1
+ fi
+ done
+ # with Vendor and SUBven
+ echo >>$RECORD
+
+if [ -n "$DSP" ] ; then
+ # || [ "$1" = "kit" ] ||
+ 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
+ if [ "$DISTR" = "gentoo" ] ; then
+ cat<<END>>$RECORD
+
+ LTmodem packages are within the Gentoo package system, so you can just run "emerge ltmodem".
+ This will download the source, configure, compile, and install the driver modules.
+
+END
+ fi
+ # DISTR=mandrake
+ # echo DISTR=$DISTR
+ # pick out the Distro section
+ echo > $TMPM
+ if [ "$DISTR" = "conectiva" ] ; then
+ if ! [ "$GCCmajor" = "3" ] ; then
+ cat<<EOF>$TMPM
+
+ltmodem-kv_2.4.18_586-6.28a8-1.i386.rpm
+ltmodem-kv_2.4.19_1U80_13cl-8.26a9-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<<EOF>$TMPM
+
+ltmodem-kv_2.4.21_28872cl-8.26a9-1.i386.rpm
+
+EOF
+ fi
+ fi
+ if [ "$DISTR" = "debian" ] ; then
+ cat<<END>>$RECORD
+
+ Add either of the following lines to the Debian /etc/apt/sources.list
+ to enable automatic updates on installer availability:
+ deb http://www.physcip.uni-stuttgart.de/heby/ltmodem/dists/debian/ ./
+ deb http://www.sfu.ca/~cth/ltmodem/dists/debian/ ./
+
+END
+ if ! [ "$GCCmajor" = "3" ] ; then
+ cat<<EOF > $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.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
+
+ltmodem-2.4.18-k7_8.26a9_i386.deb
+
+EOF
+ else
+ cat<<EOF>$TMPM
+
+ltmodem-2.4.21-5-386_8.26a9_i386.deb
+ltmodem-2.4.21-5-586tsc_8.26a9_i386.deb
+ltmodem-2.4.21-5-686_8.26a9_i386.deb
+ltmodem-2.4.21-5-686-smp_8.26a9_i386.deb
+ltmodem-2.4.21-5-k6_8.26a9_i386.deb
+ltmodem-2.4.21-5-k7-smp_8.26a9_i386.deb
+ltmodem-2.4.21-5-k7_8.26a9_i386.deb
+ltmodem-2.4.21-5_8.26a9_i386.deb
+
+ltmodem-2.4.22-1-386_8.26a9_i386.deb
+ltmodem-2.4.22-1-586tsc_8.26a9_i386.deb
+ltmodem-2.4.22-1-686_8.26a9_i386.deb
+ltmodem-2.4.22-1-686-smp_8.26a9_i386.deb
+ltmodem-2.4.22-1-k6_8.26a9_i386.deb
+ltmodem-2.4.22-1-k7-smp_8.26a9_i386.deb
+ltmodem-2.4.22-1-k7_8.26a9_i386.deb
+ltmodem-2.4.22-speakup_8.26a9_i386.deb
+ltmodem-2.4.22-1-386_8.31a3_i386.deb
+ltmodem-2.4.22-1-586tsc_8.31a3_i386.deb
+ltmodem-2.4.22-1-686_8.31a3_i386.deb
+ltmodem-2.4.22-1-686-smp_8.31a3_i386.deb
+ltmodem-2.4.22-1-k6_8.31a3_i386.deb
+ltmodem-2.4.22-1-k7-smp_8.31a3_i386.deb
+ltmodem-2.4.22-1-k7_8.31a3_i386.deb
+ltmodem-2.4.22-speakup_8.31a3_i386.deb
+
+ltmodem-2.4.25-1-686_8.30a3_i386.deb
+ltmodem-2.4.25-586tsc_8.30a3_i386.deb
+ltmodem-2.4.25-686-smp_8.30a3_i386.deb
+ltmodem-2.4.25-k6_8.30a3_i386.deb
+ltmodem-2.4.25-k7-smp_8.30a3_i386.deb
+ltmodem-2.4.25-k7_8.30a3_i386.deb
+
+ltmodem-2.4.26-1_8.31a3_i386.deb
+ltmodem-2.4.26-1-386_8.31a3_i386.deb
+ltmodem-2.4.26-1-586tsc_8.31a3_i386.deb
+ltmodem-2.4.26-1-686-smp_8.31a3_i386.deb
+ltmodem-2.4.26-1-686_8.31a3_i386.deb
+ltmodem-2.4.26-1-k6_8.31a3_i386.deb
+ltmodem-2.4.26-1-k7-smp_8.31a3_i386.deb
+ltmodem-2.4.26-1-k7_8.31a3_i386.deb
+ltmodem-2.4.26-speakup_8.31a3_i386.deb
+
+ltmodem-2.6.8-1-686_8.31a8_1.i686.deb
+EOF
+ fi
+ fi
+ if [ "$DISTR" = "mandrake" ] ; then
+ if ! [ "$GCCmajor" = "3" ] ; then
+ cat<<EOF > $TMPM
+
+ Only installers compiled with gcc = 3.n are stored at http://ltmodem.heby.de
+ Older packages are at http://linmodems.technion.ac.il/
+
+EOF
+ else
+ cat<<EOF> $TMPM
+
+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.13mdk-8.30a3-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.21_0.26mdk-8.26a9-1.i586.rpm
+
+ltmodem-kv_2.4.22_10mdk-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.22_21mdk-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.22_26mdk-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.22_28mdk-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.22_29mdk-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.22_30mdk-8.26a9-1.i586.rpm
+
+ltmodem-kv_2.4.22_32mdk-8.30a3-1.i686.rpm
+ltmodem-kv_2.4.22_36mdk-8.30a3-1.i686.rpm
+ltmodem-kv_2.4.25_6mdk-8.30a3-1.i686.rpm
+ltmodem-kv_2.4.25_7mdk-8.30a3-1.i686.rpm
+
+EOF
+ fi
+ fi
+
+ if [ "$DISTR" = "redhat" ] ; then
+ echo " Many installers for RedHat are available at http://dag.wieers.com/packages/kernel-module-ltmodem ">>$RECORD
+ if [ -n "$FEDORA" ] ; then
+ cat<<EOF>$TMPM
+
+ltmodem-kv_2.4.22_1.2115.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2115.nptl-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.22_1.2129.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2129.nptl-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.22_1.2135.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2138.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2138.nptl-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.22_1.2140.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2140.nptl-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.22_1.2166.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2174.nptl-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.22_1.2174.nptl-8.30a1-1.i686.rpm
+ltmodem-kv_2.4.22_1.2174.nptl-8.30a1-1.i686.rpm
+ltmodem-kv_2.4.22_1.2197.nptl-8.31a5-1.i686.rpm
+ltmodem-kv_2.6.6_1.427-8.31a7-1.i686.rpm
+ltmodem-kv_2.6.6_1.435-8.31a7-1.i686.rpm
+ltmodem-kv_2.6.7_1.494.2.2-8.31a8-1.i686.rpm
+ltmodem-kv_2.6.8_1.521-8.31a8-1.i686.rpm
+
+EOF
+ else
+ cat<<EOF>$TMPM
+
+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.8-8.26a9-1.i386.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
+ltmodem-kv_2.4.20_24.7-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.20_24.8-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.20_24.9-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.20_24.9-8.26a9-1.i486.rpm
+ltmodem-kv_2.4.20_24.9-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.20_24.9-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.20_27.9-8.26a9-1.athlon.rpm
+ltmodem-kv_2.4.20_27.9-8.26a9-1.i386.rpm
+ltmodem-kv_2.4.20_27.9-8.26a9-1.i486.rpm
+ltmodem-kv_2.4.20_27.9-8.26a9-1.i586.rpm
+ltmodem-kv_2.4.20_27.9-8.26a9-1.i686.rpm
+ltmodem-kv_2.4.20_30.9-8.26a9-1.i686.rpm
+
+ltmodem-kv_2.4.21_4.EL-8.30a1-1.athlon.rpm
+ltmodem-kv_2.4.21_4.EL-8.30a1-1.i686.rpm
+
+EOF
+ fi
+ fi
+
+ if [ "$DISTR" = "SuSE" ] ; then
+ cat<<END>$TMPM
+ltmodem-kv_2.4.20_4GB-8.26a9-1.i386.rpm, SuSE 8.2
+
+END
+
+ fi
+
+################### Listing from http://ltmodem.heby.de/ ends
+
+ fi # Done choosing DISTR block
+ 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""8.nn"_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, fedora all .rpm
+ if [ "$DISTR" = "mandrake" ] || [ "$DISTR" = "redhat" ] ; then
+ echo ltmodem-kv-$PVER-$LT_VERSION-1.$CPU.rpm >>$RECORD
+ # http://linmodems.technion.ac.il/archive-fourth/msg03230.html Marv
+ 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
+ # AGERES=`echo $LT_VERSION | cut -da -f1`
+ AGERES=8.nn
+ cat<<END>>$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 $AGERES 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 [ "$DISTR" = "redhat" ] && [ -n "$FEDORA" ] ; then
+ DISTR=fedora
+ echo " For usage with the udev file system of fedora core 3, see http://linmodems.technion.ac.il/archive-fifth/msg01177.html">>$RECORD
+ # changed back to redhat after this message section
+ fi
+ if [ "$SYS" = "2.6.8.1-12mdk" ] || [ "$SYS" = "2.6.8.1-10mdk" ] && [ "$DISTR" = "mandrake" ] ; then
+ cat<END >> $RECORD
+
+ At http://linmodems.technion.ac.li/packages/ltmodem/kernel-2.6/
+ there is an installer ltmodem-"$SYS".tar.gz
+ Unpack under Linux with:
+ tar zxvf ltmodem-2.6.8.1-12mdk.tar.gz
+
+END
+ elif [ "$BEST" = "$TMPM.1" ] ; then
+ cat<<END > $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<<END > $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
+ echo >/dev/null
+ cat<<END>>$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.
+ Older releases have been archived at:
+ http://linmodems.technion.ac.il/packages/ltmodem/archive/
+ Also there is a RPM search engine at: http://rpm.pbone.net
+ The closest match to your $CPU=CPU is recommended.
+ 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
+ If not present use the ltmodem-$LT_VERSION.tar.gz compiler kit.
+
+ The list of available Installers for $DISTR as of this $UPDATE
+ is inserted into to $RECORD2
+END
+# RC2
+ cat<<END>>$RECORD2
+
+GCCmajor=$GCCmajor
+-----------Installer list for $DISTR --------
+`cat $TMPM`
+------- end Installer List ------------------
+END
+ fi
+ fi # DISTR not recognized
+ if [ "$DISTR" = "fedora" ] ; then
+ DISTR=redhat
+ # changed back to redhat after above message section
+ fi
+ if grep smp $TMPM >/dev/null ; then
+########### RC2
+cat<<END>/dev/null
+
+ 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: noacpi
+
+ The November 2004 AgereSystems 8.30 release is SMP proficient.
+
+END
+############
+
+fi # DSP
+ done
+ # TESTS
+echo " ======= PCI_ID checking completed ====== ">>$RECORD
+## RC2
+cat<<END>>$RECORD2
+
+ If the Primary and Subsystem Vendor information was not adeqaute,
+ it may be useful to search at http://www.pcidatabase.com/
+
+END
+
+# Just to be sure the Update is reported:
+echo " Update=$UPDATE">>$RECORD
+
+# echo Scanning for a PCI bridge to a CardBus with: "$LSPCI 2>/dev/null | grep CardBus"
+echo ---------------------------------------- > $TMPM
+$LSPCI 2>/dev/null | grep -E CardBus | cut -d' ' -f1 >$TMPM.1
+if grep 0000: $TMPM.1 >/dev/null; then
+ CARDBUS=`cat $TMPM.1 | cut -d: -f2-`
+else
+ CARDBUS=`cat $TMPM.1`
+fi
+
+if test -z "$CARDBUS" ; then
+ echo A PCMCIA CardBus is not detected on this System. >> $RECORD
+else
+ port=0
+ for i in $CARDBUS ; do
+ echo >> $RECORD
+ echo Analyzing information for PCMCIA device at PCI Bus $i >> $RECORD
+ $LSPCI -s $i -v 2>/dev/null >> $TMPM
+ echo "GREPping for an inserted PCMCIA modem with filter: ommunication" >> $RECORD
+ MODEM=`$LSPCI -v 2>/dev/null | grep ommunication`
+ if test -n "$MODEM" ; then
+ port=1
+ fi
+ done
+ if test $port -gt 0 ; then
+ echo " A PCMCIA modem is detected." | tee -a $RECORD
+ cat<<END>>$RECORD
+
+ 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<<END>>$RECORD
+ 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
+ echo
+fi
+
+# gcc problem
+if [ "$GCCmajor" = "3" ] ; then
+ echo GCCversion=$GCC >>$RECORD
+#########
+ cat<<END>>$RECORD2
+
+ ---------------------------------------------------------------------------------------------
+ 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
+
+if test -d /etc/udev ; then
+ cat<<END>>$RECORD
+
+For information on modem port creation under the UDEV device file system see:
+ http://linmodems.technion.ac.il/archive-fourth/msg03299.html for Conexnant modems
+ http://linmodems.technion.ac.il/archive-fifth/msg01177.html for Lucent/Agere DSP modems
+
+END
+
+fi
+
+# A general Advisory
+ETHER=`$LSPCI 2>/dev/null | grep Ether | cut -d' ' -f1`
+if test -n "$ETHER" ; then
+ #RC2
+ cat<<END>>$RECORD2
+
+ -----------------------------------------------------
+ The System has Ethernet capability. If not expert,
+ shut down ethernet before initiated modem usage with:
+ # ifconfig eth0 down
+
+END
+ #RC2
+ $LSPCI -s $ETHER -v 2>/dev/null >>$RECORD2
+ echo >>$RECORD2
+fi
+if [ "$MAJOR" = "2.6" ] ; then
+ MODCONF=/etc/modprobe.*
+else
+ MODCONF=/etc/modules.conf
+fi
+############
+
+ cat<<END >>$RECORD
+The following information blocks just query some ppp support items.
+
+====================================================
+ grep -rs ppp $MODCONF
+-------------------------------------
+`grep -rs ppp $MODCONF`
+-------------------------------------
+END
+# Check for unziped drivers
+if [ "$MAJOR" = "2.4" ] || [ "$MAJOR" = "2.2" ] ; then
+ SUF=o
+else
+ SUF=ko
+fi
+Modules="bsd_comp. ppp_async. ppp_generic. slhc ppp_deflate. zlib_deflate."
+for i in $Modules
+do
+ find /lib/modules/ -name $i* 2>/dev/null >> $TMPM
+ if ! grep $i $TMPM>/dev/null ; then
+ echo " PPP support module $i$SUF not found!">>$RECORD
+ fi
+done
+if grep "o.gz" $TMPM > /dev/null ; then
+ cat<<END>>$RECORD
+
+ The following ppp related modules should be unpacked by root with:
+# gunzip PathTo/ModuleName.$SUF.gz
+`cat $TMPM`
+
+ On most Systems, this will driven by installing the wvdial.rpm
+ and the package providing the KPPP graphical dialing interface.
+
+END
+else
+ echo " Resident PPP support modules are properly uncompressed .">>$RECORD
+fi
+if test -x /sbin/ifconfig ; then
+ if /sbin/ifconfig | grep Link | grep -v Loopback >/dev/null ; then
+ echo "----active COMM services are ------------">>$RECORD
+ /sbin/ifconfig | grep Link | grep -v Loopback >>$RECORD
+ echo "This COMM mode should be closed before using the modem, or DNS services may fail.">>$RECORD
+ else
+ echo " COMM services are not active">>$RECORD
+ fi
+fi
+
+if ! grep ppp $MODCONF >/dev/null ; then
+ echo
+ echo Be sure to read the section about ppp related modules and aliases in $RECORD2 >>$RECORD
+
+ cat<<END>>$RECORD2
+
+ 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 $MODCONF or $MODCONF.d/ folders 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 $MODCONF or $MODCONF.d/ folders ,
+ 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.
+ Debian like Distros should instead use:
+ update-modules
+
+END
+fi
+# ethernet and isdn can hinder DNS acquisition
+if test -x /sbin/ifconfig ; then
+ /sbin/ifconfig | grep Link> $TMPM
+ #RC2
+ cat<<END>> $RECORD2
+
+ Attempted or effective networking links are displayed by command:
+ # /sbin/ifconfig
+ A block with "lo" is an internal loopback test and harmless.
+ However, ethernet "eth0" can be problematic for PPP connections,
+ because of competition for DNS (domain name service).
+ The default is to use the DNS specified for etherenet and
+ without expert configuration, this will block browser naviagation through PPP.
+ ========== ifconfig test =============
+ `cat $TMPM`
+
+ If is wisest to disable bootup establishment of ethernet in your Control Center.
+ Depending on your Linux distribution,
+ one of the following Root commands way alternatively be effective:
+ # ifdown eth0
+ # ifconfig eth0 down
+ # /etc/init.d/network stop
+ # /etc/init.d/networking stop
+
+END
+ if grep eth $TMPM>/dev/null ; then
+ echo " Be sure to read the Ethernet section of $RECORD2 " >>$RECORD
+ fi
+ 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<<END>>$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<<END>> $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<<END>>$RECORD
+
+ No devfsd.conf file found, 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<<EOF>>$RECORD
+
+ Supporting /dev/modem symbolic link:
+ $FILE
+------------------------------
+`cat $FILE`
+------------------------------
+
+EOF
+ cat<<END>>$RECORD2
+
+ 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
+echo acpi>$TMPM
+echo disabled>>$TMPM
+echo APM>>$TMPM
+echo apm>>$TMPM
+echo " ---- dmesg queries -------" >> $RECORD
+dmesg | grep -f $TMPM >> $RECORD
+
+
+# cat /etc/Redhat displays: Fedora Core release 1 (Yarrow)
+if grep Fedora $RECORD >/dev/null || [ -n "$FEDORA" ] ; then
+ if [ "$MAJOR" = "2.4" ] ; then
+ cat<<END>>$RECORD
+
+ For usage of winmodems with the kernel-2.4.nn Fedora releases a change in the serial-like driver code of WinModems is necessary.
+ See for guidance: http://hepunx.rl.ac.uk/~wmurray/pctel/pctel.html
+ Basically , the line:
+ if ((tty->count == 1) && (state->count != 1)) {
+ should be changed into:
+ if (atomic_read(&tty->count) == 1 && state->count != 1) {
+ This works in the ltmodem code too. See
+ http://linmodems.technion.ac.il/archive-third/msg02360.html
+ An error about "rs_close" during compiling is a signature that the fedora fix is needed
+
+END
+ fi
+ if [ "$MAJOR" = "2.6" ] ; then
+ cat<<END>>$RECORD
+
+ Beginning with Fedora 2 kernel-2.6.6-1.427, kernel-headers needed
+ for compiling drivers are provide at: /lib/modules/kernel-version/build/
+ Thus upgrading above kernel 2.6.5-1.358 to 2.6.6-* is Stongly Recommended
+
+ pppd version 2.4.2 may not be fully compatible with 2.6.8 kernel releases.
+ If an initial CONNECT is achieved without PPP being subsequently established,
+ drop back to a 2.4.1 version. This has worked for PCTEL AMR modem users,
+ supported by the http://www.smlink.com slmodem software.
+ Check pppd version with:
+ pppd --version
+ See http://linmodems.technion.ac.il/archive-fourth/msg03167.html
+
+END
+ fi
+fi
+### DISTR specific information.
+if [ "$DISTR" = "redhat" ] ; then
+ cat<<END>>$RECORD
+
+ For kernel-version 2.4.20-8 , a failure in utomatic loading of PPP related modules
+ has been reported. It was necessary to manually load with:
+ /sbin/modprobe /lib/modules/2.4.20-8/kernel/drivers/net ppp_generic
+ /sbin/modprobe /lib/modules/2.4.20-8/kernel/drivers/net ppp_deflate
+ /sbin/modprobe /lib/modules/2.4.20-8/kernel/drivers/net ppp_synctty
+ /sbin/modprobe /lib/modules/2.4.20-8/kernel/drivers/net ppp_async
+ or dialout efforts failed.
+
+ The Internet Configuration Wizard writes a configuration file:
+ /etc/wvdial.conf
+ containing a line default line
+ Stupid Mode = yes
+ Better dialup performance may be achieved by commenting out this line as:
+ # Stupid Mode = yes
+ Also non-USA Users may need to add to the [Modem0] block:
+ Init2 = AT+GCI=hexadecimal_country_code
+ but test without it first.
+
+END
+fi
+if [ "$DISTR" = "SuSE" ] ; then
+ cat<<END>>$RECORD
+
+ SuSE 9.0 has pre-compiled drivers supporting the following modem chipsets:
+ Intel HaM and 536ep
+ Conexant HSF (but not the HCF)
+ Lucent/AgereSystems ltmodem (Digital Siggnal Processing type)
+ IBM wmave
+ Smart Link soft modems
+ Unfortunately only the Intel HaM and 536ep are on the 3 CD Personal set, pending an update.
+ Locations on the 6 CD Professional set are:
+ CD4/suse/i586/smartlink-softmodem-2.7.9-89.i586.rpm - the slmodemd daemon
+ CD3/suse/i586/km_smartlink-softmodem-2.7.9-89.i586.rpm - slmodem driver compiling
+ CD4/suse/i586/hsfmodem-5.03.27mbsibeta02122600-92.i586.rpm - softmodem configuration
+ CD4/suse/i586/km_hsfmodem-5.03.27mbsibeta02122600-92.i586.rpm -softmodem driver code
+ installation report - http://linmodems.technion.ac.il/archive-fourth/msg00350.html
+ CD4/suse/i586/ltmodem-8.26a-54.i586.rpm - a patch from SuSE may be needed for function
+ installation report - http://linmodems.technion.ac.il/archive-fourth/msg00458.html
+ CD4/suse/i586/Intel-536ep-4.51-200.i586.rpm
+ CD4/suse/i586/Intel-v92ham-4.51-244.i586.rpm
+ CD4/suse/i586/mwavem-1.0.4-110.i586.rpm
+Some pre-compiled SuSE 9.0 packages for the 2.4.21-99-default kernel are available at:
+ http://linmodems.technion.ac.il/packages/SuSE-9.0/
+ including AgereSoftModem and the Intel537 modems
+
+ IMPORTANT - The kernel-source-144/README.SuSE informs that the pre-assembled kernel-headers installed
+ from the 9.0 kernel-source-99 have some flaws. Upgrading to a later kernel, such as 2.4.21-144 with matching kernel-source is the simplest may of avoiding problems.
+
+ SuSE 9.1 comes with a SmartLink slamr.ko driver installed,
+ aiding identification of softmodem codecs by:
+ dmesg | grep slamr
+
+ For the 9.1 Personal (single CD installation) winmodem packages
+ have be downloaded from the SuSE 9.1 repository
+ Should compiling drivers may be necessary, the following additional packages
+ will have to be downloaded and installed:
+ make, glibc-devel, gcc-3.3.3 and kernel-source.
+ The kernel-headers are co-installed with the kernel-source.
+ Thus subsequent driver compiling does Not require additional preparations.
+
+END
+
+elif [ "$DISTR" = "debian" ] && [ "$Smart" = "may" ] ; then
+ cat<<END>>$RECORD
+
+ There are Debian packages with modem drivers from SmartLink:
+ sl-modem-daemon - SmartLink software modem daemon
+ sl-modem-source - SmartLink software modem driver - module building source
+ MANY modem subSystems serving under AC97/MC97 Controllers are also supported.
+
+END
+elif [ "$DISTR" = "knoppix" ] ; then
+ if [ -n "$DSP" ] || [ -n "$Smart" ] || [ -n "$SMART" ] ; then
+ cat<<END>>$RECORD
+
+ Packages with precompiled drivers for Lucent/Agere DSP modems
+ and SmartLink supported soft modes are available in
+ http://linmodems.technion.ac.il/packages/Knoppix/
+
+END
+ fi
+ cat<<END>> $RECORD
+
+ The bootable CDs of Knoppix releases 3.4 and 3.6 have boot kernels 2.4.26 and 2.4.27
+ These CDs are currently Hostile to winmodem installations for at least 3 reasons.
+ 1) The kernels were compiled with gcc-2.95. While there is provided a /usr/bin/gcc-2.95
+ the default ggc found by compilers is set as:
+ /usr/bin/gcc --> /usr/bin/gcc-3.3
+ Thus with casual usage of many winmodem driver packages,
+ the drivers will be compiled with gcc-3.3 . Such mismatches between
+ a kernel and driver can cause a system CRASH.
+ Thus special effort is required to insure that driver compiles utilize the gcc-2.95
+ 2) Winmodem packages typically try to write drivers to /usr/lib/
+ and installation files to /usr/sbin/ folders.
+ But these folders are positioned on the ReadOnly CD, and the writes will fail;
+ 3) Since compiled drivers cannot be placed in /lib/modules/,
+ they are not perceived by a dependencies reading:
+ depmod -a
+ which would enable simple driver loading on demand or with a single:
+ modprobe Last_Modem_Driver
+ A Bug Report/offer to help Knoppix with these problems has been filed.
+
+ For Knoppix 3.8.1 the kernel-headers for kernel-version 2.6.11 are defective.
+ A corrected package is available at
+ http://www.linuxant.com/driverloader/wlan/full/archive/scripts-knoppix-3.8.1.tar.gz
+
+END
+elif [ "$DISTR" = "mandrake" ] ; then
+ cat<<END>>$RECORD
+
+In the Mandrake installation disks do not include the dialer utility wvdial.rpm,
+then get instructions from http://linmodems.technion.ac.il/archive-fifth/msg01480.html
+END
+else
+ echo " $DISTR is not yet providing pre-compiled drivers for WinModems">>$RECORD
+ echo >>$RECORD
+fi
+
+if ! [ "$BN" = "scanModem" ] ; then
+ /bin/rm -r ./Modem
+ exit 0
+fi
+
+# Output text files
+ cat<<END>Modem/1stRead.txt
+
+ The files in this Modem/ folder have the following roles:
+
+ModemData.txt - Diagnostics and accumulated information cogent to your modem.
+ If further help is needed, send a description of your problem to:
+ discuss@linmodems.org
+ with ModemData.txt attached as a PLAIN TEXT file. Do NOT send other files in this folder Modem/
+ Always send the ENTIRE ModemData.txt, as It includes subtle diagnostic ouputs needed
+ to best guide you. If your PC is a laptop, please provide Make and Model information.
+
+ ModemData.txt with companion files on specific modems/situations may suffice to solve your problems.
+ It recommends sites for needed software, or additional tests You must perform.
+ Always use the most recent update of scanModem accessed ONLY at
+ http://linmodems.technion.ac.il/packages/scanModem.gz
+ to produce ModemData.txt
+ URLs to cogent advice are regularly updated, so your problem may be solved therein.
+
+YourModem.txt has guidance about operating your particular System.
+It should NOT be sent to Discuss@linmodems.org
+
+Rational.txt - Motivations of this scanModem package.
+
+DriverCompiling.txt - Explains the roles of additional files which may have to be installed
+ to support compiling of modem drivers, and the steps to take.
+
+SoftModem.txt - Information and instructions about "soft modems".
+ For these modems, additional steps may be necessary for choice of supporting software.
+ The primary PCI ID is that of the "modem controller", which can support diverse Subsystems.
+ It is the "modem codec" of the Subsystem which determines the software needed.
+
+Slmodem.txt - The slmodem software from SmartLink supports a variety of soft modems.
+ However new Users need to be aware of its special port setup features.
+
+Slmodem-ALSA.txt About ALSA mode usage for slmodem.
+.
+ModemTesting.txt SHOULD be read, but after drivers have been installed.
+
+InfoGeneral.txt has general information about the status of winmodem support under Linux,
+ Do read it if ModemData.txt reports that your current modem is not supported under Linux.
+
+ If you are Linux newcomer, please do locate your local Linux group through:
+ http://www.linux.org/groups/index.html . If you are not comfortable with English,
+ a local Linux user can often be of substantial assistance in getting you on to the Internet.
+
+END
+
+ cat<<END>>Modem/Rational.txt
+
+ This script primarily utilizes the "lspci" utility from the package PCIUTILS.
+ Various component scriptlets interpret the information captured by lspci.
+ For many modems, directions to supporting software and/or more detailed information is enabled.
+ ISA bus modems, 16 bit PCMCIA card modems and USB modems will not be recognized.
+ See the output files for guidance on these cases.
+
+ The script originated as scanPCI written by Chris Hebeisen,
+ to recognize modems with DSP (digital signal processing) chipsets made by Lucent/AgereSystems.
+ It now aspires to provide useful information on other modems as well.
+ For the Lucent/Agere DSP chip modems, System information is used to recommend Installers,
+ from the Installer list output from the repository: http://ltmodem.heby.de/
+ For other modem chipsets fully identified, URLs to support sites are given.
+
+ Three types of information are acquired from your System:
+ 1) General system information necessary for your guidance;
+ 2) The PCI_ID of the modem card, or for the increasingly prevalent "soft modems",
+ the PCI_IDs of its AC97/MC97 controller and its modem subsystem.
+ 3) For soft modems, a SIL_ID of the subsystem is either acquired
+ OR instructions provided for manual agetting it.
+
+ The remainder of $0 is a repository of "modem gossip" or URLs thereto.
+ Only information blocks most relevant to your System will be output into
+ files written to the Modem/ folder
+ Should you need assistance after FIRST following all the advice and/or URLs,
+ 1) Browse the general information at: http://linmodems.technion.ac.il/
+ 2) ONLY thereafter send ModemData.txt to: discuss@linmodems.org
+ Modem/General.txt has common information the List need not be bothered with.
+ 3) Also the archive SEARCH ENGINE at http://linmodems.technion.ac.il/
+ may be useful once PCI or SIL IDs are acquired.
+
+ The scanModem script can be read and word searched with a text browser.
+ Blocks of Information with little code begin and end with #####.
+
+ In case of a failure concerning "lspci", rerun $0 after login to a console with
+ # su - root
+ as Root permission may be necessary for access to lspci.
+
+ Updated on $UPDATE by Marv Stodolsk for access through:
+ http://linmodems.technion.ac.il/packages/scanModem.gz
+ Please do NOT use a scanModem.gz from any other site!!
+
+END
+ cat<<END > Modem/InfoGeneral.txt
+
+ Do NOT send this text with common information to discuss@linmodems.org
+ There are instructions to UNSUBSCRIBE from discuss@linmodems.org at http://www.linmodems.org
+ ==============
+ 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 chipset.
+ This script tries to close this information gap.
+
+ Several sections are included in this file:
+ The Summary of modem Support under Linux
+ description of the soft modem identity tests: SIL ids
+ some output from scanModem specific to your System
+ an explanation of the GCC 2.95 compiler warning
+ ethernet Interference with DNS (domain name service)
+ Please Linux Newbies read carefully, the companion
+ Modem/DriverCompiling.txt and its
+ Followup Modem/DriverTesting.txt section with dialout examples.
+
+ USB modems will not be detected through the acm.o driver with port /dev/ttyACM0
+ UNTIL proper USB support is installed.
+ See http://www.linux-usb.org/USB-guide/x332.html,
+ Linux_kernel_source/Documentation/usb/acm.txt, and
+ http://www.usb.org/developers/devclass_docs/usbcdc11.pdf (page 15)
+ Among the USB modems with proprietary interfaces, there is support for
+ Conexant HSF modems are supported by the hsfmodem package at http://www.linuxant.com/drivers
+ HSF USB with Vendor:Product IDs - 0572:1300 0572:1301 0572:1302 0572:1303 08E3:0111
+ with updates at http://www.linuxant.com/drivers/hsf/index.php
+ HCF Vendor ID: 0572 Product ID: 1290 (Cadmus2 HCF, Conexant) is supported,
+ but NOT the Cadmus I types: http://www.linuxant.com/drivers/hcf/faq.php#25
+ HCF USB Vendor ID: 05AC Product ID: 8202 (Cadmus2 HCF, for Apple/Mac and not PCs)
+ SmartUSB56 (ST7554) based modems with ID: 0483:7554
+ The SWEEX USB modem has the ST7554 chipset
+ Drivers are at http://www.smlink.com/main/index1.php?ln=en&main_id=40
+ http://linmodems.technion.ac.il/archive-fourth/msg00176.html is an installation report.
+ To write out Smartlink information, use the proxy entry
+ ./scanModem test 1131:3400
+
+ PCMCIA card modems can serve if your laptops modem is not supported under Linux.
+ http://freewebhosting.hostdepartment.com/g/gromitkc/pcmcia_list.html
+ The 3COM,Inc 3CXM556 and AgereSystems FM560LK chip modems use the Open Source serial-cs.o driver.
+
+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 > Classical View (for WinXP) > Modem
+ or alternatively under Linux
+# cat /proc/asound/mc97*
+ 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. Here is an example
+ ATI3 - Agere SoftModem Version 2.1.22
+ ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27
+ successfully identifying an Agere SoftModem chipset, both by name and through
+ the:softmodem SIL ID: AC97 ID:SIL REV:0x27
+
+ 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, though there are kluges:
+ http://andywettstein.home.comcast.net/ess/
+ http://tx.technion.ac.il/~raindel/
+ 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.10 drivers will support Many but not all modem Ssubsystems
+ that serve under AC97/MC97 controllers.
+
+ 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 being updated;
+ there will likely be failures under emerging 2.6 kernels.
+ The 536ep and five Intel537 modem chipset variants are actively supported.
+
+ Lucent /AgereSystems
+ 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
+ For AC97/MC97 soft modems. Initiate software access through code sponsor IBM:
+ http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-52698
+ Coding of support for has Not yet begun PCI soft modems with PCI_IDs 11c1:048?
+ and probably will first be available within 2004.
+
+ Motorola support is at: http://www.motorola.com/softmodem/sm56_download.htm
+ through 2.4.22 kernels.
+
+ 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 of the HSP soft modems are supported by the SmartLink slmodem-2.9.10 drivers.
+
+ Broadcom modems in Dell laptops and PCs - can be made to function under 2.4 kernels, but code has not been updated recently.
+
+ --------- end chipset section ----------------------
+
+ SUPPORT under the current 2.6.nn kernels.
+
+ The more expensive Controller chipset modems are functioning.
+ SmartLink slmodem-2.9.9 drivers are functioning.
+ Conexant has 2.6.n support
+ The Lucent/Agere digital signal processing (DSP) chipsets do have
+ informal service into 2.6.n kernels and an AgereSystems release is soon expected.
+ Intel, Agere Systems and Linuxant are firmly expected to continue support into 2.6.nn,
+ though the Intel HaM software will not be updated to 2.6.n service
+
+ ------------------------------------
+ Preparing winmodem drivers will generally require compiling.
+ If you are not familar with this process DEFINITELY read carefully
+ the Modem/DriverCompiling.txt
+
+END
+
+cat<<END>Modem/DriverCompiling.txt
+
+ =======================================================
+ COMPILING DRIVERS, for Linux Newbies
+
+Within the workshop there is an instruction set, the Makefile, and a few tools. You command:
+ make clean
+An elf named "make" comes in, reads Makefile and then cleans up any debris of previous efforts.
+Do ALWAYS command "make clean" as a first step before new driver compilations.
+The major work of compiling drivers and any associated tools is commanded with:
+ make
+or perhaps
+ make DriverName
+There only remains to command installation of the modem driver(s) and tools with:
+ make install
+Configuration of a dialout utility is done elsewhere, and you can access the Internet.
+
+It is really that simple, once the workshop with tools has been prepared.
+But new drivers have to be compiled with every operaing system update.
+The remainder of this text is thus aids you in the preparations, dealing with a variety of special cases.
+Most points are covered in much more detail in the Linux Kernel-HOWTO, likely included among the
+HOWTO documentation set installed within /usr/share/doc/ folders.
+
+The core operating system of a PC is comprised of a motherboard, the software kernel,
+and its auxilliary code modules. The kernel is the file /boot/vmlinuz-$SYS.
+Modules located in subfolders of /lib/modules/$SYS/ . They can be inserted into or removed
+from the acting kernel upon demand. This provides adaptablity to the diverse
+hardware components of PCs and changing requirments.
+
+Modem drivers are one type of module. As contrasted to most Linux software, modem driver codes have
+some non-public code components. That is the drivers are not fully Open Source, to protect
+Intellectual Property of the providing companies. This has a consequence that many Linux distributions
+will not or cannot legally supply proprietary modem drivers. Rather the Users must get the
+modem code package and direct compiling of the code and driver installation.
+
+A complementary resource for compiling is a family of FileNames.h, collectively called kernel-headers.
+They are both code bits themselves and also call for other code bits their functioning depends on.
+Depending on the Linux distribution, kernel-headers may not be automatically installed.
+If not they will always be made available on installation media or some Linux repository.
+They can be searched for by package names including: kernel-source, linux-source, kernel-headers and linux-headers
+There are always some kernel-headers in afolder /usr/include/. But these are an INCOMPLETE, too small collection
+and DO NOT suffice for compiling processes.
+
+In addition some software utilities may have to be installed. The instructions for compiling are read by make.
+A set of compiler tools are installed as a gcc-SomeVersion package. After compiling, the various pieces
+and linked dynamically together with "ld". Together wiith some simpler software tools, the ld will
+already be installed on Linux systems. Systems using the Debian style maintanence system
+additionally require a package "kernel-kbuild-3.n" to properly utilize kernel-headers or 2.6.n kernels.
+
+The "kernel-headers" are matched with an installed kernel, or must be generated from a kernel-source package.
+These are provided in different ways by the various Linux distributions, under 2.6.n kernels:
+ Redhat and Fedora - installation is coincident with kernel installation,
+ with placement of the kernel-header base folder in /lib/modules/$SYS/build/
+ Mandrake and SuSE/Novell - installation as part of a kernel-source or linux-source packages,
+ with location at /usr/src/kernel-headers-$SYS or /usr/src/linux-$SYS
+ Debian and distros using its Package.deb format have names:
+ kernel-headers-$SYS
+ linux-headers-$SYS for Ubuntu
+ and installation is into /usr/src/
+ Others - ???
+
+For the prior generation of 2.4.n kernels, there are special cases. Skip this if your kernel is a 2.6.n or a Debian type.
+For RPM using distros, the kernel-source-$SYS or linux-source-$SYS packages must be installed and configured as described below:
+ 1) SuSE with KernelVersion 2.4.21-144-* or later - install the matching kernel-source package, which does also contain the kernel-headers;
+2) for Fedora II or later, kernel-headers are/were coinstalled with the kernel package;
+3) for all other cases of 2.4.n kernels, the kernel-headers must be prepared from kernel-source.
+ The preparation can be summarised in a few steps/actions:
+ Install a kernel-source package representing your kernel.
+ Change directory (cd) into its base folder. The kernel-source in general
+ will match only one of several kernels that could have been installed
+ and NOT necessarily yours. Thus clean out any remnants of earlier usages with:
+ make mrproper
+ Copy in your kernel configuration file and have it read with:
+ make oldconfig
+ If necessary edit ONLY the fourth line of the Makefile, which completes
+ the specification of where drivers will be installed to (details below).
+ The kernel-headers are then assembelled by either:
+ a) for 2.4.nn kernels by
+ make dep
+ b) for 2.6.n kernels,
+ make bzImage
+which includes an integral "make dep" step.
+
+Modem related resources may or may not have been installed during the primary Linux installation,
+as WinModem hardware is often NOT recognized. Search your Distro's package
+descriptions for "modem" to reveal the status of related resources. Read
+the package description to determine whether pre-compiled modem drivers were provided.
+RESOURCES of a few types are needed to get on line. Do PREFERABLE use your System's
+package maintenance system for the installation. This should guarantee that
+any DEPENDENT packages will be called into the installation process. As a preliminary
+1) Install your distributions package providing the KPPP, WVDIAL and MINICOM dialer utilities.
+Dependencies within such packages will also drive the unpacking of ppp related modules
+from compressed to a functional form :
+ module.o.gz --> modules.o
+or for 2.6.n kernels
+ module.ko.gz --> module.ko
+In addition these dialers will later aid testing and configuration,
+which is to be performed only AFTER, the modem's drivers are installed.
+
+2) Download if necessary and modem driver package specific to your modem hardware.
+3a) Install if necessary your distrbution's kernel-source package, necessary for preparing kernel-headers under 2.4.n kernels
+Or for Debian style distributions,
+3b) install the kernel-header-$SYS.deb package matching your kernel version $SYS.
+
+A KERNEL-SOURCE package must be installed, if a full kernel-header set
+is not otherwise provided. Kernel-source packages are now some 30-40 MB now even in compressed form.
+The 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 two symbolic links:
+ /lib/modules/$SYS/build --> PATH_to/kernel-source-version/
+ /usr/src/linux --> PATH_to/kernel-source-version/
+These later enable access to the kernel-headers needed during the modem driver compiling. Check with:
+ ls -l /lib/modules/$SYS/build
+ ls -l /usr/src/linux
+The former link is more usefull for Systems with alternative boot kernels,
+and is mandatory for some modem compiler packages.
+
+HIGHLY IMPORTANT: the kernel-source as installed in generally does NOT
+represent your current kernel version, EVEN if the kernel-version is the same.
+Only one of several possible kernels was installed on your System,
+and the unpacked kernel-source need NOT represent it exactly!!!
+For example, in the RedHat Distro 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 name: "uname -r" .
+!!!! Thus a PROPER CONFIGURATION MUST BE DONE by You, before compiling drivers !!!!
+
+Examples provided below are partially customized from your System settings.
+CONFIGURATION is started by moving into the kernel-source folder with one of:
+ cd /lib/modules/$SYS/build
+ cd /usr/src/linux
+END
+if test -f /lib/modules/`uname -r`/build/Makefile ; then
+ MKFL=/lib/modules/`uname -r`/build/Makefile
+
+elif test -f /usr/src/linux/Makefile ; then
+ MKFL=/usr/src/linux/Makefile
+else
+ echo Makefile not found>/dev/null
+fi
+if test -n "$MKFL" ; then
+ cat<<END>>Modem/DriverCompiling.txt
+
+ There is a Makefile on your System at: $MKFL
+ with first few lines:
+
+END
+ grep -A3 -m 2 VERSION $MKFL >>Modem/DriverCompiling.txt
+ echo>>Modem/DriverCompiling.txt
+else
+ echo " A kernel-source packages is not evident on your System">>Modem/DriverCompiling.txt
+fi
+cat<<END>>Modem/DriverCompiling.txt
+For your current kernel, the fourth line should be
+ EXTRAVERSION = -$KEXT
+where -$KEXT has been read from your current kernel version: $SYS.
+But it this does not match what is Actually in the Makefile,
+then it represents a Different kernel-header set then that of your kernel!!!
+
+For Mandrake Linux their will generally be an included "mdk", such as:
+ EXTRAVERSION = -3.1mdk
+SuSE 9.0 had:
+ EXTRAVERSION = -99-default
+The first four makefile lines specify that:
+a) the compiled kernel modules/drivers will have encoded version labels such as:
+ 2.4.21-3.1mkd OR 2.4.21-99-default
+b) such modules including modem drivers are installed into sub-folders of
+ /lib/modules/2.4.21-3.1mkd/
+ /lib/modules/2.4.21-99-default/
+The major points are that compiled drivers must be both
+kernel-release (the 2.4.21) AND EXTRAVERSION matched with the installed kernel.
+Otherwise they may be installed uselessly and not be detected by the kernel
+OR there will be a failure upon attempted insertion, with message including:
+ a list of "unresolved symbols ".
+
+Kernel-headers may be resident from a prior 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 by
+ cat include/linux/version.h
+ #define UTS_RELEASE "2.4.21-3.1mdk" (as an example)
+
+Next, list completely the contents of the kernel-source 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. Below is an example:
+ -------------------
+ .config .hdepend .depends
+COPYING Makefile Rules.make init mm
+CREDITS README arch drivers ipc net
+Documentation conf.vars fs kernel scripts
+MAINTAINERS REPORTING-BUGS crypto include lib
+
+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 kernel-source/ folder, browse the README file for general guidance.
+It will relate that the command:
+# 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.
+2) If necessary to edit, FIRST make a backup:
+ cp Makefile Makefile.backup
+then edit ONLY the 4th line of Makefile to match the EXTRAVERSION of $SYS
+ EXTRAVERSION = -$EXT
+NEVER change anything else within the Makefile.
+
+3) Set the dependencies of the current kernel.
+For SuSE 9.0 and later, there is a command which does the following steps
+ # make cloneconfig && make dep
+ Also browse the excellent README.SuSE in the kernel-source/ folder
+For other Distros, the following steps are necessary, within the kernel-source/ folder
+ copy the kernel-config file to .config
+ and DO SPECIFY that " . "
+But where is it? For many Distros, it will be the file like
+ /boot/config-$SYS
+matching the output of:
+ uname -r
+Or it may be the target of a symbolic link: /boot/config -->
+So
+ cp /boot/config-$SYS .config
+For SuSE 8.0 and earlier versions it is:
+ cp /boot/vmlinuz.config .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:
+ #
+ # Automatically generated make config: don't edit
+ #
+ CONFIG_X86=y
+ # CONFIG_SBUS is not set
+ CONFIG_UID16=y
+etc.
+
+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 may generate additional .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) For the SuSe Linux versions 8.0 and previous , 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 build kernel-headers with:
+ make dep
+for 2.4.n kernels or for 2.6.n kernels
+ make bzImage
+during which you can walk your dog, take a shower, have tea, etc.
+7) Check for resultant FileNames.h with:
+ ls include/linux/
+and
+ cat include/linux/version.h
+to verify the version.
+
+COMPILING the MODEM DRIVERS can now finally be done.
+Unpack the compiler kit for your modem drivers,
+cd into its folder, read any README or INSTALL files,
+ make clean
+FINALLY, your modem drivers will compiled by a command like
+ make OR 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
+
+ THEORETICAL ISSUES
+
+WinModem driver packages 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 an already complied, or BINARY format, component of the modem code.
+
+2) A Closed Source component compiled into the binary form, in which
+proprietary information is encrypted. This will include the copyrighted Vn.nn compression algorithms.
+In 2004, pre-compiled modem drivers are beginning to be included
+for a few winmodems by some Linux distributions.
+But the binary format precludes incorporation of the modem drivers in some Linux distributions
+for legal reasons, practical reasons, and/or reasons of principle.
+
+Since almost all the newer PCs are now equipped with WinModems,
+many users will have to compile their own 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.
+They lack Controller chips of the earliest modems, and may additionally lack Digital Signal Processor (DSP) chips of second generation modems.
+Functions of Controller based chipsets are replaced by a combination of
+software code and/or other System hardware.
+
+Modems without a controller chip are referred to as "controllerless modems" and
+modems lacking both a DSP and controller chips are referred to as "soft modems".
+With faster central processor units (CPU), some processing tasks are performed
+by the CPU for the controllerless modems. The CPU does nearly all
+the signal processing for the "soft modems" lacking a DSP.
+
+AC97 or MC97 soft modems conform to an ac97_codec, and can host a variety of Subsystems It is the CODEC of the Subsystem which determines which software should be utilized!!
+and any modem controllers can host one of a variety of soft modem Subsystems.
+There are additionally soft PCI modems without such controllers, which still utilize
+the common ac97_modem.o driver. In general it will be YOUR task to identify
+the Subsystem codec and compile the needed driver.
+
+## end Modem/DriverCompiling.txt
+
+END
+
+ cat<<END> Modem/Slmodem-ALSA.txt
+
+ The ALSA ( Advanced Linux Sound Architecture) package includes some modem
+ drivers which provide low level support for a few soft modem controllers.
+ Pulse dialing (ATDP) is Not supported with these ALSA modem drivers however.
+
+ As of this update $UPATE there is support for the following soft modem controller types:
+ PCI ID controller name/source low level Module
+ ======= =============== ===============
+ 8086:xxxx several Intel ICH types snd-intel8x0m
+ 10de:00d9 Nvidia Corp "
+ 1002:434d ATI snd-atiixp-modem
+ 1106:3068 VIA snd-via82xxx-modem
+ 10b9:5451 ALI 5451 snd-ali5451-modem.ko (in progress)
+
+ To use ALSA modem drivers, the SmartLink slmodem package must be compiled
+ with an ALSA support option. The resultant slmodemd daemon provides for
+ creation of a port and /dev/pts/N (N a number) and a symbolic link to it:
+ /dev/ttySL0 --> /dev/pts/N
+ The command seqeunce is:
+ modprobe Module
+ with Module being one of the four above
+ /usr/bin/slmodem --country=YourCountry --alsa hw:1 &
+ hw is short for hardware port. hw:0 is typically reserved for the audio card.
+ The & merely puts the daemon function in the backgound, so that the command prompt is recovered.
+ The slmodemd shutdown can later be done by:
+ fg slmodem
+ Ctrl-C
+
+ This service has the additional requirements:
+ 1) The subsystem must be one of those compatible with slmodemd.
+ Excluded are Conexant Subsystems, which are alternatively supported by the hsfmodem package from
+ http://www.linuxant.com/drivers/
+
+ For many other Subsystems, the instructions below on using SmartLink slmodem software
+ in ALSA mode is cogent. Slmodem.txt and Testing.txt complement the information herein.
+
+2) The modules must be compiled form ALSA release of at least 1.0.6a or later version.
+Check your System with
+# alsactl --version
+ alsactl version 1.0.6
+on my Debian 2.6.10 System. So more current code would be necessary.
+Should your System be less than 1.06a, follow the instructions here in.
+Should a message " error: mixer setup: Off-hook switch not found for card hw:1"
+be delivered while dialing, use at least version 1.0.9rc3 .
+If later, just skip to the next section.
+Download software from http://www.alsa-project.org, The release of May 2006 is 1.08.
+Download both alsa-lib and alsa-driver packages. Make a folder:
+ mkdir newALSA
+Unpack both packages in the newALSA/
+ Follow the compilation and installation instructions therein, which will
+install the ALSA modules and complementary software.
+
+3) Compilation of slmodemd with ALSA support requires prior installation of
+a package libasound2-dev, which will be provided by your Linux distrbution.
+It has header files needed for the slmodemd compilation. For for Mandrake/Mandriva,
+ the package name is libalsa2-devel . Use the slmodem-2.9.9d-alsa.tar.gz package
+ downloaded from http://linmodems.technion.ac.il/packages/smartlink/
+ Also download the ungrab-winmodem.tar.gz which will be necessary for some Systems,
+ providing an upgrab-winmodem.ko modules. See http://linmodems.technion.ac.il/slmodem-serial.html
+
+4) Login to a console as;
+# su - root
+Shift into the slmodem-2.9.9d-alsa folder. Look at contents:
+# ls
+ COPYING Changes Makefile README drivers modem patches scripts
+Clean up any old remnants with:
+# make clean
+The slmodemd will be compiled by make:
+# make
+and installed to /usr/bin/slmodemd by:
+# make install
+
+An initial check for functionality is:
+ modprobe Module
+with Module being the appropriate ALSA modem driver.
+Should there be a failure, with message "grabbed by serial driver", First
+ modprobe ungrab-winmodem
+before
+ modprobe Module
+
+Start the daemon with one of:
+ slmodem --country=YourCountry --alsa hw:1 &
+ slmodem --country=YourCountry --alsa modem:0 &
+ slmodem --country=YourCountry --alsa modem:1 &
+When Module is snd-atiixp-modem , instead use
+ slmodem --country=YourCountry --alsa modem:0 &
+
+ Subsequently follow the details in Slmodem.txt and Testing.txt
+
+END
+
+cat<<END>Modem/Testing.txt
+ MODEM TESTING
+
+This text is complemented by the Post-Install at http://linmodems.technion.ac.il
+Please so consult it if the following does not suffice.
+
+The wvdial package provides for an automated hardware+driver test.
+This utility searches through ports with syntax: /dev/ttyS* (i.e. S0, S1, SL0 etc.)
+and also follows a symbolic link:
+ /dev/modem --> /dev/ModemPort
+If your modem port name does not satisfy these requirements already,
+do a console login as:
+ su - root
+Make the symbolic links as:
+ ln -sf /dev/ModemPort /dev/modem
+ ln -sf /dev/ModemPort /dev/ttyS15
+wherein /dev/ttyS15 is reserved for experimental usage.
+ Should there be problems with wvdial version 1.54.1-1 , drop back to 1.54.0-1
+
+For recent RedHat and Fedora releases, wvdialconf is used by the Internet Wizard.
+Within the pop-up menus find the Wizard. Its actions will write a configuration file:
+ /etc/wvdial.conf
+For other Linux distros, open a console and login with
+ su - root
+If necessary load the modem drivers:
+ modprobe DriverNames
+Then run the test:
+ wvdialconf /etc/wvdial.conf
+Checks /dev/modem and ports /dev/ttyS*, a success at port /dev/ttySLT0 would be:
+ 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
+ etc.
+The /etc/wvdial.conf written looks like:
+
+ [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 = <Target Phone Number>
+; Username = <Your Login Name>
+; Password = <Your Password>
+
+For systems using the SmartLink slmodem drivers,
+the following line should be added to its /etc/wvdial.conf
+ Carrier Check = no
+So after editing in your personal information a functional file is like:
+
+ [Dialer Defaults]
+Modem = /dev/ttySLT0
+Baud = 115200
+Init1 = ATZ
+Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
+# if there is problem with dial tone acquisition, add into the above line:
+# X3
+# meaning "dial without waiting"
+ISDN = 0
+Modem Type = Analog Modem
+Phone = DialupPhoneNumber
+Username = Your_Login_Name
+# for MSN.net, use instead
+# Username = MSN/Your_Login_Name
+Password = Your_Password
+# if usging the SmartLink slmodem drivers, uncomment:
+# Carrier Check = no
+
+The lines above beginning with " # " are Comments not read as code.
+Remove the " # " to activate a line. Then try getting on line with:
+# wvdial
+
+The /etc/wvdial.conf generated by the RedHat/Fedora Internet Wizard
+has a different format, adapted to its own dialer. This includes a line
+ Stupid Mode = yes
+More informative dialup feedback May be obtained if it is commented out:
+# Stupid Mode = yes
+
+ A dialout 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: LoginName
+LoginName
+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
+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
+
+The & in "wvdial &" puts the process into the background,
+allowing further usage of the command prompt. To stop a backgrounded process:
+# fg wvdial
+# Ctrl -C
+
+TROUBLE SHOOTING
+
+Check for modem driver loading.
+Do FIRST read INSTRUCTIONS files provided with the modem driver resource.
+Some may have installed to /usr/share/doc/Modem_or_Driver_Name/
+For RPM using distros, documentation files will be listed through
+ rpm -q -d packageName (less the version part, sometimes)
+and all directly installed files can be listed by
+ rpm -q -l packageName
+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
+If there are multiple drivers such as the lt_modem.o and lt_serial.o pair,
+commanding the serial like driver:
+# modprobe lt_serial
+should autoload all modules it depends on. Check with:
+# lsmod
+This proceeds through a reading of dependency files
+written to /lib/modules/$SYS/ during boot up through the "depmod -a" command.
+In constrast
+# insmod lt_serial
+would only attempt loading of that single driver and will FAIL, if its dependency on
+lt_modem.o has been satisfied by prior lt_modem.o insertion.
+
+ Do read "man wvdial" and /usr/share/doc/vwdial documentation
+sometime browse the documentation that is written to /usr/share/doc/wvdial/
+Therein are instructions for setting up alternative dialouts.
+
+%%% This wvdialconf action if successful generates the files:
+ /etc/ppp/peers/wvdial
+ /etc/ppp/peers/wvdial-pipe
+in addition to the /etc/wvdial.conf
+
+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.
+The configuration process generates a file: /home/UserFolder/.kde/share/config/kppprc
+Therein, non-standard modem port names can be entered, such as:
+ [Modem]
+ Device=/dev/ttySHSF0
+ for the Conexant hsfmodem port.
+
+
+Preparation for dialout if other COMM modes are active.
+---------------------------------------------------------------------------
+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
+
+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 &
+The & puts the commanded process in the "background" allowing recovery of the command prompt.
+
+Some dialer packages (kppp etc) may automate the above steps.
+
+
+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
+ pppconfig - Debian configuration toolset with command: pppconf
+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 require 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.
+
+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 Mode = 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 is country code in hexidecimal format.
+ 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 country, choose the nearest one available.
+ Nearby countries tend to have similar equipment and compatible dialtones.
+
+ These comments from: Emard <emard@softhome.net>
+ =================
+
+8) 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
+
+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
+
+Once your first CONNECT has been established, than in the future if should suffice
+just to use your dialer of choice: wvdial , kppp .gnomeppp or whatever.
+
+Good surfing to you.
+
+10) 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.
+
+ Many driver packages provide for loading modem drivers on bootup.
+ Here is a description on how to set it up, if necessary:
+ http://linmodems.technion.ac.il/archive-fourth/msg00451.html
+
+ PLEASE include the diagnostic output of the following Root command in any problem reports:
+ # setserial -agv /dev/ttyS*
+
+ For instructions on having modem drivers loaded on bootup,
+ particularly the SmartLink slmodem drivers see:
+ http://linmodems.technion.ac.il/archive-fourth/msg00451.html
+ For automated removel of drivers after a PPP session see:
+ http://linmodems.technion.ac.il/archive-fourth/msg00145.html
+
+ For general upto date advice:
+ http://linmodems.technion.ac.il/
+ http://linmodems.technion.ac.il/resources.html
+ available in Russian at http://linmodems.nm.ru
+ for a general PCI_ID database
+ http://www.pcidatabase.com/
+ 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/ (near bottom of the page)
+ There is an extensive modem database at:
+ http://start.at/modem/
+ Locate your local Linux groups through:
+ http://www.linux.org/groups/index.html
+ USB modem information: http://www.linux-usb.org/USB-guide/x332.html
+ Laptop users should browse http://tuxmobil.org/modem_linux_add1.html
+ For debugging ppp:
+ http://www.cisco.com/warp/public/471/debug_ppp_negotiation.html
+
+---------- end FOLLOW UP STEPS ---------------
+
+END
+
+ cat<<END>Modem/Slmodem.txt
+ SLMODEM PACKAGE USAGES and TESTING
+
+Summary
+-----------------
+SmartLink (SML hereafter, http://www.smlink.com) produces chipsets for PCI card and USB modems
+which are incorporated into a variety of BrandName modems. The complementary slmodem software supports these modems, and Very Beneficially, a variety of soft modems with Subsystems
+from other chipset manufacturers. The installed software has components:
+ /usr/bin/slmodemd - a daemon that provides most services, including dynamic port creation.
+ /dev/slamrN and /dev/slusbN (N = 0,1,2 or 3) are proxy devices used by
+ slmodemd in port creation for PCI and USB modems respectively. The true port is of type
+ /dev/pts/N , N a number, with a symbolic link to it also created:
+ /dev/ttySL0 --> /dev/pts/N
+ slusb.ko - driver for the USB modems
+ slamr.ko - a low level driver which accesses the port,
+ There are subsititutes for slamr.ko within the Open Source ALSA package
+ (snd-intel8x0m.ko , snd-via82xx-modem.ko or snd-atiixp-modem.ko ) working with most
+ modem hardware, and provided that slmodemd was compiled with ALSA (Advanced
+ Linux Sound Architecture) support. (See the companion Slmodem-ALSA.txt)
+ the code folder slmodem-2.9.n/scripts/ contains scripts which can provide bootup automation
+Details follow.
+
+ Slmodem support
+ -------------------------------
+ The software features support for :
+ FAXing, though not the AT&F command;
+ SMP (Symmetric MultiProcessor) mother boards;
+ 64 bit AMD x86_64 processor mother boards, see
+ http://linmodems.technion.ac.il/archive-fourth/msg02594.html;
+ the SmartUSB56 (ST7554) chipset with vendor/product usb ids 0483:7554,
+ see report at http://linmodems.technion.ac.il/archive-fourth/msg03609.htm
+ A few modem hardware types are supported:
+ the USB modems ;
+ several BrandName modems, for which the primary PCI suffices for chipset identification;
+ many soft modems, for which a "mc97 codec" as well as PCI ID must be acquired,
+ as described in the companion SoftModem.txt and below.
+Software download sites are:
+ SML - http://www.smlink.com for slmodem-2.9.10.tar.gz, with license to support only SML
+ chipset modems. The slmodem package maintainer is Sasha Khapyorsky. His quick fixes are at:
+ http://linmodems.technion.ac.il/packages/smartlink/ Currently cogent packages are:
+ ungrab-winmodem.tar.gz - necessary for some Systems which falsely presume that
+ the modem is a serial port modem type. See http://linmodems.technion.ac.il/slmodem-serial.html
+ slmodem-2.9.9d.tar.gz - providing compiling resources for slmodemd, slamr.ko and slusb.ko
+ slmodem-2.9.9d-alsa.tar.gz - providing for compilation of slmodemd with ALSA support,
+ so that the ALSA driver alternates described can be utilized.
+ This 2.9.9x version software is licensed for use with any compatible softmodem.
+
+The slamr diagnostic
+-----------------------------
+If you have just downloaded the slamr.ko driver matching your kernel,
+just move into the folder with slamr.ko and
+# insmod slamr.ko
+ will generate a warning about "Tainted kernel", and perhaps about non-SmartLink chips.
+ So long as the driver loads, just ignore them. Read related kernel messages with
+# dmesg | grep slamr
+The output should include a line like:
+ slamr: mc97 codec is CodecName
+ wherein the CodecName is needed to choose the correct software
+
+Should the be an output like like:
+---------------
+slamr: unsupported module, tainting kernel.
+slamr: module license 'Smart Link Ltd.' taints kernel.
+slamr: SmartLink AMRMO modem.
+slamr: device 10b9:5457 is grabbed by driver serial
+------------
+The "grabbed by driver serial" indicates a compensating driver is needed.
+Use the ungrab-winmodem.tar.gz resource to compile the ungrab-winmodem.ko
+After installation, first do
+# modprobe ungrab-winmodem
+before
+# modprobe slamr
+# dmesg | grep slamr
+
+
+ A slamr.ko driver may already be installed (SuSE/Novell Linux). Please run the following test sequence:
+ # su - root
+ # modprobe -r slamr
+ Ignore any warning message
+ # modprobe slamr
+Then same as above. Get the CodecName and send the information to Discuss@linmodems.org
+ Explanation and details follow below.
+
+ Special cases:
+ ---------------------------
+ For BCM64/Broadcom and ATI softmodem support, only the slmodem-2.9.9d-alsa.tar.gz can serve.
+ Within the Modem/ folder output by scanModem, browse Slmodem.txt, Slmodem-ALSA.txt and Testing.txt
+ There have been a few reports of problems being solved by using Bootup options:
+ noapci and/or apci=off
+ thus dropping back to the APM power management mode.
+ Solution of a CONNECT problem has been achieved by specifying a slower V32 modulation
+ see http://linmodems.technion.ac.il/archive-fifth/msg00137.html
+
+ General installation:
+ -----------------------------
+ If your Linux distribution provides a slmodem package, the package manager will typically
+ install it to /usr/src/moduels/slmodem-2.9.N . But it downloaded as a slmodem-2.9.N.tar.gz,
+ if could be unpacked in a folder of your choice. The following directions assume installation to:
+ /usr/src/moduels/slmodem-2.9.N
+ Do a Root login into a command console:
+ # su - root
+ # cd /usr/src/moduels/slmodem-2.9.N
+ Look at contents:
+ # ls
+ COPYING Changes Makefile README drivers modem patches scripts
+
+ For Debian related Distros there is an sl-modem-daemon.deb package providing
+ slmodemd and initializaton scripts. A separate sl-modem-source.deb packages
+ houses the slamr and slusb driver code. It is installed as:
+ /usr/src/sl-modem.tar.bz2
+ Unpack by
+ # cd /usr/src/
+ # tar jxf sl-modem.tar.bz2
+ which opens into:
+ /usr/src/modules/sl-modem/
+ Move in with:
+ # cd /usr/src/modules/sl-modem/drivers
+ for subsequent steps.
+
+ The routine compiling steps are:
+ # make clean
+ # make
+ # make install
+A detaile example is http://linmodems.technion.ac.il/archive-fourth/msg00176.html
+
+ Also install the wvdial package if your Distro provides it.
+ The wvdialconf provides a first simple test of Hardware + Software functionality.
+
+ Afterward a test can be performed:
+ # modprobe slamr
+ See a resulting the kernel report with:
+ # dmesg | grep slamr
+ which may contain a line:
+ slamr: mc97 codec is CodecName
+ with CodecName being a variable diagnostic output.
+ There are 4 cases:
+ a) codec is SILnm , with n,m numbers
+ there are good prospects for the modem being supported by the slmodem resources.
+ b) codec is INT65
+ The Intel_secure-537AA-CurrentVersion should serve,
+ with slmodem support an alternative for compatible modem controllers.
+ c) codec is CXTnm
+ the softmodem is a Conexant type.
+ ONLY hsfmodem drivers from http://www.linuxant.com can be utilized.
+ Do remove the slmodem installation first with:
+ # make uninstall
+ before proceeding further.
+ d) codec is BCM64
+ the soft modem has a Broadcom codec and the slmodem-2.9.9d-alsa MUST be used.
+ See http://oboc.ucdavis.edu/Marik/inspiron/
+ But readon first for general information
+
+
+Testing
+-------------------------------------------
+To being testing , Watch your kernel messages with:
+# tail -f /var/log/messages &
+The "&" just backgrounds the process, or else the command prompt is lost.
+The low level interface driver is loaded with:
+# modprobe Module
+Then
+# slmodemd --help
+just to see what it provides.
+
+Check for support
+ of your country with:
+# slmodemd --countrylist
+The default is USA.
+# slmodemd --countrylist &> CL.txt
+will write the list to CL.txt if desirable.
+Use your own COUNTRY from the second column for the port creations command:
+
+Simple usage
+-------------------------
+It may be necessary to
+# modprobe upgrab-winmodem
+before inserting the low level driver:
+# modprobe Module
+where Module is:
+ slamr for PCI card modems OR
+ slusb for a USB modem
+ one of the ALSA drivers mentioned above
+Start the deamon with corresponding:
+# slmodemd -a --c YourCountry /dev/slamr0 &
+for the PCI card modems
+# slmodemd -a --c YourCountry /dev/slusb0 &
+for the USB modes
+# slmodemd -a --c YourCountry hw:1 &
+when using an ALSA driver, except for the ATI modems use:
+# slmodemd -c YourCountry modem:0 &
+
+These commands will creat the real port /dev/pts/N and a symbolic link
+ /dev/ttySL0 --> /dev/pts/N
+and provide higher level functions of the slmodem code
+The first functionality test is:
+# vwdialconf wvdialtest.txt
+if the modem is thus found prospects are good for success.
+
+1) For Redhat and Fedora, use the Internet Wizard within the popup menus to
+configure a dialout, A file /etc/wvdial.conf will be created.
+
+2) For other Linux distros do:
+# wvdialconf /etc/wvdial.conf
+Edit three lines of your personal information into /etc/wvdial.conf,
+replacing the <text>, including the < >
+
+In both cases add to /etc/wvdial.conf a line needed by slmodemd
+ Carrier Check = no
+Using other dialer utilties (such as KPPP) is OK, and they will not need the:
+ Carrier Check = no
+
+ However should a "No carrier" message be returned during a dialout attempt see:
+ http://linmodems.technion.ac.il/archive-fifth/msg00552.html
+
+Then try a dialout, with:
+# wvdial &
+
+ The discretionary " & " just allows recovery of the command prompt.
+ To stop a command thus started:
+ # fg wvdial
+ puts the process in the foreground, so it can be stopped with
+ # Ctrl-C
+
+ Preferably use wvdial for testing if your distribution provides it. Otherwise use Minicom.
+ If there is a failure to acquire a dial tone, add an X3 in the /etc/wvdial.conf line like:
+ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
+ to:
+ Init2 = ATQ0 X3 V1 E1 S0=0 &C1 &D2 +FCLASS=0
+ For dialers using a chatscript, the edit would be like:
+ ATQ0X3V1E1S0=0&C1&D2+FCLASS=0
+
+ Read Modem/Testing.txt for further testing guidance,
+ and Modem/Slmodem-ALSA.txt for details on ALSA mode.
+ If success has been achieved using the slamr driver, after a while
+ it is worth also testing the slmodem-2.9.9d-alsa or later resource .
+ but do fully UNINSTALL slmodem-2.9.n first!!!
+ Only the slmodemd for creating ports is provided in ALSA mode
+ The complementing Open Source ALSA
+ drivers comes with kernel-image packages.
+
+ For the slamr and usb drivers the proxy ports can be displayed with:
+ # ls -l /dev/sl*
+crw------- 1 root root 212, 0 Apr 29 2004 /dev/slamr0
+crw------- 1 root root 212, 1 Apr 29 2004 /dev/slamr1
+crw------- 1 root root 212, 2 Apr 29 2004 /dev/slamr2
+crw------- 1 root root 212, 3 Apr 29 2004 /dev/slamr3
+crw------- 1 root root 213, 0 Apr 29 2004 /dev/slusb0
+crw------- 1 root root 213, 1 Apr 29 2004 /dev/slusb1
+crw------- 1 root root 213, 2 Apr 29 2004 /dev/slusb2
+crw------- 1 root root 213, 3 Apr 29 2004 /dev/slusb3
+ If your System is using the udev file system for devices. A proxy report
+will NOT be present until the driver is inserted:
+# modprobe slamr
+OR
+# modprobe slusb
+
+ The slmodem packages way contain a scripts/ folder , with scripts for
+ automating driver loading and port creation upon bootup. For some Systems,
+ it has proven beneficial to cause a pause after driver loading by inserts
+ sleep 1 (or maybe 2 or 3 if necessary)
+ before the line:
+ echo -n "Starting SmartLink Modem driver for: $SLMODEMD_DEVICE"
+ Without the pause, the driver diagnositics may not complete
+ before the following step is attempted, with a resultant failure.
+
+ Call back support is implemented in slmodem-2.9.10 and slmodem-2.9.9b
+See http://linmodems.technion.ac.il/archive-fifth/msg00219.html
+
+END
+cat<<END>>$RECORD
+
+ The Modem/DriverCompiling.txt is a MUST READ,
+ if you are not experienced in configuring kernel-source/
+ or get "unresolved symbols" upon driver insertion.
+
+ Most recent WinModem fixes are in: http://linmodems.technion.ac.il/FAQ.html
+
+(4) For guidance on automation see http://linmodems.technion.ac.il/archive-fourth/msg03734.html
+and the scripts in the slmodem-2.9.n/scripts folder/
+
+END
+
+if [ "$DISTR" = "debian" ] && ! [ "$BEST" = "" ] ; then
+ echo " For Debian users, the kernel-headers-$SYS.deb can be used instead of kernel-source/" >> $RECORD
+ echo >> $RECORD
+fi
+if [ "$BN" = "scanModem" ] ; then
+ if ! [ "`pwd`" = "/" ] ; then
+ FILES=`ls Modem`
+ cat<<END
+
+ A subfolder Modem/ has been written, containing these files with more detailed Information:
+ ------------------------------------------------------------------------------------------
+ `echo $FILES`
+-------------------------------------------------------------------------------------------
+ Please read 1stRead.txt first for Guidance.
+END
+ fi
+
+ if test -z $FAST ; then
+ rm $TMPM $TMPM.* &> /dev/null
+ fi
+else
+ echo -------------- ending SCANMODEM section ---------------- >>$RECORD
+fi
+echo
+
+