Lucent Win Modem
Lucent Win Modem
Mam Lucent Win Modem a zhanam nato ovladace k najnovsej vezii mandrivy 2007.dufam ze to nieje porusenie pravidiel a neodkazete ma na lamky 
Ak je to Microcom tak na masine skus skompilovat ovladace.
http://linmodems.technion.ac.il/package ... 6a6.tar.gz
http://linmodems.technion.ac.il/package ... 6a6.tar.gz
No je dost mozne ze je to Microcom DeskPorte 56K Internal /L, mne ho tiez windows detekoval ako Lucent Winmodem. Zisti najprv aky mas modem http://linmodems.technion.ac.il/packages/scanModem.gz 
Kód: Vybrať všetko
#!/bin/bash
UPDATE="2006_November_07"
# maintainer Marvin Stodolsk y
cat<<END
From http://linmodems.technion.ac.il , get a recent update of scanModem,
if this copy was not there obtained. There are weekly updates.
Updated on: $UPDATE
END
sleep 3
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
Only the ouput ModemData.txt should be sent to [email protected]
José Manuel Campaña <[email protected]> Spanish
GnomePPP problem
MacProblems http://ubuntuforums.org/archive/index.php/t-79605.html
> slmodemd -c USA --alsa hw:0,6
IIRC you can also use modem:0 (or maybe just 'modem') as device name.
> I was wondering if I should be able to hear the modem.
It depends on the modem itself, I don't remember does HDA have buzzer
control (will need to see). Anyway I think that si3045 driver does not
support this yet.
END
if grep buntu /etc/issue >/dev/null ; then
# $SUDO is signature of all Ubuntu related distros using sudo rather than "su - root"
SUDO=sudo
fi
# if test "$UID" != 0 ; then
# echo Run with Root permission:
# if test -n "$SUDO" ; then
# echo sudo $0
# else
# echo $ su - root
# echo # $0
# fi
# echo
# exit
# fi
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# for eventual script testing, with $2 and $3 format VendorID:DeviceI
if test "$1" = test ; then
if test -z "$2" ; then
echo "test mode syntax is: ./scanModem test PCIid PCIidSubsystem Distro KernelVersion CPU"
echo " with a minimum of: ./scanModem test PCIid"
echo
exit
fi
TST=1
PCIDEV="$2"
SUBSYS="$3"
ISSUER="$4"
SYS="$5"
GCC123="$6"
CPU="$7"
fi
if test -z "$SYS" ; then
SYS=`uname -r`
fi
# Short term files have names 0tmpfile.1 2 3 etc.
rm $TMPM 2>/dev/null
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 test "$SHM" = drwxrwxrwt ; then
TMPM=/dev/shm/0tmpfile
fi
SHM=
fi
fi
if test -z "$BN" ; then
BN=`basename $0`
fi
if test "$BN" != scanModem ; then
echo " Please rename this script scanModem, or some files will not print out."
echo " Abort with Ctrl-C, or wait 5 seconds to continue."
echo
sleep 5
fi
if test -d Modem ; then
/bin/rm -r Modem 2>/dev/null
fi
mkdir -p Modem
RECORD=Modem/ModemData.txt
RECORD2=Modem/YourSystem.txt
cat<<END>$RECORD2
This file should NOT be sent to [email protected]
It has common guidance for modem usage after setup.
END
if test "`pwd`" = "/" -a -z "$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 -f /etc/issue ; then
ISSUE=`cut -d'\' -f1 /etc/issue`
ISSUER=`cut -d' ' -f1 /etc/issue | cut -d_ -f1 | cut -d- -f1`
if grep SuSE /etc/issue >/dev/null ; then
# SuSE is not the first word in /etc/issue
ISSUER=SuSE
fi
fi
echo>$TMPM
# Here to reveal installed software
if test -L /dev/modem ; then
link=" The modem symbolic link is /`ls -l /dev/modem | cut -d/ -f2- 2>/dev/null`"
echo $link > $TMPM
fi
if test -L /dev/ttySL0 ; then
link2=" The slmodemd set symbolic link is /`ls -l /dev/ttySL0 | cut -d/ -f2- 2>/dev/null`"
echo $link2 >>$TMPM
fi
link=
link2=
cat<<END>>$RECORD
Only plain text email is forwarded by the [email protected] List Server.
Do use the following as the email Subject Line:
SomeName, YourCountry $ISSUE kernel `uname -r`
This will alert cogent experts, and distinguish cases in the Archives.
YourCountry will enable Country Code guidance.
Occassionally responses are blocked by an Internet Provider mail filters.
So in a day, also check the Archived responses at http://www.linmodems.org .
Local Linux experts can be found through: http://www.linux.org/groups/index.html
-------------------------- System information ----------------------------
$ISSUE
`cat /proc/version`
scanModem update of: $UPDATE
`cat $TMPM`
END
if grep -i slack /etc/issue >/dev/null ; then
echo "Mike Mohr <[email protected]> can provide assistance with Slackware related issues.">>$RECORD
echo >>$RECORD
fi
## GCC analysis
# sed replace s ( and ) with spaces
GCC_INPUT=`cat /proc/version | sed -e 's/)/ /g' | sed -e 's/(/ /g'`
# Picks our version # following gcc
GCC123=`for i in $GCC_INPUT ; do echo $i ; done | grep -A2 gcc | grep -A1 ersion | grep -v ersion`
# last cut for rare names like: MyCompiler-3.3.5
GCC12=`echo $GCC123 | cut -d. -f1-2 | cut -d- -f2`
GCC1=`echo $GCC12 | cut -d. -f1`
# for later package name output
SLMODEMD=SLMODEMD.gcc$GCC1.tar.gz
# Check resident compiler
GCCtests=`ls /usr/bin/gcc* | grep -v gccbug | grep -v gccmakedep 2>/dev/null`
if test -n "$GCCtests" ; then
for i in $GCCtests
do
GCCt=`$i -dumpversion | grep $GCC12 2>/dev/null`
if test -n "$GCCt" ; then
GCC=$GCCt
GCCs=`echo $GCCt | cut -d. -f1-2`
GCCt=
fi
done
fi
if test -z "$GCC" ; then
GCC=none
fi
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 to a non-PNP choice is likely necessary.
END
fi
CMD_PATH="/bin /usr/bin /sbin /usr/sbin"
for i in $CMD_PATH
do
if test -x $i/lspci
then
LSPCI=$i/lspci
fi
done
for i in $CMD_PATH
do
if test -x $i/dmesg
then
DMESG=$i/dmesg
fi
done
for i in $CMD_PATH
do
if test -x $i/lsusb
then
LSUSB=$i/lsusb
fi
done
if test "$LSUSB" -a -x $LSUSB -a $LSUSB &>/dev/null ; then
echo Modem>$TMPM
echo idVendor>>$TMPM
echo idProduct>>$TMPM
USBmodem=`$LSUSB | grep -i modem`
if test "$USBmodem" ; then
$LSUSB -v 2>/dev/null | grep -v 0x000 | grep -f $TMPM >>$RECORD
else
echo "USB modem not detected by lsusb" >>$RECORD
fi
elif test -f /proc/bus/usb/devices ; then
if grep -i modem /proc/bus/usb/devices>/dev/null ; then
grep -i modem /proc/bus/usb/devices >> $RECORD
# S: Product=U.S. Robotics 56K Faxmodem USB
# USB Vendor ID: 0572 Product ID: 1290 (Cadmus2 HCF, Conexant)
# 0483:7554 SGS Thomson Microelectronics 56k SoftModem
if grep "HSF Modem" /proc/bus/usb/devices>/dev/null ; then
echo " Download the hsfmodem package from http://www.linuxant.com/drivers">> $RECORD
fi
# USB ID 0572:1300 with Conexant chips
# USB ID 0572:1301
# USB ID 0572:1302
# USB ID 0572:1303
# USB ID 08E3:0111 (Olitec Speed'Com USB V92 Ready)
# USB ID 0803:1300 (Zoom Telephonics USB V.92)
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
if test -z $LSPCI
then
echo "+----------------------------------------------+"
echo "| WARNING: lspci not found - exiting |"
echo "| Please install the package: pciutils |"
echo "| lspcidrake is not adequate for scanmodem |"
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
# HDA="8086:2668 8086:27d8 1002:437b 10de:026c"
HDAbus=`$LSPCI | grep "High Definition Audio" | cut -d' ' -f1 | cut -d: -f2-`
echo 10de:026c>$TMPM
echo 1002:437b>>$TMPM
echo 8086:2668>>$TMPM
echo 8086:27d8>>$TMPM
if test -z "$TST" -a "$HDAbus" ; then
HDA=1
HDAdev=`$LSPCI-s $HDAbus -n 2>/dev/null | cut -d' ' -f 3`
if test "$HDAdev" = 10de:026c ; then
cat<<END>>$RECORD
If this High Definition Audio card hosts a Conexant softmodem,
modem support may not yet been implemented by http://www.linuxant.com
END
fi
HDAold=`$LSPCI -s $HDAbus -n | grep -f $TMPM`
if test -z "$HDAold" ; then
cat<<END>>$RECORD
New HDA card type:
`$LSPCI-s $HDAbus 2>/dev/null`
`$LSPCI-s $HDAbus -n 2>/dev/null`
END
fi
fi
echo Identifying PCI bus slots with candidate modems.
cat<<END>/dev/null
Modem
modem
erial controller
ommunication controller
M5451
High Definition Audio
ATI Technologies Inc: Unknown device 437b
END
# filering for modem
# 0403: 8086:2668 Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio
# BUS1=0000:00:12.0
BUS1=`$LSPCI -n 2>/dev/null | grep " 07..: " | grep -v "FIR Port" | grep -v arallel | cut -d' ' -f1`
BUS2=`$LSPCI -n 2>/dev/null | grep " 0403: " | cut -d' ' -f1`
BUS3=`$LSPCI -n 2>/dev/null | grep ALI5451 | cut -d' ' -f1`
#older 07xx: Modem family
PCIBUS="$BUS1 $BUS2 $BUS3"
if test -n "$PCIBUS" ; then
if test -z "$TST" ; then
# Do a preliminary PCI ID readout, in case of a later script failure.
echo Modem or host audio card candidates have firmware information:>>$RECORD
for bus in $PCIBUS
do
cat<<END>>$RECORD
PCI slot PCI ID SubsystemID Name
---------- --------- --------- --------------
END
if $LSPCI -n 2>/dev/null | grep $bus | grep Class >/dev/null ; then
PCIDEV=`$LSPCI -n 2>/dev/null | grep $bus | cut -d' ' -f4`
else
PCIDEV=`$LSPCI -n 2>/dev/null | grep $bus | cut -d' ' -f3`
fi
SUBSYS=`$LSPCI -nv 2>/dev/null | grep -A1 $bus | grep Subsystem | cut -d' ' -f2-`
IRQ=`$LSPCI -v 2>/dev/null | grep -A2 $bus | grep IRQ | cut -dQ -f2 | cut -d' ' -f2`
NAME=`$LSPCI | grep $bus | cut -d' ' -f2- | cut -d'(' -f1`
echo " $bus $PCIDEV $SUBSYS $NAME">>$RECORD
echo >>$RECORD
echo " Modem interrupt assignment and sharing: ">>$RECORD
if test $IRQ: -a -f /proc/interrupts ; then
grep -m 1 $IRQ: /proc/interrupts>>$RECORD
BLOCKED=`grep -m 1 $IRQ: /proc/interrupts | grep $bus`
fi
echo >>$RECORD
if test "$DMESG" ; then
echo " --- Bootup diagnositcs for card in PCI slot $bus ----">>$RECORD
$DMESG | grep $bus>>$RECORD
DISABLED=`$DMESG | grep $bus | grep -i disabl`
if test "$DISABLED" -o "$BLOCKED" ; then
cat<<END>>$RECORD
The PCI slot $bus of the modem card may be disabled early in
a bootup process, but then enabled later. If modem drivers load
but the modem is not responsive, read Bootup.txt about possible fixes.
Send dmesg.txt along with ModemData.txt to [email protected]
if help is needed.
END
cat /proc/interrupts >Modem/dmesg.txt
echo >>Modem/dmesg.txt
$DMESG>>Modem/dmesg.txt
cat<<END>Modem/Bootup.txt
A modem device/card may be disabled at bootup, due to a variety of causes.
Look at the bootup diagnostics record dmesg.txt written out through:
$ dmesg > dmesg.txt
and try to garner some understanding from it. Possibilities therein are too
diverse to be automagically processed by scanModem. A line including the PCI
bus slot $bus of your modem, and "disable" or "disabling" predicts problems,
though sometimes corrected later in the bootup. Similarly a line with "@"
in the interrupt (IRQ) for your $bus slot is predictive of problems.
Possible corrections are:
0) Get unloading.gz from http://phep2.technion.ac.il/linmodems/packages/
This script unloads excess drivers which may be competing for resources.
Before trying to set up the modem, do:
$ gunzip unloading.gz
$ chmod +x unloading
$ su - root
# ./unloading
Or for Ubuntu related Distros
$ sudo ./unloading
1) Within the boot up BIOS, change from a Windows to a non-PNP/Other Operating System type.
Instructions for accessing BIOS are at:
http://linmodems.technion.ac.il/resources.html within: Additional Resourcces.
2a) Add an option "pci=routeirq" to the kernel boot up line.
Here is an example paragraph from /boot/grub/menu.lst :
title Ubuntu, kernel 2.6.15-26-686
root (hd0,6)
kernel /boot/vmlinuz-2.6.15-26-686 root=/dev/hda7 ro pci=routeirq
initrd /boot/initrd.img-2.6.15-26-686
savedefault
2b) Same as above, but use "pollirq" instead of "pci=routeirq".
3) Within some BIOS setups, IRQ assignments can be changed.
4) On non-laptop systems, moving the modem card to another slot has helped.
5) Sometimes upgrading the kernel solves the problem.
6) Sometimes downgrading the kernel solves the problem.
7) Sometimes changing the Linux distribution solves the problem.
END
fi #Disabled
fi # DMESG IRQ
bus=
PCIDEV=
SUBSYS=
NAME=
DISABLED=
BLOCKED=
IRQ=
done # first round
echo>> $RECORD
fi # TST of trial run ,PCIBUS still open
cat<<END | tee -a $RECORD
=== Finished modem firmware and bootup diagnostics section. ===
=== Next deducing cogent software ===
END
# Then continue with complete analysis
if test -n "$TST" ; then
PCIBUS=`echo $PCIBUS | cut -d' ' -f1`
NAME=TestingName
if test -z "$SUBSYS" ; then
SUBSYS=some:thing
fi
cat<<END
Substituted test inputs:
PCIDEV=$PCIDEV
SUBSYS=$SUBSYS
END
fi
for bus in $PCIBUS
do
echo "Analysing card in PCI bus $bus, writing to scanout.$bus"
OP=Modem/scanout.$bus
if $LSPCI -n 2>/dev/null | grep $bus | grep Class >/dev/null ; then
CLASS0=`$LSPCI -n 2>/dev/null | grep $bus | cut -d' ' -f3-4`
else
CLASS0=`$LSPCI -n 2>/dev/null | grep $bus | cut -d' ' -f2-3`
fi
# $LSPCI -n 2>/dev/null | grep $i | cut -d' ' -f2-4 > $TMPM
CLASS="Class $CLASS0"
class=`$LSPCI | grep $bus | cut -d' ' -f2- | grep ' 0403: ' >/dev/null`
if test -n "$class" ; then
NAME=`$LSPCI 2>/dev/null | grep $bus | cut -d' ' -f3- | cut -d'(' -f1 `
else
NAME=`$LSPCI 2>/dev/null | grep $bus | cut -d' ' -f2- | cut -d'(' -f1`
fi
if test -z "$TST" ; then
PCIDEV=`echo $CLASS | cut -d' ' -f3`
fi
Vendor=`echo $PCIDEV | cut -d: -f1`
Device=`echo $PCIDEV | cut -d: -f2`
IRQ=`$LSPCI -v 2>/dev/null | grep -A2 $bus | grep IRQ | cut -dQ -f2 | cut -d' ' -f2`
if test "$IRQ" = 0 -o "$IRQ" = 255 ; then
# `grep $IRQ /proc/interrupts`
cat<<END>>$RECORD
===================================
The modem interrupt (IRQ) is $IRQ . IRQs of 0 or 255 are not functional!!
The CPU cannot control the modem until this situation is corrected!!
Possible corrections are:
1) Within the boot up BIOS, change from a Windows to a non-PNP/Other Operating System type.
Instructions for accessing BIOS are at:
http://linmodems.technion.ac.il/resources.html within: Additional Resourcces.
2a) Add an option "pci=routeirq" to the kernel boot up line.
Here is an example paragraph from /boot/grub/menu.lst :
title Ubuntu, kernel 2.6.15-26-686
root (hd0,6)
kernel /boot/vmlinuz-2.6.15-26-686 root=/dev/hda7 ro pci=routeirq
initrd /boot/initrd.img-2.6.15-26-686
savedefault
2b) Same as above, but use "pollirq" instead of "pci=routeirq".
3) Within some BIOS setups, IRQ assignments can be changed.
4) On non-laptop systems, moving the modem card to another slot has helped.
5) Sometimes upgrading the kernel changes IRQ assignment.
=====================================
END
fi # IRQ
if test -z "$TST" -a -z "$SUBSYS" ; then
SUBSYS=`$LSPCI -nv 2>/dev/null | grep -A1 $bus | grep Subsystem | cut -d' ' -f2-`
SUBNAME=`$LSPCI -v 2>/dev/null | grep -A1 $bus | grep Subsystem | cut -d: -f2-`
fi
if test -n "$SUBSYS" ; then
SUBven=`echo $SUBSYS | cut -d: -f1`
SUBdev=`echo $SUBSYS | cut -d: -f2`
$LSPCI -nv 2>/dev/null | grep -A2 $bus | grep Flags: >/dev/null
else
SUBSYS=none
echo PCIbus=$bus>>$RECORD
$LSPCI -v 2>/dev/null | grep -A4 $bus>>$RECORD
echo >>$RECORD
fi
echo PCIDEV=$PCIDEV>>$OP
echo CLASS='"'$CLASS'"'>>$OP
echo NAME='"'$NAME'"'>>$OP
echo Vendor=$Vendor>>$OP
echo Device=$Device>>$OP
echo SUBSYS=$SUBSYS>>$OP
echo SUBNAME='"'$SUBNAME'"'>>$OP
echo SUBven=$SUBven>>$OP
echo IRQ=$IRQ>>$OP
echo Test='"'./scanModem test $PCIDEV $SUBSYS'"'>>$OP
SOFT=
## Recognizing soft modems
echo "8086:2668 8086:2416 8086:2426 8086:7186 8086:7196 8086:2446 8086:2486 8086:24c6 8086:25a7 8086:24d6 8086:8280 8086:266d 8086:2669 8086:27d8 8086:27dd 1039:7013 1039:7018 10de:01c1 10de:00d9 1106:3068 1022:7446 10b9:5450 10b9:5451 10b9:5453 1025:5453 10b9:5457 1025:5457 1002:434d 1002:437b 1002:4378 1543:3052 10de:026c" >$TMPM
if test "$PCIDEV" ; then
if grep $PCIDEV $TMPM>/dev/null ; then
# among known ALSA compatible softmodem controller
SOFT=$PCIDEV
echo " Modem with PCI ID $PCIDEV is in the software modem category."
echo SOFT=$SOFT>>$OP
fi
fi
# echo SOFT=$SOFT
if test -z "$SOFT" -o "$TST" ; then
# Prepare for definitive PCI ID case
rm $TMPM
DEVnum=1120
# some DEVnum needed, but 1120 is not int the test range.
if test "$Vendor" = 11c1 -o "$Vendor" = 115d ; then
# preparing for Agere and Xircom DSP analysis, convert hexadecimal to number
DEVnum=$(( 0x`echo $Device` + 0 ))
# echo DEVnum=$DEVnum
elif test "$Vendor" = 134d ; then
# most common PCTEL family
echo $Device>$TMPM
if grep 789[0-7] $TMPM>/dev/null ; then
# most common PCTEL family
PCTEL=$PCIDEV
fi
else
echo Reduce cases to existence>/dev/null
cat<<END | grep $PCIDEV | cut -d' ' -f1> $TMPM
4005:0308 Avance ALS-300plus sound+softmodem combo PCI card, obsolete
1055:9178 STANDARD_MICROSYSTEM
10b9:545a ALI545A SL1801
10b9: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
163c:3052 Modem: SmartLink SmartPCI562 56K Modem
2000:2800 Gateway SL2800
2003:8800 SmartLink SL2800
END
if test -f $TMPM ; then
slamr=`cat $TMPM | cut -d' ' -f1`
# Uses dslmodemd + driver slamr
fi
rm $TMPM
if test -z "$slamr" ; then
# lightly modified for grep parsing from http://www.linuxant.com HSF and HCF pages
cat<<END | grep $Device | grep $Vendor >$TMPM
HSF {127a,14f1}:{2013,2014,2015,2016}
HSF.Riptide {127a,14f1}:4311 (RIPTIDE)
HSF {127a,14f1}:{2004,2006}
HSF {127a:2114
HSF {14f1:{2043,2044,2045,2046}
HSF {14f1:{2063,2064,2065,2066}
HSF {14f1:2093
HSF {14f1:{201a,201b}
HSF {14f1:{204a,204b}
HSF {14f1:{2143,2144,2145,2146}
HSF {14f1:{2163,2164,2165,2166}
HSF {14f1:{2343,2344,2345,2346}
HSF {14f1:{2363,2364,2365,2366}
HSF {14f1:{2443,2444,2445,2446}
HSF {14f1:{2463,2464,2465,2466}
HSF {14f1:{2f00,2f01,2f02,2f03,2f04}
HSF {14f1:{2f10,2f11,2f12,2f13,2f14}
HSF {14f1:{2702,2703,2704,2705}
HSF {14f1:{2f20,2f30}
HSF {158b:0001 (allied Data Technologies)
HSF {158b:0005 (allied Data Technologies)
HSF {16ec:2f00 (U.S. Robotics USR5660a (265660a) 56K PCI faxmodem)
HCF.HSF {127a,14f1}:{1025,1085,2005} (if it doesn''t work, try HSF driver)
HCF {127a,14f1}:{1002,1003,1004,1005,1006} (71DP v90)
HCF {127a,14f1}:{1022,1023,1024,1026}
HCF {127a,14f1}:{2004,2006}
HCF {127a,14f1}:{1032,1033,1034,1035,1036}
HCF.Riptide {127a,14f1}:{4321} (RIPTIDE)
HCF {14f1:{10b3,10b4,10b5,10b6}
HCF {127a:{1802,1804,1805} (LaN/Modem Combo)
HCF {14f1:{1813,1815} (LaN/Modem Combo)
HCF {14f1:{1f10,1f11,1f14,1f15}
HCF {14f1:{1053,1054,1055,1056} (SmartHCF board rev 3)
HCF {14f1:{1052,1057,1059} (SmartHCF board rev 4)
HCF {14f1:{1063,1064,1065,1066} (SmartHCF US-only, Dell)
HCF {14f1:{1453,1454,1455,1456} (SmartHCF mini-PCI board rev 3)
HCF {14f1:{1452,1457,1459} (SmartHCF mini-PCI board rev 4)
HCF {1024:1024 (Zenith Data Systems)
HCF {148d:1003 (DIGICOM Systems)
HCF {158d:0015 (allied Data Technologies Tornado VfM56x-PRC)
HCF {141a:1035 (apache Micro)
END
if test -f $TMPM ; then
CNX=`cat $TMPM | cut -d' ' -f1`
fi
fi # not SMART
fi # Preparations
# Proceed through mutually exclusive cases
# IDENT=Something , is the signature of effective chipset ID success
# so skip further tests
# Conexant
if test "$CNX" ; then
IDENT=$CNX
if test "$IDENT" = HSF ; then
# use package name
IDENT=hsfmodem
fi
if test "$IDENT" = HCF ; then
IDENT=hcflinmodem
fi
# SmartLink modems
elif test "$slamr" ; then
IDENT=slamr
# Lucent/Agere 11c1 and Xircom 115d DSP chipsets
elif test "$DEVnum" -ge 0 -a "$DEVnum" -le 1023 -a "$Vendor" = 115d ; then
# DEVICES 0x115d:0x0000-0x000f 0x115d:0x0010-0x03ff
IDENT=Agere.DSP
elif test "$Vendor" = 11c1 -o "$Vendor" = 115d && test "$DEVnum" -ge 1088 -a "$DEVnum" -le 1116 ; then
# DEVICES 0x11c1:0x0440-0x045c 0x115d:0x0440-0x045c
IDENT=Agere.DSP
elif test "$Vendor" = 11c1 && test "$Device" = 0461 -o "$Device" = 0462 ; then
IDENT=Agere.Wildwire
elif test "$Vendor" = 11c1 && test "$Device" = 048c -o "$Device" = 048e -o "$Device" = 048f ; then
IDENT=Agere.SV2P
elif test "$PCIDEV" = 11c1:0480 ; then
IDENT=Agere.Venus
elif test "$Vendor" = 11c1 && test "$Device" = 0600 -o "$Device" = 0620 ; then
IDENT=Agere.SV2PP
# Intel 536EP & 537 secton
elif test "$PCIDEV" = 8086:1080 && test "$SUBSYS" = 8086:1000 -o "$SUBSYS" = 8086:1007 -o "$SUBSYS" = 8086:1008 -o "$SUBSYS" = 8086:100a -o "$SUBSYS" = 1028:1000 ; then
IDENT=INTEL537EP
elif test "$PCIDEV" = e159:0001 -a "$SUBSYS" = 8086:0003 ; then
IDENT=INTEL537
elif test "$PCIDEV" = 8086:1040 -a "$SUBSYS" = 8086:1005 ; then
IDENT=INTEL537SP
elif test "$PCIDEV" = 8086:1040 -a "$SUBSYS" = 8086:1000 ; then
IDENT=INTEL536EP
# several PCTEL and CM8737
elif test "$PCTEL" -o "$PCIDEV" = 13f6:0211 ; then
IDENT=PCTEL
elif test "$PCIDEV" = 134d:2189 ; then
# PCTel Oasis modem supported by Smartlink slamr driver
IDENT=slamr
elif test "$PCIDEV" = 12b9:0062 -o "$PCIDEV" = 12b9:1008 ; then
IDENT=USrobotics.serial
elif test "$Vendor" = 10b7 -o "$Vendor" = 12b9 && test "$Device" = 1006 -o "$Device" = 1007 ; then
IDENT=3COM.winmodem
elif test "$Vendor" = 1057 -o "$Vendor" = 11d4 ; then
IDENT=Motorola
elif test "$Vendor" = 15f1 ; then
IDENT=Topic
elif test "$Vendor" = 14e4 ; then
IDENT=Broadcom
elif test "$Vendor" = 125d ; then
IDENT=ESS.com
elif test "$Vendor" = 1813 ; then
IDENT=AmbientTech
elif test "$Vendor" = 1013 ; then
IDENT=CirrusLogic
# Odds and ends
elif $LSPCI -v 2>/dev/null | grep CM8738 >/dev/null ; then
# Some other Vendors used the CM8738 chip
IDENT=PCTEL
new=1
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
new=1
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=HCF.HSF
new=1
echo package='"'both hcflinmodem and hsfmodem'"'>>$OP
else
echo " No definitive chipset IDENTification">/dev/null
fi # Simple PCI ID cases
if test "$new" ; then
echo " New $IDENT device $PCIDEV" >>$RECORD
fi
# To clarify later displays
fi # not soft
# if not IDENTified do the SOFT modem cases,
if test -z "$IDENT" ; then
# skip it TST(test) and do only once,
if ! test "$TST" -o "$SoftTest" ; then
if test -r /proc/asound/card0/codec#1 ; then
AC01=/proc/asound/card0/codec#1
## example of AC01=/proc/asound/card0/codec#1
# Codec: Generic 11c1 Si3054
# Address: 1
# Vendor Id: 0x11c13026
# Subsystem Id: 0x11c13026
# Revision Id: 0x70500
if test "$PCIDEV" = 8086:2668 -o "$PCIDEV" = 8086:27d8 -o "$PCIDEV" = 1002:437b -o "$PCIDEV" = 10de:026c ; then
echo $PCIDEV is a High Definition Audio card, possibly hosting a soft modem.>>$RECORD
if test "$PCIDEV" = 8086:27d8 ; then
if test "$KRELEASE" -le 15 -a "$KMAJOR" = 2.6 ; then
echo " snd-hda-intel may not be competent to read /proc/asound/card0/codec#1">>$RECORD
echo " before 2.6.15 kernels, for HDA card 8086:27d8">>$RECORD
fi
fi
fi
if test -z "$SOFT" ; then
SOFT=HDA_NEW
echo " and a NEW HDA softmodem controller.">>$RECORD
echo PCIDEV=NEW_softmodem_$PCIDEV>>$OP
newHDA=1
fi
echo >>$RECORD
Codec=`grep Codec: $AC01 | cut -d' ' -f3`
VendorID=`grep Vendor $AC01 | cut -d' ' -f3`
echo Codec=$Codec>>$OP
echo VendorID=$VendorID>>$OP
if test "$VendorID" = 0x14f12bfa -o "$Codec" = 14f1 ; then
IDENT=hsfmodem
HSF=1
else
IDENT=slmodemd
fi
if ! test "$VendorID" = 0x11c13026 -o "$VendorID" = 0x11c13055 -o "$VendorID" = 0x163c3055 -o "$VendorID" = 0x163c3155 -o "$VendorID" = 0x11c13026 -o "$VendorID" = 0x11c11040 -o "$VendorID" = 0x10573055 -o "$VendorID" = 0x10573155 -o "$VendorID" = 0x14f12bfa ; then
newChipset=1
cp -a /proc/asound Modem/
tar cfz Modem/$Codec.tgz Modem/asound/
cat<<END>>$RECORD
There may be novel modem chipset information within the /proc/asound/
files. They have been copied and packed into a file: Modem/$Codec.tgz
Please send $Codec.tgz to the scanModem maintainer: [email protected]
END
fi
fi #AC01
if test -f /proc/asound/pcm ; then
PCM=/proc/asound/pcm
lineModem=`grep -i modem $PCM`
if test "$lineModem" ; then
IDENT=slmodemd
if test -z "$SOFT" ; then
echo " $PCIDEV is a NEW softmodem controller">>$RECORD
echo PCIDEV=NEW_softmodem_$PCIDEV>>$OP
fi
# Identify the driver
if grep snd_via82xx_modem /proc/asound/modules | grep modem >/dev/null ; then
DRIVER_=snd_via82xx_modem
elif grep snd_atiixp_modem /proc/asound/modules | grep modem >/dev/null ; then
DRIVER_=snd_atiixp_modem
elif grep snd_intel8x0m /proc/asound/modules >/dev/null ; then
DRIVER_=snd_intel8x0m
elif grep -i "ALI 5451 modem" $PCM >/dev/null ; then
DRIVER_=snd_ali5451
OPTS="-s "
elif grep snd_hda_intel /proc/asound/modules >/dev/null ; then
HDA=1
# /proc/asound/modules is 0 snd_hda_intel
if ! grep -i modem /proc/sound/cards >/dev/null ; then
DRIVER_=snd_hda_intel
fi
else
echo Future cases >/dev/null
fi
# Deduce the SLMODEMD_DEVICE from
# lineModen="HDA 00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1"
if grep -i Modem $PCM | grep "00-0[1-9]: " >/dev/null ; then
## High Definition Audio line from $PCM
# # 00-00 is the Audio card, the modem line is like:
# 00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1
cA=`grep -i Modem $PCM | cut -b4`
cM=`grep -i Modem $PCM | cut -b5`
# N=1,6 cases thus far observed
SLMODEMD_DEVICE=hw:$cA,$cM
if grep -i "ALI 5451" $PCM >/dev/null ; then
# 00-01: ALI 5451 modem : ALI 5451 modem : playback 1 : capture 1
OPTS="-s "
echo OPTS=$OPTS>>$OP
# OPT --shortbuffer or -s needed by ALI5451
fi
else
## typical mc97 codec modem, proc/asound/pcm modem line
# 01-00: VIA 82XX modem : VIA 82XX modem : playback 1 : capture 1
N=`grep -i modem $PCM | cut -b2`
SLMODEMD_DEVICE=modem:$N
# there are rare cases where modem:0 is necessary because a non-ALSA audio
# driver is used, so hw:0 is the modem rather that the audio device.
fi
fi # lineModem
# for mc97 codec modems, not HDA types, and most Conexants
REGISTERS=`find /proc/asound -name 'mc97#[0-3]-[0-3]+regs'`
if test -n "$REGISTERS" ; then
for REG in $REGISTERS
do
mc97=`echo $REG | cut -d+ -f1`
mc97line=`cat $mc97 | grep Extended`
if grep -i Conexant $mc97 >/dev/null ; then
IDENT=hsfmodem
HSF=1
fi
hex1=`grep 0:7c $REG | cut -b 8-9`
hex2=`grep 0:7c $REG | cut -b 10-11`
hex3=`grep 0:7e $REG | cut -b 8-9`
num=`grep 0:7e $REG | cut -b 10-11`
cat<<END>$TMPM
41 A
42 B
43 C
44 D
45 E
46 F
47 G
48 H
49 I
4a J
4b K
4c L
4d M
4e N
4f O
50 P
51 Q
52 R
53 S
54 T
55 U
56 V
57 W
58 X
59 Y
5a Z
END
B1=`grep $hex1 $TMPM | cut -b4`
B2=`grep $hex2 $TMPM | cut -b4`
B3=`grep $hex3 $TMPM | cut -b4`
CODECd=$B1$B2$B3$num
echo CODECd=$CODECd>>$OP
COD=$B1$B2$B3
echo COD=$COD>>$OP
if test "$COD" = CXT ; then
IDENT=hsfmodem
HSF=1
elif test -n "$CODECd" ; then
IDENT=slmodemd
TYPE=ALSA
echo TYPE=ALSA >>$OP
else
echo No decision>/dev/null
fi
done
fi # REGISTERS
fi # PCM
if test "$Codec" -a -z "$CODECd" ; then
CODECd=$Codec
fi
SoftTest=1
if test -z "$IDENT" -a "$AC01" -a -z "$HSF" ; then
# try to identify why there was no modem line, HSF done earlier
# from the ALSA sources file driver/sound/pci/hda/patch_si3054.c
if test "$newHDA" ; then
Driver=snd-hda-intel
SLMODEMD_DEVICE=hw:0,1
echo "A patch to snd-hda-intel is needed to implement service.">>$RECORD
elif "$VendorID" = 0x11c13026 ; then
echo " There shold be support for softmodem chip from AgereSystems: $VendorID ">>$RECORD
Driver=snd-hda-intel
SLMODEMD_DEVICE=hw:0,1
elif "$VendorID" = 0x11c13026 ; then
echo " A patch to snd-hda-intel may be needed to support the softmodem chip from AgereSystems: $VendorID" >> $RECORD
Driver=snd-hda-intel
SLMODEMD_DEVICE=hw:0,1
elif "$VendorID" = 0x163c3055 -o "$VendorID" = 0x163c3155 ; then
echo " A patch to snd-hda-intel may be needed to support the softmodem chip from Smartlink: $VendorID ">>$RECORD
Driver=snd-hda-intel
SLMODEMD_DEVICE=hw:0,1
elif "$VendorID" = 0x10573055 -o "$VendorID" = 0x10573155 -o "$VendorID" = 0x11c11040 ; then
echo " A patch to snd-hda-intel is needed to support the softmodem chip from Motorola: $VendorID ">>$RECORD
Driver=snd-hda-intel
SLMODEMD_DEVICE=hw:0,1
else
echo FutureCases >/dev/null
fi
fi # NoIdent
fi # not TST or SoftTest
if test -z "$HSF" ; then
if test -z "$IDENT" ; then
# Deduce dirver from PCI ID info
if test "$PCIDEV" = 10b9:5457 ; then
Driver=slamr
SLMODEMD_DEVICE=/dev/slamr0
elif test "$PCIDEV" = 10b9:5451 ; then
Driver=snd-ali5451
SLMODEMD_DEVICE=hw:0,1
OPTS="-s "
elif test "$PCIDEV" = 1002:434d -o "$PCIDEV" = 1002:4378 ; then
Driver=snd-atiixp-modem
SLMODEMD_DEVICE=modem:1
elif test "$PCIDEV" = 1106:3068 ; then
Driver=snd-via82xx-modem
SLMODEMD_DEVICE=modem:1
else
# "mixer error" is warning - this means your ALSA driver (intel8x0m) is old,
Driver=snd-intel8x0m
SLMODEMD_DEVICE=modem:1
fi
fi # not HSF deduction from hardware
echo SLMODEMD_DEVICE=$SLMODEMD_DEVICE >>$OP
PORT="$OPTS$SLMODEMD_DEVICE"
echo PORT='"'$PORT'"' >>$OP
if test -z "$Driver" -a "$DRIVER_" ; then
Driver=`echo $DRIVER_ | sed -e 's/_/-/g'`
fi
if test -z "$DRIVER_" -a "$Driver" ; then
DRIVER_=`echo $Driver | sed -e 's/-/_/g'`
fi
echo Driver=$Driver>>$OP
echo DRIVER_=$DRIVER_ >>$OP
if test "$Driver" = snd-atiixp-modem ; then
KDRIVER=SND_ATIIXP_MODEM
elif test "$Driver" = snd-via82xx-modem ; then
KDRIVER=SND_VIA82XX_MODEM
elif test "$Driver" = snd-intel8x0m ; then
KDRIVER=SND_NTEL8X0M
elif test "$Driver" = snd-hda-intel ; then
KDRIVER=SND_HDA_INTEL
else
echo NewCases>/dev/null
fi
echo KDRIVER=$KDRIVER>>$OP
# preparing to grep CONFIG
if test -f /boot/config-$SYS ; then
CONFIG=/boot/config-$SYS
elif test -f CONFIG=/boot/config-$SYS-default ; then
CONFIG=/boot/config-$SYS-default
else
CONFIG=
fi
if test "$Driver" ; then
MPLACE=`find /lib/modules/$SYS/ -name $Driver.ko*`
Loaded=`grep $DRIVER_ /proc/modules | cut -d' ' -f1`
if test "$MPLACE" ; then
echo MPLACE=$MLPACE>>$OP
elif test -n "$CONFIG" -a "$KDRIVER" ; then
if grep $KDRIVER=y $CONFIG ; then
echo $KDRIVER=InKernel>>$OP
echo " The $Driver is integrated into the kernel.">>$RECORD
fi
else
echo " The $Driver is not supported by this kernel.">>$RECORD
fi
else
echo " A candidate driver could not be identified.">> $RECORD
fi
if test -n "$MPLACE" -a "$lineModem" ; then
ASOUND=1
elif test -n "$MPLACE" -a -z "$Loaded" ; then
echo " The modem driver $Driver is Not loaded."
elif test -n "$MPLACE" -a -z "$lineModem" ; then
echo " The modem driver $Driver is loaded but inactive."
elif test "$UID" = 0 -a -n "$Driver" ; then
/sbin/modprobe -r $Driver && sleep 1 && /sbin/modprobe $Driver
ASOUND=1
else
echo Other possibilities >/dev/null
fi
if test -z "$IDENT" -o -z "$ASOUND" -a -n "$Driver" -a "$Driver" != slamr ; then
cat<<END
To enable functional diagnostics, please either briefly login as Root:
su - root (Not for Ubuntu)
and unload and reload the modem driver
$SUDO modprobe -r $Driver
$SUDO modprobe $Driver
Exit Root status
exit
and rerun
./scanModem
END
if ! test -f RanOnce.txt ; then
echo This is just a scanModem record file. > RanOnce.txt
exit
else
echo 2nd run of scanModem | tee RanOnce.txt
fi
fi
echo ASOUND=$ASOUND>>$OP
if test "$DMESG" ; then
HSFboot=`$DMESG | grep HSF:`
if test -n "$HSFboot" ; then
echo "Bootup diagnostic `$DMESG | grep HSF:`" >>$RECORD
fi
SLAMR=`find /lib/modules/ -mindepth 3 -maxdepth 5 -name slamr.* | grep $SYS`
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 test "$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
Please rerun scanModem after login as
# su - root
Within Modem/Smartlink.txt, see the slamr test for an explanation.
END
sleep 3
fi
if test -n "$SLAMRout" ; then
echo " ------ dmesg slamr filtered -------">/dev/null
cat $TMPM >/dev/null
CODEC=`$DMESG | grep slamr | grep codec | cut -d' ' -f6`
echo CODECslamr=$CODEC>>$OP
if test -n "$CODEC" ; then
COD=`echo $CODEC | cut -b 1-3`
echo CODslamr=$COD>>$OP
echo " The slamr diagnostic reports a codec is: $CODEC" >>$RECORD
fi
fi
fi
fi # DMESG
fi # not "$HSF"
rm -f $TMPM.2 > /dev/null
if test "$SUBSYS" = none ; then
# There are rare modem cards without a SUBSYS PCI ID in the firmware
echo SUBSYS=none>>$OP
else
echo "Checking for match with Archived softmodem information."
cat<<END>/dev/null
In the Archive below, the first field is the modem chipset manufacturer for HDA cards
OR the mc97 codec for cards with a AC''97/MC97 compatible register,
orginally read from the 0:7c and 0:7e fields and then translated.
Following is the SubSystem PCI IDs of cards with that codec,
which is grep filtered on. This field accepts comments diverse.
The HDA cards are first listed.
END
if test "$PCIDEV" = 8086:2668 ; then
HDA=1
# Class 0403: 8086:2668 Class 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
14f1 1025:008f 1028:01c9 1028:01cb 1028:01b5 104d:81bb 103c:30a5 1043:1993
11c1 1179:ff00 1025:0070 10cf:1326
163c 1558:0900
END
elif test "$PCIDEV" = 8086:27d8 ; then
HDA=1
# Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
14f1 1028:01cd_14f12bfa 1043:81d8 17aa:2010 1028:01bd 1028:01d6 1025:0090 152d:0753
11c1 1179:ff00_11c13026 1179:ff01 1179:ff10 ; 103c:30aa 103c:30a2 144d:c504 1019:0f71 1025:0110 1025:0102 17aa:2066_11c11040
1057 1558:5405_10573055 1631:c022
END
elif test "$PCIDEV" = 1002:437b ; then
HDA=1
# Audio device: ATI Technologies Inc SB450 HDA Audio (rev 01)
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
11c1 1462:0369 , 10cf:1326 1179:ff31_11c11040
EOF
elif test "$PCIDEV" = 10de:026c ; then
HDA=1
# nVidia Corporation MCP51 High Definition Audio
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
14f1 103c:30b7
11c1 107b:0317_11c11040 ;
EOF
# 10b9:5461 ALI HDA
# :0371 HDA GeForce
# :03e4 HDA
elif test "$PCIDEV" = 8086:2416 ; then
# 8086:2416 82801AA ICHAA
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 107b:0012
SIL21 109f:7140
SIL22 14c0:0012 COMPAL Electronics Inc Smartlink
SIL27 8086:2416
EOF
# cat $TMPM.2
elif test "$PCIDEV" = 8086:2426 ; then
# 8086:2426 82801AB ICHAB
cat<<END>TMPM.2
SIL21 134d:4c21
END
elif test "$PCIDEV" = 8086:7196 ; then
# 8086:7196 82440 Banister ICH1
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
SIL27 10cf:10d1
EOF
elif test "$PCIDEV" = 8086:2446 ; then
# 8086:2446 82801BA ICH2
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 104d:80df 1025:1027 104d:80e0 CXT21 ,
SIL21 10cf:10d2 CitiCorp
SIL27 1179:0001
EOF
elif test "$PCIDEV" = 8086:2486 ; then
# 8086:2486 82801CA/CAM AC97 CAM AC'97 ICH3
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1668:5421 CXT21, 14f1:5421 MD56ORD V.92 MDC Modem
SIL27 103b:0757 Tatung Co , 1014:0223 1014:0503 IBM , 1179:0001 , 144d:2115 Samsung, 1014:0227
BCM64 14e4:4d64
SIL21 134d:4c21
SIL22 14c0:0012 COMPAL Electronics Inc
END
elif test "$PCIDEV" = 8086:24c6 ; then
# 8086:24c6 82801DB ICH4 AC'97 Modem Controller
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 104d:8129 104d:818c_23 , 104d:816a , 1014:055a , 104d:80fa , 14f1:5422_22 , 161f:2030_23 1043:1826 , 103c:3084 , 1025:0064 103c:3080_30, 1014:0559_23
SIL27 152d:0706 152d:6601 QUANTA Computer, 144d:2115 Samsung , 1019:d551 1179:0001 1734:1033 1854:0005 0e11:0860 1025:0061 Acer, 1025:003d 1025:0071 1025:003c 1025:001f 1014:0544 10cf:10d1 17c0:1089 1854:000a 1019:d553 161f:202d 1014:051e 1014:0524 1014:0525 1014:0227 1071:8051 107b:0200 103c:3089 17c0:1069 1025:0038 1025:0051 1025:0035
AGR 107b:0405
SIL21 1071:8050 134d:4c21 4c21:5349 1071:8160 1734:1055 , 1071:8052 but Si3036,8 rev 7,
SIL22 1584:4007 1734:102a 1734:106b 14ff:1008
BCM64 14e4:4d64
SIL24 144f:1050 Askey Comp. with BroadCom,
1179:ff31 probably conexant
END
elif test "$PCIDEV" = 8086:24d6 ; then
# 8086:24d6 82801EB ICH5
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 103c:006a
SIL27 1179:0001 104d:8128
BCM64 14e4:4d64
END
elif test "$PCIDEV" = 8086:266d ; then
# SIL2f 1179:0001
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1014:0574 1014:0576 1025:006a 14f1:5423 CXT23 no /proc/asound/mc97* 103c:3082 , 1025:0066 1179:ff31 CXT30 , 17aa:207c 103c:3080 107b:0610_30
152d:0745 probably Conexant
SIL27 1509:3670 1179:0001 17c0:10bb 103c:3081 103c:099c 27/2f 103c:309d 103c:0944 , 10cf:10d1 14c0:0012 1025:005e
SIL2F 1025:007a
END
elif test "$PCIDEV" = 1039:7013 ; then
# 1039:7013 SIS 630 , there is a SIL21 no Subsystem case.
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 104d:814e 025:0082_23 161f:2038_23 , 1043:1816 CXT22 1025:0082 1558:4201
SIL27 1043:1736 104d:8129 17c0:1059 1033:8216 1028:0195 1025:0028
SIL2f 1025:0083
SIL23
INTEL537 1509:3170 Si3036,8 rev 5 ;
SIL22 1631:3003 NorthBridge , 1584:4003 1734:1055 1734:105f 1558:2202 1558:0360 1734:1031 1019:b713 17c4:3001 1558:4201 with, 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 1043:1696 13e0:0270 1043:1457
AGR02 14a4:1027 01-00: Intel ICH - Modem : SiS SI7013 Modem - Modem : playback 1 : capture 1
MOT66 1584:4603
EOF
elif test "$PCIDEV" = 1039:7018 ; then
# 1039:7018 SIS 960
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
none
EOF
elif test "$PCIDEV" = 10de:01c1 ; then
# 10de:01c1 Nvidia Corp
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
none
EOF
elif test "$PCIDEV" = 10de:00d9 ; then
# 10de:01d9 Nvidia Corp
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1043:1856 Asustek
SIL27 103c:006d HP , 1025:0059 Acer
EOF
elif test "$PCIDEV" = 1106:3068 ; then
# 1106:3068 VIA
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 104d:8143 104d:80f6 , 1025:0030 CXT41
SIL27 1025:0046 1025:0033 1025:003e 1025:0046 AMD64, 1734:1078 1509:2870 , 1102:0033 CreativeLabs 1071:8889 1509:2170
SIL22 1743:1032 , 10cf:118e , 1734:1054 , 1462:309e , 1631:e004 , 1543:4c22 , 161f:2032 1584:4005 1558:4701 14ff:100b 14ff:1005
SIL21 10cf:118e , 13bd:1022 , 1543:4c21 1071:8375 1019:0c04 1458:1543 1019:b320
SML 1631:3054 26 ,
MOT66 1734:109b is a "custom" AgereSystems codec
EOF
elif test "$PCIDEV" = 1022:7446 ; then
# 1022:7446 AMD AC_LINK
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
none
EOF
elif test "$PCIDEV" = 1543:3052 ; then
# Silicon Inst
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
Motorola 1543:3020
EOF
elif test "$PCIDEV" = 10b9:5451 ; then
# Audio card with modem Subsystem
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 103c:0850 103c:0024
SIL21 1179:0221
SIL27 1179:0001
EOF
elif test "$PCIDEV" = 10b9:5453 ; then
# 10b9:5453 ALI 5453
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
none
EOF
elif test "$PCIDEV" = 10b9:5457 ; then
# 10b9:5457 ALI 5457
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 103c:002a CXT21, 103c:0024 CXT41 , 103c:0029 103c:0850 161f:2027 , 152d:0705 CXT29
SIL27 1179:0001 , 1033:81f3 1019:df56
SIL22 1631:c00e
EOF
elif test "$PCIDEV" = 10b9:5459 ; then
# 10b9:5459 ALI 5459
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
SIL26 10a5:5459 Smart Link Ltd.
EOF
elif test "$PCIDEV" = 1002:434d ; then
# 1002:434d ATI Technologies Inc:
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1025:0080
SIL27 103c:006b 1179:0001 1025:0052 144d:2115
EOF
elif test "$PCIDEV" = 1002:4378 ; then
# ATI Technologies Inc ATI SB400 - AC'97 Modem Controller
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1025:0080 103c:3085 1179:ff31 103c:3091_CXT30 103c:308b_CXT30
SIL27 1179:0001 1462:0131
SIL2f 1025:007e
EOF
##ARCHIVEend
else
echo NEW=$PCIDEV.$SUBSYS>>$OP
fi
if test -f $TMPM.2 ; then
CODECp=`cat $TMPM.2 | cut -d' ' -f1`
if test "$CODECp" = CXT -o "$CODECp" = 14f1 ; then
IDENT=hsfmodem
elif test -z "$CODECp" ; then
CODECp=
else
IDENT=slmodemd
fi
fi
echo CODECp=$CODECp>>$OP
# echo CODECp=$CODECp
fi # $SUBSYS
if test "$SUBven" = 14f1 ; then
subsytem=", $SUBven is a Conexant vendor ID"
IDENT=hsfmodem
COD=CXT
elif test "$SUBven" = 14e4 -o "$SUBven" = 134d ; then
subsytem=", $SUBven is an ALSA compatible identification"
IDENT=slmodemd
else
subsytem=
fi
echo CODEC=$CODEC>>$OP
echo COD=$COD>>$OP
echo HDA=$HDA>>$OP
fi # Already IDENT from PCI IDn
# Sending IDENT to scanout.PCIbus, to be subsequently SOURCED.
echo IDENT=$IDENT | tee -a $OP
echo TST=$TST>>$OP
# Clear if there are further analysis rounds
package=
IDENT=
SOFT=
PCIDEV=
SUBSYS=
NAME=
hsfmodem=
CNX=
CLASS=
slmodemd=
slamr=
HDA=
TST=
done # with a bus with PCIBUSes
else
cat<<END>>$RECORD
A modem was not detected among the PCI devices:
------------------------------------------------
`$LSPCI | grep -v USB | grep -v bridge`
------------------------------------------------
with USB and bridge devices not displayed.
Please provide any independent information available on your modem.
If your modem is mounted on an ISA card, scanModem could not access it.
If an alternative boot into Microsoft windows can be done, do mouse
clicks on:
Start > Settings > Control Panel > Classical View (for Window XP) > System
> Hardware > Device Manager > 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
and device information.
Next do the Query Modem and record the ATI specifications displayed such as:
ATI3 - Agere SoftModem Version 2.1.22
ATI5 - 2.1.22, AMR Intel MB, AC97 ID:SIL REV:0x27
Try to identify the modem setup file, with name perhaps MODEM.INF.
If may contain chipset Vendor informaton.
END
if test -f /proc/asound/pcm ; then
cat<<END>>$RECORD
Checking for audio+modem support in /proc/asound/pcm
`cat /proc/asound/pcm`
END
fi
fi
## A few environmental variables governing ouputs
# DPKG is characteristic of Debian and derivative Distros
DPKG=`ls /usr/bin/dpkg /usr/sbin/dpkg 2>/dev/null`
RPM=`ls /usr/bin/rpm /usr/sbin/rpm 2>/dev/null`
if test -z "$CPU" ; then
CPU=`uname -m`
fi
KRPM=`echo $SYS | sed -e 's/-/_/g'`
# KRPM needed for rpm underscore syntax
# SYS=2.6.8.1-+3-686 , difficult parsing case
KVER=`uname -r | cut -d- -f1 | cut -d+ -f1 | cut -d. -f1-3`
KMAJOR=`echo $SYS | cut -d. -f1-2`
KRELEASE=`echo $KVER | cut -d. -f3`
KEXT=`echo $SYS | sed -e 's/'$KVER'//g'`
UD=`ls -d /dev/.u* 2> /dev/null`
###### Begun writes off card specific data
RUNS=`ls Modem/scanout.* 2>/dev/null`
for run in $RUNS
do
# chmod a+rwx $run
# cat Modem/scanout >> $run
source $run
OP=$run
bus=`echo $run | cut -d. -f2-`
if test -z "$IRQ" ; then
IRQ=test
echo using IRQ=test
fi
if test "$PCIDEV" = 10b9:5457 -a "$IDENT" = slmodemd ; then
IDENT=slamr
fi
echo Using scanout.$bus data, and writing guidance to ModemData.txt
NAME=`echo $NAME | cut -d'(' -f1`
cat <<END>>$RECORD
For candidate modem in PCI bus: $bus
$CLASS $NAME
Primary PCI_id $PCIDEV
END
if test -z "$SOFT" ; then
if test "$IDENT" = Agere.SV2P -o "$IDENT" = Agere.SV2PP -o "$IDENT" = Agere.Wildwire -o "$IDENT" = 3COM.winmodem -o "$IDENT" = AmbientTech -o "$IDENT" = CirrusLogic -o "$IDENT" = Broadcom -o "$IDENT" = HSF.Riptide -o "$IDENT" = HCF.Riptide ; then
unsupported="Under Linux 2.6.n kernels, the chipset is NOT SUPPORTED . Read InfoGeneral.txt about alternatives."
fi
cat<<END>>$RECORD
Support type needed or chipset: $IDENT
$unsupported
END
else
cat<<END>$TMPM
, an Intel type. INT65 SIL26 unsupported
, an AgereSystems type. SIL27 SIL2F MOT66 AGR01 AGR02 11c1
, a Pctel type. SIL21 SIL23
, a Smartlink type. SIL22 163c
, a Broadcom type. SIL24 BCM64
, a Conexant type, using hsfmodem software.. CXT 14f1
, a Motorola type. 125d Motorola
END
if test -n "$CODECd" ; then
if test "$COD" = CXT ; then
dchipset=`grep CXT $TMPM | cut -d' ' -f1-4`
else
dchipset=`grep $CODECd $TMPM | cut -d' ' -f1-4`
fi
fi
if test -n "$CODECp" ; then
if test "$COD" = CXT ; then
pchipset=`grep CXT $TMPM | cut -d' ' -f1-4`
else
pchipset=`grep $CODECp $TMPM | cut -d' ' -f1-4`
fi
fi
if test -z "$CODECd" -a -n "$CODECslamr" ; then
if test "$COD" = CXT ; then
IDENT=hsfmodem
else
IDENT=slmodemd
fi
CODECd="$CODECslamr, from a slamr test."
fi
if test "$COD" = CXT -o "$CODECp" = CXT ; then
cnx="CXT is a generic for all CXTnumbers, with Linuxant hsfmodem software support."
fi
if test -z "$HSF" -a -n "$CODECp" -a "$CODECd" -a "$CODECd" != "$CODECp" ; then
differ=" Diagnostics and the Archive data DISAGREE"
fi
cat <<END>>$RECORD
Subsystem PCI_id $SUBSYS $subsytem
Softmodem codec or Vendor from diagnostics: $CODECd$dchipset
from Archives: $CODECp$pchipset
$cnx$differ
END
if test -z "$pchipset" -a -n "$dchipset" ; then
cat <<END >>$RECORD
This is a NEW softmodem case! Please send the output ModemData.txt
to [email protected] , even if further assistance is not needed.
It will enrich the Archive and help others!
-------------------------------------------
END
sleep 3
fi
cat <<END >>$RECORD
Lacking a dsp (digital signal processing) chip, the modem is a software
intensive or "softmodem" type. Its primary controller manages the traffic
with the CPU. But the software needed is specified in the Subsystem.
-----------------------------------------
END
echo "Support type needed or chipset: $IDENT">>$RECORD
echo >>$RECORD
if test "$PCIDEV" = 8086:266d -a "$KRELEASE" -le 8 -a "$KMAJOR" = 2.6 ; then
echo " ALSA modem drivers of kernel-version 2.6.8 and earlier lack support for the 8086:266d soft modem controller">>$RECORD
fi
if test -z "$IDENT" ; then
maybe="may be"
Smart=1
HSF=1
cat <<END>>$RECORD
Support can likely be achieved through two mutually exclusive alternatives:
1) An ALSA modem driver plus slmodemd. Read Smartlink.txt for details, and
to test get the package $SLMODEMD from:
http://linmodems.technion.ac.il/packages/smartlink/
2) The hsfmodem software for Conexant chipset modems: Read Conexant.txt
END
fi
if test "$IDENT" != hsfmodem ; then
DONE=1
ALSABASE=`ls /usr/share/alsa* 2>/dev/null`
if test -z "$ALSABASE" ; then
cat<<END>>$RECORD
Packages providing alsa-base and alsa-utilities support should be installed,
for necessary support of ALSA modem drivers and slmodemd actions.
END
fi
if test "$TST" -a "$HDA" ; then
PORT=hw:0,1
fi
cat <<END>>$RECORD
An ALSA (Advanced Linux Sound Architecture) modem driver: $Driver
provides Low Level support enabling contact with the modem hardware.
For all BUT Conexant chip soft modems (using hsfmodem software)
complementary High Level support is through a Smartlink utility: slmodemd
Download from http://linmodems.technion.ac.il/packages/smartlink/
the package $SLMODEMD having a compiled slmodemd. Unpack under Linux with:
$ tar zxf $SLMODEMD
and read instructions therein. But briefly, the modem is setup with command:
$SUDO slmodemd -c YOUR_COUNTRY --alsa $PORT
reporting dynamic creation of ports:
/dev/ttySL0 --> /dev/pts/N , with N some number
Read Smartlink.txt and $RECORD2 for follow through guidance.
END
fi
if test -z "$HSF" ; then
cat<<END>>$RECORD2
Complementation of $Driver, slmodemd and a dialer utility
---------------------------------------------------------
THe ALSA (Advanced Linux Sound Architecture} modem driver $Driver
provides ONLY a low level access to the hardware. The complementing HIGH
level support for ALSA modem drivers is through a Smartlink utility: slmodemd
An ALSA compatible and compiled slmodemd is in the package $SLMODEMD
with download from http://linmodems.technion.ac.il/packages/smartlink/
Unpack under Linux with:
$ tar zxf $SLMODEMD
and read instructions therein.
Typically the driver $Driver will be autoloaded on most Systems.
Then a Root permission command:
$SUDO slmodemd -c YOUR_COUNTRY --alsa $PORT
will announce creation of ports
/dev/ttySL0 --> /dev/pts/N , N some number
The /dev/ttySL0 is a symbolic link to the true modem port /dev/pts/N
USA is the YOUR_COUNTRY default. See other Country alternatives by:
slmodemd --help
slmodemd --countrylist
Should there be a failure report like:
--------
ALSA lib pcm_hw.c:1305:(_snd_pcm_hw_open) Invalid value for card
error: alsa setup: cannot open playback device $PORT No such device
error: cannot setup device $PORT
--------
First verify that packages providing ALSA audio support are installed.
Names vary with the Linux distribution but they are like "alsa-base"
and "alsa-utilities". In these are installed,
Next try as Root unloading and loading the driver:
$SUDO modprobe -r $Driver
$SUDO modprobe $Driver
Then retest the:
$SUDO slmodemd -c YOUR_COUNTRY --alsa $PORT
slmodemd MUST be kept running throughout a dial out session.
Note that mere loading does NOT establish that $Driver is the correct
driver, rather than hsfmodem drivers for Conexant chipset modems. But
$Driver may still support readout of Subsystem information.
--------------------------------------------------------------------------
A dialer utility such as wvdial (perferable) is still needed for dialout.
slmodemd MUST be kept running throughout a dialout session.
On some Systems, putting the slmodemd process in the background with an &:
$SUDO slmodemd -c USA --alsa $PORT &
causes subsequent dialout failures.
Read Testing.txt for follow through details and Smartlink.txt
for additional information.
END
fi # HSF
if test "$Driver" ; then
if test "$Driver" = snd-ali5451 -a "$KMAJOR" = 2.6 -a "$KRELEASE" -le 12 ; then
echo " Driver $Driver includes modem support beginning within 2.6.12 kernels.">>$RECORD
fi
if grep $DRIVER_ /proc/modules>>/dev/null ; then
cat<<END>>$RECORD
Already loaded into the kernel is $Driver and audio drivers it depends on,
displayed by: lsmod | grep $DRIVER_
Module Size Used by
-------------------------------------
`lsmod | grep $DRIVER_`
END
fi
if test -z "$HDA" -a -z "$REGISTERS" ; then
cat<<END
There was a failure to acquire modem codec information, suggesting either
a Conexant modem chip, not supported by the ALSA modem driver $Driver,
of that $Driver may require reloading. Please with Root permission do:
$SUDO modprobe -r $Driver
$SUDO modprobe $Driver
Then rerun
./scanModem
If displayed, Ignore his message on the next run.
END
fi
fi
if ! test -d /proc/asound ; then
echo "The audio/modem diagnostic files /proc/asound have not been created.">>$RECORD
else
cat<<END>>$RECORD
The diagnostic outputs for this softmodem section have their raw informationradsej upload:
http://www.sendspace.com/file/cxmaf4
http://www.sendspace.com/file/cxmaf4
jj vem co to je za sit ...
som mal kedysi daaaaaaaaaaaaaaaaavno je to vlastne agere cip
som stahol ovladace nainstalil a islo ... ale su licencovane tak by ich bolo treba nejak obist
(povoluju iba 36kb/s a bez faxu sa my zda ...)
ale to staci pohladat a vsetko sa najde ...
som zastanca pravidla, ze ked si kupim neco tak k tomu chcem aj ovladace a platit za ne nepovazujem za neco normalne ... takto to neberem ako neleg. ale je tak pozor
ovladac ... mal by fungovat
http://walbran.org/sean/linux/stodolsk/ ... 78c.tar.gz
http://www.physcip.uni-stuttgart.de/heb ... a10.tar.gz
mali by ist nejak spustit
som skusal a na 2.6 kernelu som to nejak rozbehal ... ale na mandrivu nevem nevem ...
som mal kedysi daaaaaaaaaaaaaaaaavno je to vlastne agere cip
som stahol ovladace nainstalil a islo ... ale su licencovane tak by ich bolo treba nejak obist
ale to staci pohladat a vsetko sa najde ...
som zastanca pravidla, ze ked si kupim neco tak k tomu chcem aj ovladace a platit za ne nepovazujem za neco normalne ... takto to neberem ako neleg. ale je tak pozor
ovladac ... mal by fungovat
http://walbran.org/sean/linux/stodolsk/ ... 78c.tar.gz
http://www.physcip.uni-stuttgart.de/heb ... a10.tar.gz
mali by ist nejak spustit