Skip to content

Instantly share code, notes, and snippets.

@roycewilliams
Last active February 26, 2023 03:39
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save roycewilliams/90e6a64a9e7a610e419f2dc3b8dc4c71 to your computer and use it in GitHub Desktop.
archive of linmodems.org scanModem.sh
#!/bin/bash
echo
NOTE=" ONLY use scanModem downloaded as: http://linmodems.technion.ac.il/packages/scanModem.gz"
UPDATE="2005_Oct_23"
cat<<END>/dev/null
Just working notes and URLs
http://linmodems.technion.ac.il/packages/smartlink/
mirror http://phep17.technion.ac.il/linmodems
http://www.alsa-project.org/
Jacques.Goldberg@cern.ch
Spanish gzsuniq@cableonda.net
> I guess you are using snd-intel8x0m from
> linux-2.6.12 , it has this
> small but annoying bug fixed couple of months
> before. I would suggest
> to upgrade 'alsa-driver' to >= 1.0.9b (as separate
> package) or linux
> kernel to >= 2.6.13.
Network Device Control under FC3/4
only:news://news.gmane.org:119/gmane.linux.linmodem
Hacker <golfbuf@gmail.com>
(SL2800). This should be fixed in 2005Jun01 slmodem (SL2800).
The following report claims that the 5457 works with slmodem-2.7.10 , that is OLD 2.7.10!
http://silicon-verl.de/home/flo/software/c1mhp/
Currently the only option here is to limit connection protocol to v34,
for this run command AT+MS=34. As well you could try AT+MS=90 (for
higher speed connection) but most likely it will not help with slmodem
reelase you are using - hopefully there will be updates from SmartLink.
END
cat<<END>/dev/null
Browse http://linmodems.technion.ac.il and
download scanModem.gz . Within a Linux partition
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
# ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 +MS=90
# instead of
# ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
# to suppress V92 problems
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
TMPM=0tmpfile
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
fi
fi
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`
Distr=`cat /etc/issue | 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`
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 Provider mail filters.
So do in a day also check the Archived responses at DISCUSS@linmodems.org
Code updated on: $UPDATE
------------ -------------- System information ------------------------
$ISSUE
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 systems
http://linmodems.technion.ac.il/archive-fourth/msg02592.html - 1039:7013, SIS 630 controller
with SmartLink SIL22 mc97 codec, snd_intel8x0m.ko lower driver
http://linmodems.technion.ac.il/archive-fifth/msg02490.html - Nvidia controller, snd-intel8x0m.ko driver.
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>>/dev/null
There are emerging complications under 2.6.10 and later kernels.
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
# For rare names like: MyCompiler-3.3.5
GCC2=`echo $GCC_PC | cut -d. -f1-3`
GCC_TEST=`echo $GCC_PC | cut -d. -f1-2`
echo $GCC_TEST > $TMPM
if grep "-" $TMPM >/dev/null ; then
GCC_KERNEL_2=`echo $GCC_TEST | cut -d- -f2`
else
GCC_KERNEL_2=$GCC_TEST
fi
GCCmajor=`echo $GCC_KERNEL_2 | cut -d. -f1`
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 gcc-$GCC2 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
if test $GCCs = $GCC_KERNEL_2 ; then
echo "Adequate match of gcc versions of the compiler and kernel. " >>$RECORD
else
cat<<END | tee -a $RECORD
The Major.Minor versions differ in the designated compiler $GCC and the $GCC_PC used in kernel assembly!!"
But there must be a match on the target for driver installation,
of gcc Major.Minor versions or kernel and drivers!!
Otherwise the drivers will fail to load with warning:
Invalid module format!!"
See http://linmodems.technion.ac.il/archive-fifth/msg04252.html
END
fi
fi
echo >>$RECORD
DPKG=`ls /usr/bin/dpkg /usr/sbin/dpkg 2>/dev/null`
if test -n "$DPKG" ; then
# echo "the System must prepared for dailout testing and driver compiling by running the install command:" >>$RECORD
# echo " apt-get install wvdial gcc-3.3 kernel-kbuild-3.6 linux-headers-$SYS" >>$RECORD
# is Debian style Distro
if [ "$MAJOR" = "2.6" ] ; then
KBUILD=`ls -d /usr/src/kernel-kbuild-2.6* 2>/dev/null`
if test -z "$KBUILD" ; then
echo A package kernel-kbuild-2.6-3 or later version must be installed to support compiling >>$RECORD
else
echo kernel-kbuild is installed >>$RECORD
fi
echo >>$RECORD
fi
fi
echo "Checking for kernel-headers needed for compiling.">>$RECORD
SRCS=`ls -d /usr/src/* /lib/modules/$SYS/build 2>/dev/null`
if test -n "$SRCS" ; then
for dir in $SRCS
do
if test -f $dir/include/linux/version.h ; then
# check for right version
if grep "$SYS" $dir/include/linux/version.h >/dev/null ; then
if test -z "$BF" ; then
# Don't replicate this line
echo "The kernel-headers have base folder: ">>$RECORD
BF=1
fi
if test -L $dir ; then
# reveal mere symbolic links
echo /`ls -l $dir | cut -d/ -f2-` >>$RECORD
else
echo $dir >>$RECORD
fi
fi
fi
done
fi
if test -z "$BF" ; then
if grep FC4 /proc/version >/dev/null ; then
echo " Needed kernel-devel packages are on CD1 or CD4 in the Fedora/ folder. ">>$RECORD
echo " http://fedora.redhat.com/docs/release-notes/fc4/ may be usefull. ">>$RECORD
FC4=1
# yum install gcc
#yum install kernel-devel-`uname -r`
# yum install kernel-smp-devel-`uname -r`
if grep smp /proc/version >/dev/null ; then
echo " The package kernel-smp-devel-$SYS must be installed to support compiling..">>$RECORD
else
echo "The package kernel-devel-$SYS must be installed to support compiling.">>$RECORD
fi
echo >>$RECORD
fi
echo "Checking /usr/src/ for compressed compressed headers or kernel-source" >> $RECORD
BZ2=`ls /usr/src/*.bz2 2>/dev/null`
if test -n "$BZ2" ; then
ls /usr/src/*.bz2 >> $RECORD
fi
GZ=`ls /usr/src/*.gz 2>/dev/null`
if test -n "$GZ" ; then
ls /usr/src/*.gz >> $RECORD
fi
echo >> $RECORD
cat<<END>>$RECORD
Kernel-header resources needed for compiling are not manifestly ready!
If compressed resources are present, expand and then configure them following DriverCompiling.txt
They may have to be installed.
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
Xandros
kernel-kbuild-3.6 are additionally required by Debian, Ubuntu and Xandros
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
FedoraCore4 kernel-devel-$SYS or kernel-smp-devel-$SYS on install CD1 or CD4
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
echo >>$RECORD
fi
if ! test -x /usr/bin/wvdial ; then
cat <<END>>$RECORD
Wvdial is a dialout utility very useful for modem testing. If not encluded on
your installation media, check your distrbutions on line software repository.
An example is: http://linmodems.technion.ac.il/archive-fifth/msg01480.html
END
fi
# 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
echo >>$RECORD
if test -d /dev/.udevdb ; then
ls -ld /dev/.udevdb >>$RECORD
cat<<END>>$RECORD
There is an active UDEV file system, creating device nodes in volatile RAM.
However information from Proprietary drivers is soon to be excluded from
the supporting /sys/ file structure. Thus device nodes for Proprietary modem drivers
will then have to be created by bootup scripts.
END
echo " Checking for modem symbolic link support lines within /etc/udev/ files" >> $RECORD
MODEMfiles=`find /etc/udev | grep modem`
MODEMtrue=`for modem in $MODEMfiles ; do if ! test -L $modem ; then ls $modem ; fi ; done`
for modem in $MODEMtrue
do
echo " $modem" >> $RECORD
cat $modem >> $RECORD
if grep ttyS[0123] $modem ; then
echo " The standard modem symbol link support within $modem may conflict with winmodem support!!" >> $RECORD
fi
done
echo >> $RECORD
MODEMfiles=
MODEMtrue=
fi
if test -d /dev/tts ; then
echo " Checking for /dev/tts/ devices" >> $RECORD
ls -l /dev/tts/ >> $RECORD
echo >> $RECORD
fi
IRCOMM=`lsmod | grep ircomm`
if test -n "$IRCOMM" ; then
echo " Checking for loaded IRCOMM drivers" >> $RECORD
echo " lsmod | grep ircomm" >> $RECORD
lsmod | grep ircomm >> $RECORD
"/dev/ircomm* scanning may hang wvdialconf. For a bypass, see http://linmodems.technion.ac.il/archive-fifth/msg04066.htm">>$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 -i "Audio controller" | grep M5451 >/dev/null ; then
AUDIO=`$LSPCI 2>/dev/null | grep -i "Audio controller" | cut -d' ' -f2-`
cat<<END>>$RECORD
Though not displayed, an embedded soft modem may reside in this Audio card:
$AUDIO
Support is in an active developement stage. See for example
http://linmodems.technion.ac.il/archive-fifth/msg02908.html
Setup commands are:
# modprobe ali5451
# slmodemd --alsa --shortbuffer -c YOUR-COUNTRY hw:0,1
Browse the Modem/Slmodem.txt for some more details.
END
elif $LSPCI -n 2>/dev/null | grep 8086:2668 >/dev/null ; then
AUDIO=`$LSPCI -d 8086:2668 2>/dev/null`
cat<<END>>$RECORD
Though not displayed, an embedded soft modem may reside in this Audio card:
$AUDIO
Support is in an active developement stage. There is always an audio codec(s)
+ (optionally) modem. ALSA HDA setup should map some info onto /proc/asound .
END
# 0403: 8086:2668 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High
# Definition Audio Controller
# Subsystem: 1043:10c3
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/$SYS/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) > System > Hardware >
DeviceManager > Modems > Click on the + > Modem
Double click to expand the graphic. Manufacturer information may be displayed. For example,
CXT stands for Conexant.
Click the Diagnostics Tab, Record any Hardware ID or Vendor & Device information.
Next do the Query Modem and record the 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 is not a softmodem, but 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
0x26 SIL26 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
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
0x2F SIL2F Same as SIL27
???? 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 .
1002:4378 ATI > c .
1543:3052 SI3052 > i .
--------------------------------------------------------
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/Slmodem-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`
USE34=1
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
if test -z "$SUBSYS" ; then
SUBSYS=some:thing
fi
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`
if test -n "$TST" ; then
echo "Using test $SUBSYS Subsystem"
# skip if test SUBSYS was input
else
SUBNAME=`$LSPCI -v 2>/dev/null | grep -A1 $i | grep Subsystem | cut -d: -f2-`
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 Flags: | tee -a $RECORD
IRQ=`$LSPCI -v 2>/dev/null | grep -A2 $i | grep IRQ | cut -dQ -f2 | cut -d' ' -f2`
echo " Checking for IRQ $IRQ sharing with modem.">>$RECORD
grep $IRQ: /proc/interrupts | cut -b 20- >>$RECORD
echo >>$RECORD
if [ "$IRQ" = "0" ] || [ "$IRQ" = "255" ] ; then
echo There is a Bad IRQ=$IRQ . Carefully read the related guidance in $RECORD | tee -a $RECORD
cat<<END>>$RECORD
The modem will NOT function because of interrupt assignment: IRQ $IRQ
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
# finished softmodem chip candidates
if grep $PCIDEV Modem/SoftModem.txt>/dev/null ; then
SOFT=1
fi
# Decisive Subsystem IDENTS
echo >$TMPM.3
if [ "$SUBven" = "4d64" ] ; then
SUB=BCM
elif [ "$SUBven" = "134d" ] ; then
SUB=PCTEL
elif [ "$SUBven" = "14f1" ] ; then
SUB=HSF
# Conexant HSF
elif [ "$SUBven" = "103c" ] && ! [ "$SUBdev" = "006b" ] && ! [ "$SUBdev" = "3081" ] ; then
# likely Conexant HSF
cat<<END | tee -a $RECORD
Archive records show that 103c:???? Subsystems from HP with the exception of 103c:006b and 103c:3081
have a Conexant chip. Thus first test hsfmodem software from http://www.linuxant.com/drivers
Should that support fail, the alternate route is described in Modem/Slmodem-ALSA.txt
END
else
echo " The Subsystem PCI id does not itself identify the modem Codec.">>$RECORD
fi
if test -n "$SUB" ; then
echo >>$RECORD
echo "The Subsystem PCI id has identified the modem Codec.">>$RECORD
if [ "$SUB" = "PCTEL" ] ; then
echo a PCTEL SIL2 codec >>$RECORD
elif [ "$SUB" = "BCM" ] ; then
echo a Broadcom codec >>$RECORD
elif [ "$SUB" = "HSF" ] ; then
echo a ConeXanT CXTnm codec >>$RECORD
echo ONLY the hsfmodem software from http://www.linuxant.com/drivers can support this Conexant subsystem soft modem | tee -a $RECORD
else
echo Something New
fi
if [ "$SUB" = "BCM" ] || [ "$SUB" = "PCTEL" ] ; then
echo Use the slmodemd in ALSA mode for support >>$RECORD
echo Download the SLMODEMD-MostRecentVersion from http://linmodems.technion.ac.il/packages/smartlink/ >> $RECORD
fi
fi
if grep $PCIDEV Modem/SoftModem.txt | grep "A " >/dev/null && ! [ "$IDENT" = "CXT" ] ; then
echo >> $RECORD
echo " slmodemd software in ALSA mode may support this modem " >> $RECORD
Smart=ALSA
fi
# Choose driver for codec test
if [ "$PCIDEV" = "1002:434d" ] || [ "$PCIDEV" = "1002:4378" ] ; then
MODULE=snd-atiixp-modem
MCONFIG=ATIIXP_MODEM
PORT=modem:0
elif [ "$PCIDEV" = "1106:3068" ] ; then
MODULE=snd-via82xx-modem
MCONFIG=VIA82XX_MODEM
PORT=hw:1
else
# "mixer error" is warning - this means your ALSA driver (intel8x0m) is old,
MODULE=snd-intel8x0m
MCONFIG=INTEL8X0M
PORT=hw:1
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.
echo " === Begin mc97 codec query ===">>$RECORD
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
REGISTERS=`find /proc/asound -name "mc97*" | grep regs`
# cat /proc/asound/card1/codec97#0/mc97#1-1+regs may contain
# 0:7c = 5349
# 0:7e = 4c27
# to be parsed into
# 0x53, 0x49, 0x4c, 0x27
# and translated to ascii: 'S','I','L', 0x27 - SIL27 42434d64
for REG in $REGISTERS
do
if test -n "$REG" ; then
codec=`echo $REG | cut -d+ -f1`
echo " the MC97 file is: $codec" >>$RECORD
echo " --------" >>$RECORD
cat $codec >>$RECORD
echo " --------" >>$RECORD
reg7c=`grep 7c $REG `
if grep 7c $REG | grep "0:7c = 5349" >/dev/null ; then
BIT12=SI
elif grep 7c $REG | grep "0:7c = 4358" >/dev/null ; then
BIT12=CX
elif grep 7c $REG | grep "0:7c = 4234" >/dev/null ; then
BIT12=BC
elif grep 7c $REG | grep "0:7c = 534D" >/dev/null ; then
BIT12=SM
else
NEW=1
BIT12=`echo $reg7c | cut -d' ' -f3`
fi
reg7e=`grep 7e $REG`
if grep 7e $REG | grep "0:7e = 4c" >/dev/null ; then
BIT3=L
elif grep 7e $REG | grep "0:7e = 54" >/dev/null ; then
BIT3=T
elif grep 7e $REG | grep "0:7e = 4d" >/dev/null ; then
BIT3=M
else
NEW=1
BIT3=`echo $reg7e | cut -b 8-9`
fi
BIT4=`echo $reg7e | cut -b 10-`
if test -n "$NEW" ;then
CODEC=New_Vendor_$BIT4_codec
else
CODEC=$BIT12$BIT3$BIT4
COD=$BIT12$BIT3
fi
cat<<END>>$RECORD
from $REG
$reg7c
$reg7e
Translating into: $CODEC
END
if [ "$COD" = "SIL" ] ; then
ALSA=1
if [ "$BIT4" = "21" ] || [ "$BIT4" = "23" ] ; then
echo a PCTEL codec >>$RECORD
elif [ "$BIT4" = "22" ] || [ "$BIT4" = "26" ] ; then
echo a SmartLink codec >>$RECORD
elif [ "$BIT4" = "24" ] ; then
echo a Broadcom codec >>$RECORD
elif [ "$BIT4" = "25" ] ; then
echo an Intel-537AA codec >>$RECORD
elif [ "$BIT4" = "27" ] || [ "$BIT4" = "2f" ] ; then
echo an AgereSystems codec >>$RECORD
else
echo SIL$BIT4 is novel! >>$RECORD
fi
elif [ "$COD" = "BCM" ] ; then
echo a Broadcom codec
ALSA=1
elif [ "$COD" = "CXT" ] ; then
CXT=1
echo a ConeXanT codec >>$RECORD
echo Use a hsfmodem package from http://www.linuxant.com/drivers >>$RECORD
elif [ "$COD" = "SML" ] ; then
SML=1
ALSA=1
echo a SmartLink codec >>$RECORD
else
echo New_Vendor_$BIT4_codec >>$RECORD
fi
#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)
if grep "Motorola (rev 4 IIRC)" $codec >/dev/null ; then
echo " $SUBSYS has a Motorola codec " >>$RECORD
ALSA=1
fi
if grep 3054/5 $codec >/dev/null ; then
# for non SILnm codecs such as AGRnm and INT65
echo " Try using slmodemd in ALSA mode" >>$RECORD
ALSA=1
fi
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
fi
done # finish codec aquisition
else
# symbolic link `/dev/ttySL0' -> `/dev/pts/3' created.
# modem `hw:0' created. TTY is `/dev/pts/3'
# If OSS drivers activate modem card
OSS=`lsmod | grep oss`
if test -n "$OSS" ; then
echo | tee -a $RECORD
lsmod | grep oss | tee -a $RECORD
cat<<END | tee -a $RECORD
---------------------------------
OSS audio card drivers may may interfere mc97 register information
and support of ALSA modem drivers. Please do:
# su - root
# lsmod | grep oss
Starting with the top of the displayed DriverName list, do
# modprobe -r DriverName
# lsmod | grep oss
and repeat these two commands as necessary until the oss drivers are removed.
Then rerun
# ./scanModem
Some 0SS drivers may be reloaded during the 2nd test, and this loading
does NOT require a 3rd run of scanModem.
END
fi
cat<<END>>$RECORD
Files under /proc/asound/ do not include modem codec information.
If more decisive information is not given below,
this is a tentative signature of a Conexant hsfmodem. Download a hsfmodem package from
http://www.linuxant.com/drivers or your installation CDs. For SuSE/Novell, install both
km_hsfmodem and hsfmodem packages, for drivers and configuration tools respectively,
END
echo " === End mc97 codec query ===">>$RECORD
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/ -mindepth 3 -maxdepth 5 -name slamr.* | grep $SYS`
fi
# So the dmesg output is reporting these two numbers ==, after the 0x
#YES.
# Actually it is whole hex string (values of 0x7c, 0x7e AC97 registers):
# 0x7c: 0x5349 ('S','I')
# 0x7e: 0x4c22 ('L','22')
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
SIL27 8086:2416
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 1025:1027
SIL21 10cf:10d2 CitiCorp
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
SIL21 134d:4c21
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 1025:001f 17c0:1089 1854:000a 1019:d553
SIL21 1071:8050 134d:4c21 4c21:5349 1071:8160 1734:1055 , 1071:8052 but Si3036,8 rev 7,
SIL22 1734:102a 8086:2416 1734:106b Si3036,8 rev 2,
CXT 104d:8129 Sony , 104d:818c CXT23 , 104d:816a , 1014:055a , 104d:80fa , 14f1:5422 CXT22 , 1043:1826 , 103c:3084 , 1025:0064 103c:3080 CXT30, 1014:0559 CXT23
BCM64 14e4:4d64
SIL24 144f:1050 Askey Comp. with BroadCom,
Unknown 104d:816a 1509:2970 , 103c:088c
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 1179:0001 17c0:10bb 103c:3081
SIL2F 1025:007a
CXT 1014:0576 14f1:5423 CXT23 no /proc/asound/mc97* , 103c:3082 , 1025:0066 CXT30 ,
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 1025:0028
SIL2f 1025:0083
SIL23
INTEL537 1509:3170 Si3036,8 rev 5 ;
CXT 104d:814e Sony CXT23, 1043:1816 CXT22
SIL22 1631:3003 NorthBridge , 1584:4003 , 1734:105f ,1558:2202 1734:1031 1734:105f x86_64 , 1558:4201with, HAMR,http://linmodems.technion.ac.il/archive-fourth/msg01957.html
SIL21 Pctel 1039:7013 (one SIL23 case) , 1019:0a14 , 1849:9739 13bd:102f 1019:0c04 1043:10c3 156d:b900
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
echo See success report: http://linmodems.technion.ac.il/archive-fifth/msg02490.html >>$RECORD
Smart=ALSA
cat<<EOF>$TMPM.2
CXT 1043:1856 Asustek
SIL27 103c:006d HP , 1025:0059 Acer
EOF
elif [ "$PCIDEV" = "1106:3068" ] ; then
# 1106:3068 VIA
cat<<EOF>$TMPM.2
SIL27 1102:0033 CreativeLabs , 1025:0046 Acer , 1025:0033 , 1734:1078 1509:2870 , 1025:0046 AMD64
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 1019:0c04 1458:1543
CXT 104d:8143 104d:80f6 , 1025:0030 CXT41 ,
SML 1631:3054 26 ,
Unknown 1584:4005 Uniwell, 1025:0030
EOF
elif [ "$PCIDEV" = "1022:7446" ] ; then
# 1022:7446 AMD AC_LINK
cat<<EOF>$TMPM.2
none
EOF
elif [ "$PCIDEV" = "1543:3052" ] ; then
# Silicon Inst
cat<<EOF>$TMPM.2
Motorola 1543:3020 Motorola
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:5453" ] ; then
# 10b9:5453 ALI 5453
cat<<EOF>$TMPM.2
none
EOF
elif [ "$PCIDEV" = "10b9:5457" ] ; then
# 10b9:5457 ALI 5457
cat<<EOF>$TMPM.2
SIL27 1179:0001 , 1033:81f3 1019:df56
CXT 103c:002a CXT21, 103c:0024 CXT41 , 103c:0029 103c:0850
Unknown 0e11:005a 5457 Compaq
EOF
elif [ "$PCIDEV" = "10b9:5459" ] ; then
# 10b9:5459 ALI 5459
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
CXT 1025:0080
EOF
elif [ "$PCIDEV" = "1002:4378" ] ; then
cat<<EOF>$TMPM.2
IDENT=ATI
Smart=ALSA
ALSA=1002:4378
CXT 1025:0080
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 under Modem controller $PCIDEV is not in the records.">>$RECORD
echo >>$RECORD
echo " Acessing archival information on all codecs used by SubVendor $SUBven for all Modem controllers" >>$RECORD
grep $SUBven: $0 >>$RECORD
echo >>$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 diagostics and Archive data.">>$RECORD
elif [ "$CODECp" = "$CODEC" ] ; then
echo " Agreement between diagostic and Archive data.">>$RECORD
elif ! [ "$CODECp" = "$CODEC" ] ; then
echo " DisAgreement between diagostic and Archive data. Using diagnostic: CODEC=$CODEC">>$RECORD
CODECp=$CODEC
else
echo "All cases should have be covered" >> $RECORD
fi
# Case by case of CODEC
if test -n "$CODEC" && ! [ "$CODEC" = "Unknown" ] ; then
if [ "$CODECp" = "INTEL537" ] || [ "$CODECp" = "INTEL537EP" ] ; then
echo " The modem has an $CODECp chipset" | tee -a $RECORD
IDENT=INTEL537EP
cat<<END>>$RECORD
Through http://developer.intel.com/design/modems/support/drivers.htm
access the most recent Intel-537EP-MostRecentVersion.tgz
But if there are problems under a 2.4.n kernel, instead use the
intel-537ep-2.60.80.0.tgz with download from
http://linmodems.technion.ac.il/packages/Intel/537/
END
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/drivers .
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 , such configuration steps are not necessary.
END
fi
elif [ "$CODEC" = "SIL22" ] || [ "$CODEC" = "SIL26" ] || [ "$CODEC" = "SML" ]; 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
ALSA=1
echo " The Subsystem has a Broadcom codec $CODEC" | tee -a $RECORD
elif [ "$CODEC" = "INT65" ] || [ "$CODECp" = "SIL25" ] ; then
IDENT=$CODEC
ALSA=1
Smart=yes
cat<<END>>$RECORD
The Subsystem has the INTEL codec $CODEC
The Intel-537ep driver and possibly the slmodem in ALSA mode may support the modem.
Details below and read Modem/Slmodem-ALSA.txt
END
elif [ "$CODEC" = "SIL24" ] || [ "$CODEC" = "BCM64" ] ; then
echo " The Subsystem has a Broadcom codec $CODEC" | tee -a $RECORD
IDENT=SMART
ALSA=1
elif [ "$CODEC" = "SIL21" ] || [ "$CODEC" = "SIL23" ] ; then
IDENT=Smart
ALSA=1
echo " The Subsystem has a PCTel codec $CODEC" | tee -a $RECORD
if [ "$MAJOR" = "2.4" ] ; then
IDENT=PCTEL
ALSA=1
echo "The pctel-0.97 drivers may support this modem.">>$RECORD
fi
elif [ "$CODEC" = "SIL27" ] || [ "$CODEC" = "SIL2f" ] ; then
echo " The Subsystem has an Agere Systems codec $CODEC" | tee -a $RECORD
if [ "$MAJOR" = "2.4" ] && [ -n "$AGR" ] ; then
IDENT=AGR
ALSA=1
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 [ "$MAJOR" = "2.6" ] && [ "$ALSA" = "1" ] ; then
cat<<END>>$RECORD
The modem can be set up by:
# su - root
# modprobe $MODULE
# slmodemd --alsa -c YOUR_COUNTRY $PORT
The ALSA modem driver $MODULE provides low level hardware access.
The slmodemd provides high level functions and is not kernel-version specific.
From http://linmodems.technion.ac.il/packages/smartlink/ download
download the package SLMODEMD_Latest_Version.tar.gz
Follow the 1st_Read.txt instructions within. Also download the ungrad-winmodem.tar.gz
which will be needed on some Systems.
END
fi
if test -z "$ALSA" -a -z "$smart" -a -z "$CXT" ; then
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
fi
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
elif [ "$DISTR" = "Ubuntu" ] && [ "$SYS" = "2.6.10-5-386" ] ; then
echo Why >/dev/null
cat<<END>> $RECORD
From http://linmodems.technion.ac.il/packages/smartlink/ download the
slamr_for_Ubuntu_kernel-2.6.10-5-386_ONLY.tar.gz . Unpack with
# tar zxvf slamr_for_Ubuntu_kernel-2.6.10-5-386_ONLY.tar.gz
# cd slamr_for_2.6.10-5-386/
and follow the Usage.txt instructions
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" ] && ! [ "$PCIDEV" = "1002:4378" ] && ! [ "$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
The SmartLink slamr driver supports this modem:
$SMT
complemented by the SmartLink slmodemd.
END
if [ "$PCIDEV" = "2003:8800" ] || [ "$PCIDEV" = "2002:2800" ] ; then
echo " But version slmodem-2.9.10 or later is necessary, and 64 bit support has not been implemented" | 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-537ep-MostRecentVersion.tgz">>$RECORD
IDENT=INTEL537
elif [ "$PCIDEV" = "8086:1040" ] ; then
if [ "$SUBSYS" = "8086:1005" ] ; then
echo SUBSYS=$SUBSYS
echo " Use driver resource Intel-537ep-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.
1002:4378 is an AC97 modem controller, with atiixp support code in the CVS, Aug 2005
For service with Smartlink slmodemd compatible hardware, see Modem/Slmodem-ALSA.txt
For service of Conexant chipset Subsystems, the file in hsfmodem packages,
modules/mod_mc97ati.c
needs the 2nd line below inserted:
{0x1002, 0x434D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CNXTHWCFG("mc97ati")},
{0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CNXTHWCFG("mc97ati")},
{0,} /* terminate list */
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.9D-alsa software in ALSA mode provides support.
See success report: http://linmodems.technion.ac.il/archive-fifth/msg02490.html
EOF
fi
if [ "$PCIDEV" = "10de:00d9" ] ; then
cat<<EOF>>$RECORD
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-537ep-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
http://cengique.2y.net/~cengiz/BCMSM/
There is no support under 2.6.n kernels for the
14e4:4212 BCM V.90 56k modem
When serving under softmodem controllers like the Intel ICH series,
the Broadcom Subsystem 14e4:4d64 has mc97 codec BCM64.
Kernels of version 2.6.6 or later are necessary. See success reports:
http://linmodems.technion.ac.il/archive-fifth/msg02486.html
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 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. Alternately a package SLMODEMD-2.9.9e-pre1-alsa.tar.gz
has an ALSA proficient slmoded already compiled.
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: htpp://www.motorola.com/softmodem/driver.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
if [ "$v" = "16ec" ] ; then
cat<<END>>$RECORD
Vendor 16ec is U.S. Robotics.
16ec:2f00 Communication controller: U.S. Robotics
16ec:0113 Subsystem,
is an HSF Conexant modem. Download an hsfmodem package from
http://www.linuxant.com/drivers
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 [ "$PCIDEV" = "134d:2189" ] ; then
SMART=1
# 134d:2189 Modem: PCTel Inc HSP56 MicroModem
cat<<END | tee -a $RECORD
The 134d:2189 is a PCTel HSP56 MicroModem 688T modem has experimental support.
Download the most recent slmodem package from
http://linmodems.technion.ac.il/packages/smartlink/snapshots/
and also the ungrab-winmodem.gz from
http://linmodems.technion.ac.il/packages/ ,
Follow the guidance of Slmodem.txt
END
# old message http://linmodems.technion.ac.il/archive-fifth/msg00057.html
elif [ "$CODECp" = "SIL21" ] ; then
smart=1
cat<<END>>$RECORD
For Pctel AMR under $CNTRL,
the SmartLink slmodem-2.9.n software can serve.
END
elif [ "$MAJOR" = "2.4" ] || [ "$PCIDEV" = "134d:7897" ] ; then
echo "Use the most recent package at http://linmodems.technion.ac.il/pctel-linux" | tee -a $RECORD
echo " Read ModemData.txt and Pctel.txt in the new sub-folder Modem/" | tee -a $RECORD
else
echo " Under 2.6.n kernels, there is no support for $PCIDEV modems"
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!!
The AMR and HSP56 MicroModem 688T have support through the Smartlink slmodem software.
The rest of this text is only cogent to modems using the pctel and ptserial pair,
Of this class only the 134d:7897 have support under 2.6.n as well as 2.4.n kernels
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
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
The Cirrus Logic CML modems were acquired by Intel, Inc.
A driver for early 2.4.n kernels is at http://www.grapevine.net/~gromitkc/clm/clm-20020412.tar.gz
There is no Linux support for later 2.4.n or 2.6.n kernels.
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 16ec" > $TMPM
# hcfpciconfig
if [ "$IDENT" = "CXT" ] || grep $v $TMPM >/dev/null ; then
# Conexant HSF, adapted from www.linuxant.com HSF page
cat<<END>$TMPM
14f1 ,2013,2014,2015,2016,4311,1025,1085,2005,2004,2006,2043,2044,2045,2046,2063,2064,2065,2066,2093,201A,201B,204A,204B,2143,2144,2145,2146,2163,2164,2165,2166,2343,2344,2345,2346,2363,2364,2365,2366,2443,2444,2445,2446,2463,2464,2465,2466,2f00,2f01,2f02,2f03,2f04,2f10,2f11,2f12,2f13,2f14,2702,2703,2704,2705,2f20,2f30
127a ,2013,2014,2015,2016,4311,1025,1085,2005,2004,2006,2114
16ec ,2f00
END
if grep " $Vendor" $TMPM >/dev/null ; then
grep " $Vendor" $TMPM > $TMPM.1
if grep ,$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 driver code packages from http://www.Linuxant.com/drivers/
These include compiled drivers for several Linux distributions including:
hsfmodem_7.18.00.05full_k2.6.10_5_686_ubuntu_i386.deb.zip
hsfmodem_7.18.00.05full_k2.6.10_5_686_smp_ubuntu_i386.deb.zip
hsfmodem_7.18.00.05full_k2.6.10_5_386_ubuntu_i386.deb.zip
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
: Rafael Esp�ndola <rafael.espindola AT gmail.com> has ported old version 5.03.27 driver code to 2.6.12. This is an experts only resource that can be downloaded from
http://www.las.ic.unicamp.br/~espindola/modem-171.tar.bz2
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 Intel-537ep drivers through: http://developer.intel.com/design/modems/support/drivers.htm
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 [ "$PCIDEV" = "8086:1231" ] ; then
echo PCI id 8086:1231, Serial controller: Intel Corp. DSVD Modem is without Linux support >> $RECORD
fi
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-537ep-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" ] || [ "$IDENT" = "INTEL537" ] || [ "$IDENT" = "INTEL536ep" ] ; then
cat<<END | tee -a $RECORD
The September 2005 Intel-537 release is version 2.70.95.0, with a compile illustrated in
http://linmodems.technion.ac.il/archive-fifth/msg03880.html. However an update supporting FC4
kernels is needed as there are failures under (at least) kenels 2.6.11-1.1369_FC4 , 2.6.12-1.1447_FC4smp
Intel has not yet decided whether to support FC4 kernels.
and there is a segmentation fault error with Slackware kernel 2.6.11.11
Pending an update from Intel, dropping back to a FC3 kernel_version less than 2.6.10
does allow recovery of function.
END
if [ "$AMBIG" = "INTEL537" ] ; then
cat<<END>>$RECORD
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
Support is now combined in Intel-537 release version 2.70.95.0
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
# Vasily.Volchenko@mstu.edu.ru on x86_64
cat<<END | tee -a $RECORD
There are some installer packages
and also resources for compiling drivers:
The modem has a supported Lucent/Agere DSP (digital signal processing) chipset
with primary PCI_ID: $PCI_ID
DSP=1
Native suppport for AMD x86_64 systems had NOT been implemented.
However, there is a too brief report that with under a i686 kernel
compiled with x86_64 optimization and serving an AMD x86_64 motherboard,
the ltmodem drivers are effective.
Agere Systems, Inc provides periodic software releases for their DSP modems,
which are made more Newbie friendly by volunteers or Linux distros.
Browse http://linmodems.technion.ac.il/Ltmodem.html for older information.
SuSE/Novell Linux and some other Distros provide compiled drivers +installers.
Search package lists for ltmodem
For other Distros and 2.6.n kernels, browse:
http://linmodems.technion.ac.il/packages/ltmodem/kernel-2.6/
ltmodem-2.6-alk-7b.tar.gz has the most general instructions for installations,
and the core code is used in:
ltmodem-8.31b1.tar.gz , which automates the processes;
ltmodem-2.6-7alk.src.rpm can be used for rpm using Distros.
# rpmbuild --rebuild ltmodem-2.6-7alk.src.rpm
will deposit an installer at:
/usr/src/rpm/RPMS/$CPU/ltmodem-kv_$SYS.rpm Check with
# ls -l /usr/src/rpm/RPMS/$CPU/ltmodem*
Then install with:
# rpm -i /usr/src/rpm/RPMS/$CPU/ltmodem-kv_$SYS.rpm
or similar.
http://ltmodem.heby.de has support for ISA card modems, Lucent/Agere chip PCMCIA card modems
and kernels 2.2.n through current 2.6.n (at least up to 2.6.11)
Packages for compiling drivers are:
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
which were assembled with a gcc-2.9n comiler
ltmodem-8.31a10.tar.gz beginning with 2.4.21 through and into 2.6.n kernels
There are also numerous pre-compiled driver packages, though those for older kernels are at::
http://linmodems.technion.ac.il/packages/ltmodem/
See http://linmodems.technion.ac.il/resources.html#lucent for some special cases:
Knoppix, Demudi, etc
Some additional 2.4.n installers are available from:
http://dag.wieers.com/packages/kernel-module-ltmodem/ for some other 2.4.n installers
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
# irq 255 , change to non-PNP OS
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.
Lucent/Agere Mars/WinModem drivers from version 8.30 onwards have
the necessary fix for SMP machines which includes machines with
hyperthreading turned on (virtually acting as two CPUs).
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. See InfoGeneral.txt about alternatives.
END
elif [ "$Device" = "0480" ] ; then
echo " The Venus controller chipset 1673JV7 modems use the Open Source serial drivers." >>$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.
A sample compilation is shown in: http://linmodems.technion.ac.il/archive-fifth/msg02567.html
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 ,
with slmodem-2.9.10 and later releases only licensed for Smartlink chipsets.
A slmodem-2.9.9? series retains a much broader license for other chipset support,
has some more recent updates than the slmodem-2.9.10, and can be downloaded
from http://linmodems.technion.ac.il/packages/smartlink/ Though not all will be
needed, download the most recent versions of files:
slmodem-2.9.9?.tar.gz - provides slamr driver and slmodemd daemon
SLMODEMD-2.9.9e-pre1-alsa.tar.gz - alreadly compiled slmodemd
ungrab-winmodem.tar.gz - may be needed for usage with slamr.
Details on their usage are in 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