اینم از مودم ما.حالا چی کار کنم؟
#!/bin/bash
# scanModem maintainer is Marvin Stodolsk y
# SETDATE must be 4th line for following sed "4s/ action
SETDATE="SETDATE=2008_11_06,week_44"
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 Discuss@linmodems.org
== to do stuff ====
8086:27d8 1025:0110, has cases of both 11c11040 AND 11c13026
http://tuxmobil.org/phones_linux.html cellphone guidance
slamr reload on 2.6.24
EQUADOR=USA modem code
Spanish - Carlos Marcano <c.marcano@gmail.com>
Amjad <isstaif@gmail.com> fluent in English Arab, Syria
scanModem under RAM boot
fake mode without modem
Please subscibe to the List at www.linmodems.org and email to the List rather than direct to me, as I am only on line irregularly.
Syed Karim <kolosus2@hotmail.com> uses USA pclinuxos
http://www.cisco.com/warp/public/471/debug_ppp_negotiation.html
END
PATH=/usr/sbin:/usr/bin:/sbin:/bin
CMD_PATH="/bin /usr/bin /sbin /usr/sbin"
# processing alternatives
if test "$1" = up ; then
FLD=.updates
mkdir -p $FLD
DATED=$(date +%Y%m%d%M)
NEWDATE=SETDATE=$(date +"%Y_%m_%d,week_%U")
# echo SETDATE=$SETDATE changed to $NEWDATE
sed "4s/$SETDATE/$NEWDATE/" scanModem > $FLD/scanModem.$DATED
chmod +x $FLD/scanModem.$DATED
cp -a $FLD/scanModem.$DATED ./scanModem
gzip $FLD/scanModem.$DATED
cp -a $FLD/scanModem.$DATED.gz ./scanModem.gz
echo New SetDate is:
grep -m 2 SETDATE scanModem
ls scanModem $FLD/scanModem.*
UPDATE=$(echo $NEWDATE | cut -b9-18)
# because $UPDATE is used several times in the script body
echo UPDATE=$UPDATE
echo
exit
elif test "$1" = skip ; then
echo "Skipping to scanout parsing stage."
SKIP=1
elif test "$1" = fake ; then
# for script testing and faking inputs, with $2 and $3 format VendorID:DeviceI
if test -z "$2" ; then
cat<<END
fake mode syntax is: ./scanModem fake PCIid PCIidSubsystem Distro KernelVersion GCC CPU"
with a minimum of: ./scanModem fake PCIid"
END
exit
fi
TST=1
PCIDEV="$2"
SUBSYS="$3"
ISSUER="$4"
SYS="$5"
GCC123="$6"
CPU="$7"
else
# Calculate revision age from SETDATE
UPDATE=$(echo $SETDATE | cut -b9-18)
echo UPDATE=$UPDATE
wk=$(echo $SETDATE| awk -F_ '{ print $4 }' | sed 's/0*//')
# echo wk=$wk
SETDATE=
WeekDiff=$(( $(echo $(date +%U) | sed 's/0*//') - $wk ))
if test "$WeekDiff" -ge 4 ; then
cat<<END
There are weekly updates of scanModem. Your copy is more than
$WeekDiff weeks old!!
If decisive guidance is not provided by this scanModem of $UPDATE,
download an update from http://linmodems.technion.ac.il
Continuing in 10 seconds.
END
sleep 10
else
cat<<END
Continuing as this update is only $WeekDiff weeks old,
but the current Update is always at: http://linmodems.technion.ac.il
END
sleep 2
fi
wk=
WeekDiff=
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
if test -z "$SYS" ; then
# SYS maybe provided by prior script
SYS=$(uname -r)
fi
KRPM=$(uname -r | 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')
# 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 may be inherited from an earlier script
BN=$(basename $0)
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
fi
if test -d Modem ; then
if test -z "$SKIP" ; then
/bin/rm -r Modem 2>/dev/null
else
rm Modem/ModemData.txt
fi
fi
mkdir -p Modem
RECORD=Modem/ModemData.txt
DOCs=Modem/DOCs
mkdir -p $DOCs
RECORD2=Modem/DOCs/YourSystem.txt
mkdir -p Modem/tmp
TMPM=Modem/tmp/0tmpfile
cat<<END>$RECORD2
This file should NOT be sent to Discuss@Linmodems.org
It has common guidance for modem usage after setup.
END
## A few environmental variables governing ouputs
DPKG=$(ls /usr/bin/dpkg /usr/sbin/dpkg 2>/dev/null)
# recognizes Debian like Systems
if test -z "$DPKG" ; then
# Debians may include RPM sector
RPM=$(ls /usr/bin/rpm /usr/sbin/rpm 2>/dev/null)
fi
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 -z "$SKIP"; then
# Skip to scanout analyses
if test -f /etc/issue ; then
if grep buntu /etc/issue >/dev/null ; then
# covering Kubuntu, Ebuntu ete
ISSUER=Ubuntu
# Ubuntu related distros using sudo rather than "su - root"
SUDO=sudo
elif grep SuSE /etc/issue >/dev/null ; then
# SuSE is not the first word in /etc/issue
ISSUER=SuSE
elif grep "Red Hat" /etc/issue >/dev/null ; then
# SuSE is not the first word in /etc/issue
ISSUER=redhat
elif grep edora /etc/issue >/dev/null ; then
# SuSE is not the first word in /etc/issue
ISSUER=fedora
elif grep .[fc:digit:]. /etc/issue >/dev/null ; then
# SuSE is not the first word in /etc/issue
ISSUER=fedora
else
ISSUE=$(cut -d'\' -f1 /etc/issue)
ISSUER=$(cut -d' ' -f1 /etc/issue | cut -d_ -f1 | cut -d- -f1)
fi
elif test -f /etc/slackware-version ; then
ISSUER=Slackware
else
ISSUER="Linux distro not identified"
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=
CPU=$(uname -m)
cat<<END>>$RECORD
Only plain text email is forwarded by the Discuss@Linmodems.org List Server,
as HTML can contain viruses. Use as the email Subject Line:
YourName, YourCountry $ISSUE kernel $(uname -r)
With this Subject Line cogent experts will be alerted, and useful case names left in the Archive.
YourCountry will enable Country specific guidance. Linux experts in YourCountry
can be found through: http://www.linux.org/groups/index.html.
They will know your Country's modem code, which may be essential for dialup service.
Responses from Discuss@Linmodems.org are sometimes blocked by an Internet Provider mail filters.
So in a day, also check the Archived responses at http://www.linmodems.org
-------------------------- System information ----------------------------
CPU=$CPU, $ISSUE
$(cat /proc/version)
scanModem update of: $UPDATE
$(cat $TMPM)
END
if grep -i slack /etc/issue >/dev/null ; then
echo "Mike Mohr <akihana@gmail.com> can provide assistance with Slackware related issues.">>$RECORD
echo >>$RECORD
fi
if test "$CPU" = x86_64 ; then
cat<<END>>$RECORD
Some modem drivers can only be used in 32 bit modem on x86_64 systems,
while some others are competent on x86_64 Systems. Cases are:
1) http://linmodems.technion.ac.il/bigarch/archive-seventh/msg03119.html
for the snd-hda-intel audio+modem driver. Also applicable to AC97 modem controllers.
In both cases, 32 bit libraries must be installed to support the slmodemd helper having a precompiled 32 bit component.
2) For USB modems using the slusb.ko driver. 32 bit libraries must be installed to support the slmodemd helper having a precompiled 32 bit component
3) The hsfmodem and hcfpcimodem drivers for Conexant chipsest modes are x86_64 competent.
END
fi
LSMOD=$(lsmod | grep Module)
if test -z "$LSMOD" ; then
echo "lsmod utility not found! Install the package modutils">>$RECORD
fi
# 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
## 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
if test -z "$GCC123" ; then
GCC123=$(for i in $GCC_INPUT ; do echo $i ; done | grep -A2 gcc | grep -A1 ersion | grep -v ersion)
fi
# 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)
GCC2=$(echo $GCC12 | cut -d. -f2)
# for later package name output
SLMODEMD=SLMODEMD.gcc$GCC12.tar.gz
# Check resident compiler
GCCtests=$(ls /usr/bin/gcc /usr/bin/gcc-?.? 2>/dev/null)
if test -z "$TST" -a -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
GCCtests=
BL1=$(grep -rs modem /etc/modprobe* | grep blacklist | grep -v "#" 2>/dev/null)
BL2=$(grep -rs snd-intel8x0m /etc/modprobe* | grep blacklist | grep -v "#" 2>/dev/null)
if test -z "$TST" -a -n "$BL1" -o "$BL2" ; then
cat<<END>>$RECORD
Modem drivers blocked from loading during bootup are listed in /etc/modprobe* file lines:
$BL1
$BL2
END
else
echo " There are no blacklisted modem drivers in /etc/modprobe* files ">>$RECORD
fi
BL1=
BL2=
# modem covers ALSA snd-*-modem drivers
cat<<END>$TMPM
modem
intel8x0m
hsf
hcf
slam
slusb
snd-hda-intel
agrmodem
agrserial
martian_dev
END
DLOADED=$(lsmod | grep -f $TMPM | cut -d' ' -f1 | grep -f $TMPM)
if test -z "$TST" -a -n "$LOADED" ; then
cat<<END>>$RECORD
Potentially useful modem drivers now loaded are:
$DLOADED
END
fi
DLOADED=
for i in $CMD_PATH
do
if test -x $i/lspci ; then
LSPCI=$i/lspci
fi
done
if test -z "$TST" -a -z "$LSPCI" ; then
cat<<END | tee -a $RECORD
WARNING: lspci not found - exiting
lspcidrake is not adequate for scanmodem
Please install the package: pciutils
END
exit 1
echo
fi
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/aplay ; then
APLAY=$i/aplay
fi
done
# Known High Definition Audio cards, possibly hosting soft modems
cat<<END>$TMPM.hda
10de:026a
10de:026c
10de:03f0
10de:0371
10de:055c
8086:2668
8086:27d8
8086:284b
8086:284d
8086:293e
10b9:5461
1106:3288
1002:4383
1002:437b
1002:aa08
1039:7502
END
if test -z "$TST" ; then
if ! test -d /proc/asound ; then
cat<<END>$TMPM.HDA
Packages needed for support of Advanced Linux Sound Architecture (ALSA) support should be installed: alsa-base and alsa-utilities!!
They are necessary for support of ALSA modem drivers, many Conexant chipset modems and success of modem diagnostics for modems requiring slmodemd actions.
END
else
cat<<END>>$TMPM.HDA
===== Advanced Linux Sound Architecture (ALSA) diagnostics =====
The ALSA packages provide audio support and also drivers for some modems.
ALSA diagnostics are written during bootup to /proc/asound/ folders.
END
ALSAver=$(cat /proc/asound/version | grep Version | cut -d' ' -f7 | cut -b1-6 )
ALSArel=$(echo $ALSAver | cut -d. -f3)
if test -n "$ALSArel" -a "$ALSArel" -ge 13 -a "$GCC12" = 4.0 ; then
SLMODEMD=SLMODEMD-1.0.13.tar.gz
fi
if test "$APLAY" ; then
SomeModem=$($APLAY -l | grep -i modem)
if test -z "$SomeModem" ; then
None=None
fi
cat<<END>>$TMPM.HDA
The ALSA verion is $ALSAver
The modem cards detected by "aplay -l" are: $None
$SomeModem
END
SomeModem=
None=
fi # APLAY
PCM=/proc/asound/pcm
if test -f $PCM ; then
PAC=/proc/asound/cards
cat<<END>>$TMPM.HDA
The $PCM file reports:
-----------------------
$(cat $PCM)
about $PAC:
------------------------
$(cat $PAC)
END
if grep Conexant $PCM >/dev/null ; then
HSF=1
fi
HDAbus=$($LSPCI -n | grep "0403: " | cut -d' ' -f1)
if test -n "$HDAbus" ; then
HDA=1
cat<<END>>$TMPM.HDA
PCI slot $HDAbus has a High Definition Audio Card
The drivers are in the kernel modules tree at:
$(find /lib/modules -name snd-hda-intel.ko)
END
if $LSPCI -n 2>/dev/null | grep $HDAbus | grep Class >/dev/null ; then
HDAdev=$($LSPCI -n 2>/dev/null | grep $HDAbus | cut -d' ' -f4)
else
HDAdev=$($LSPCI -n 2>/dev/null | grep $HDAbus | cut -d' ' -f3)
fi
HDAold=$(grep $HDAdev $TMPM.hda 2>/dev/null)
if test -z "$HDAold" ; then
cat<<END>>$TMPM.HDA
New HDA card type:
$($LSPCI-s $HDAbus 2>/dev/null)
$($LSPCI-s $HDAbus -n 2>/dev/null)
END
fi
## High Definition Audio card lines from /proc/asound/pcm
# 00-00 is the Audio card, the modem line is like:
# 00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1
# IDENT=
# Driver=snd-hda-intel
Si3054Files=$(grep -rsl Si3054 /proc/asound/card?/codec#[1-6] 2>/dev/null)
# Now identied in ALSA patch_si3054, the HDA soft modem chips
# 163c3055 163c3155 11c11040 11c13026 11c13055 11c13155
# 10573055 10573057 10573155 11063288 15433155 18540018
# 14f12bfa 14f12c06 are Conexant chips not in patch_si3054
if test -z "$Si3054Files" ; then
ODD="11c11040 14f12bfa 14f12c06"
for odd in $ODD
do
OddCase=$(grep -rsl $odd /proc/asound/card?/codec#[1-6] 2>/dev/null)
if test "$OddCase" ; then
Si3054Files=$OddCase
fi
done
ODD=
Oddcase=
fi
if test "$Si3054Files" ; then
for SF in $Si3054Files
do
cat<<END>>$TMPM.HDA
The modem codec file for the HDA card is: $SF
--------------------------------------------------------
$(cat $SF)
END
SoftChip=$(grep Vendor $SF | cut -dx -f2)
if test "$SoftChip" ; then
CHIP=0x$SoftChip
echo " The audio card hosts a softmodem chip: $CHIP">>$TMPM.HDA
# cat $TMPM.HDA
VendorID=$(echo $SoftChip | cut -b1-4)
# Guidance for particular chips:
if test "$SoftChip" = 14f12bfa -o "$SoftChip" = 14f12c06 ; then
IDENT=hsfmodem
Driver=hsfmodem-drivers
HSF=1
cat<<END>>$TMPM.HDA
14f1 is the Conexant Vendor ID, and $CHIP a softmodem chipset.
Get a hsfmodem package through http://www.linuxant.com
END
elif test "$SoftChip" = 11c11040 ; then
IDENT=11c11040
Driver=agrmodem+agrserial+patched_snd-hda-intel
elif test "$SoftChip" = 11c13026 -o "$SoftChip" = 11c13126 -o "$SoftChip" = 163c3055 -o "$SoftChip" = 163c3155 -o "$SoftChip" = 10573055 -o "$SoftChip" = 10573155 -o 15433155 ; then
IDENT=slmodemd
cat<<END>>$TMPM.HDA
The softmodem chip $CHIP is in principle supported by the COMM support of slmodemd
and the joint snd-hda-intel audio+modem driver, begun with ALSA version 1.0.13.
For HDA cards with ALC883 chips, an upgrade to ALSA verions 1.0.15 way be necessary. Instructions for Upgrading snd-hda-intel and its dependent driver set are at:
http://linmodems.technion.ac.il/bigarch/archive-eighth/msg00838.html
END
else
echo Future alternatives >/dev/null
fi # Chip guidance
fi # softchip
done # cf
if test -z "$IDENT" ; then
hsfMaybe=$(grep -rsl 14f1 /proc/asound/card?/codec#? 2>/dev/null)
if test "$hsfMaybe" ; then
cat<<END>>$TMPM.HDA
Though a Conexant modem chipset has not been directly detected,
the present of Vendor 14f1 Conexant audio chips, strongly suggests
that if no other modem is detected, than a Conexant modem chip is hosted
on the Subsystem of the High Definition Audio card.
END
fi
fi
Si3054Files=
fi # Si3054 files
if test "$ALSArel" -le 15 ; then
if grep STAC92xx $PCM >/dev/null ; then
cat<<END>> $TMPM.HDA
Modem support under STAC92xx audio card hosts may require upgrade
of snd-hda-intel + its dependent drivers to ALSA version 1.0.16.
The following modem only worked after the upgrade from to 1.0.16 from 1.0.14
PCI ID SubsystemID Name
--------- --------- --------------
8086:27d8 107b:0366 Audio device: Intel Corporation 82801G
with ALSA diagnostics
00-00: STAC92xx Analog : STAC92xx Analog : playback 1 : capture 2
00-06: Si3054 Modem : Si3054 Modem : playback 1 : capture 1
Codec: Motorola Si3054
for 107b:0366 hosted modem chip: 0x10573057
For a standard Ubuntu system needed to support the driver compilation were
END
fi
fi
fi # HDAbus
lineModem=$(grep -i modem $PCM)
#lineModem=something
#echo lineModem=$lineModem
if test "$lineModem" -o -n "$HDA" ; then
# there are a few cases, not mutually exclusive?
# An AC'97 modems, but having the 00-0[1-9] device descriptor
ALI5451=$(grep "ALI 5451 modem" $PCM | cut -d' ' -f1)
if test "$ALI5451" ; then
# 00-01: ALI 5451 modem : ALI 5451 modem : playback 1 : capture 1
# 00-00: ALI 5451 : ALI 5451 : playback 32 : capture 1
DRIVER_=snd_ali5451
Driver=snd-ali5451
SLMODEMD_DEVICE=hw:0,1
OPTS="-s "
IDENT=slmodemd
Driver=snd-ali5451
echo " Driver snd-ali5451 supports both audio and modem functions of the ALI5451 card.">>$TMPM.HDA
else
HDAmodem=$(grep -i Modem $PCM | grep "00-0[1-9]: " 2>/dev/null)
if test "$HDAmodem" ; then
Driver=snd-hda-intel
DRIVER=snd_hda_intel
# cases hw:0,1 and hw:0,6 thus far observed
cA=$(grep -i Modem $PCM | cut -b4)
cM=$(grep -i Modem $PCM | cut -b5)
SLMODEMD_DEVICE=hw:$cA,$cM
fi
fi # ALI5451 and HDA devices
if test "$Driver" ; then
cat<<END>>$TMPM.HDA
If not a Conexant modem, the driver $Driver with its dependent drivers:
$(lsmod | grep $DRIVER)
----------
provide audio + modem support with the modem chip residing on the subsystem.
Any particular card can host any one of several soft modem chips.
END
fi
## typical mc97 codec modem, proc/asound/pcm modem line
# 01-00: VIA 82XX modem : VIA 82XX modem : playback 1 : capture 1
# 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.
n97=$(grep -i Modem $PCM | grep "0[01]-00: "| cut -b2 2>/dev/null)
# n97=n97
# echo n97=$n97
if test "$n97" ; then
# Identify mc97 the driver
if grep VIA82XX-MODEM $PAC >/dev/null ; then
Driver=snd-via82xx-modem
DRIVER=snd_via82xx_modem
elif grep ATIXXP-MODEM $PAC >/dev/null ; then
DRIVER=snd_atiixp_modem
Driver=snd-atiixp-modem
elif grep ICH-MODEM $PAC >/dev/null ; then
DRIVER=snd_intel8x0m
Driver=snd-intel8x0m
else
echo Future cases >/dev/null
fi
# Read out the soft modem codec for AC'97 modems, if card activated.
REGISTERS=$(find /proc/asound -name 'mc97#[0-3]-[0-3]+regs')
# REGISTERS=$(find dl/ALSAmichael -name mc97#0-0+regs)
# echo REGISTERS=$REGISTERS
# This analysis may reveal a Conexant chip, for revealed in the prior section
# REGISTERS=$(find pkg/HDA/ALI5451/ -name 'mc97#[0-3]-[0-3]+regs')
if test -n "$REGISTERS" ; then
for REG in $REGISTERS
do
# echo REG=$REG
mc97=$(echo $REG | cut -d+ -f1)
# mc97=$mc97
mc97line=$(cat $mc97 | grep Extended)
if test "$mc97line" ; then
cat<<END>>$TMPM.HDA
Modem firmware information is in $mc97
-----------------------------------------------
$mc97line
END
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)
echo num=$num
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)
CodecDiagnosed=$B1$B2$B3$num
CodecClass=$B1$B2$B3
# echo CodecClass=$CodecClass
# echo CodecDiagnosed=$B1$B2$B3$num
B1=
B2=
B3=
num=
cat<<END>>$TMPM.HDA
Lines in: $REG
-------------------------------
$(grep 0:7c $REG) and $(grep 0:7e $REG)
are translated from hexadecimal code into the modem chip identifier: $CodecDiagnosed
END
if test "$CodecClass" = CXT ; then
IDENT=hsfmodem
HSF=1
elif grep -i Conexant $mc97 >/dev/null ; then
IDENT=hsfmodem
HSF=1
elif test -n "$CodecDiagnosed" ; then
IDENT=slmodemd
TYPE=ALSA
if test "$DRIVER" ; then
DRIVERDdone=1
cat<<END>>$TMPM.HDA
The driver $Driver with its dependent drivers:
$(lsmod | grep $DRIVER)
----------
provide modem + audio support.
END
fi
else
echo No decision>/dev/null
fi
if test "$HSF" ; then
echo " Support is provided only through hsfmodem drivers. Read DOCs/Conexant.txt">>$TMPM.HDA
fi
done
fi # REGISTERS
fi # n97 devices
fi # lineModem
fi # PCM
fi # proc/asound
PAC=
fi # TST
# MARV
if test "$DMESG" ; then
HSFboot=$($DMESG | grep HSF:)
if test -n "$HSFboot" ; then
cat<<END>>$RECORD
A Linuxant bootup diagnostic reported:
$($DMESG | grep HSF:)
END
fi
# if the slamr.ko driver is installed, take advantage of its diagnostic
SLAMR=$(find /lib/modules/ -mindepth 3 -maxdepth 5 -name slamr.* | grep $SYS)
if test -n "$SLAMR" ; then
$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/DOCs/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
slamrTest=$($DMESG | grep slamr | grep codec | cut -d' ' -f6)
echo slamrTest=$slamrTest>>$OP
if test -n "$slamTest" ; then
CodecClass=$(echo $slamrTest | cut -b 1-3)
echo CODslamr=$CodecClass>>$OP
echo " The slamr diagnostic reports a codec: $slamrTest" >>$RECORD
fi
fi
fi
# end SLAMR actions, not PCI ID dependent
PNP=$($DMESG | grep "IRQ XX")
if test -z "$TST" -a -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
fi # DMESG
for i in $CMD_PATH
do
if test -x $i/lsusb
then
LSUSB=$i/lsusb
fi
done
# https://atr2.ath.cx/~jayjwa/documents/LGVX8300-ACM-linux-dialup.txt
# 22b8:4902 Motorola PCS E398 GSM Phone
# 0409:011d NEC Corp. e228 Mobile Phone
# Bus 004 Device 004: ID 1004:1fae LG Electronics, Inc. U8120 3G Cellphone
if test -z "$TST" -a -n "$LSUSB" -a -x $LSUSB &>/dev/null ; then
USBdevs=$($LSUSB | grep -v 0000:0000 | cut -d' ' -f6 )
if test "$USBdevs" ; then
cat<<END>> $RECORD
Attached USB devices are:
$($LSUSB | grep -v 0000:0000 | cut -d: -f2-)
END
cat<<END>$TMPM
hsfmodem 0572:1300 0572:1301 0572:1302 0572:1303 08e3:0111 0803:1300 0803:1301 145f:0106 148d:1671 148d:1672
dgcmodem 0572:1320 0572:1321 0572:1322 0572:1323 0572:1324 0572:1328 0572:1329 0803:3095
agrsm 047e:2828 047e:2892
slusb 0483:7554
usbserial 0421:0428_6230i_Modem
hcfusbmodem 0572:1290 05AC:8202_apple
END
for usb in $USBdevs
do
USBdriver=$(grep $usb $TMPM | cut -d' ' -f1 2>/dev/null)
if test "$USBdriver" ; then
USBmodem=1
USBbus=$($LSUSB | grep $usb | cut -d' ' -f2)
NAME=$($LSUSB | grep $usb | cut -d' ' -f7-)
SLOT=$($LSUSB | grep $usb | cut -d' ' -f1-4)
cat<<END>>Modem/scanout.$USBbus
bus=$USBbus
SLOT="$SLOT"
NAME="$NAME"
USBmodemID=$usb
IDENT=$USBdriver
Driver=$USBdriver
END
fi
done
USBdevs=
fi
if test -z "$USBdriver" ; then
echo "USB modems not recognized">>$RECORD
echo >>$RECORD
fi
else
echo "Checking /proc/bus/usb/devices">>$RECORD
if test -f /proc/bus/usb/devices ; then
USBproc=$(grep -i modem /proc/bus/usb/devices)
if test "$USBproc" ; then
echo $USBproc >> $RECORD
USBproc=
else
echo " USB modem not detected among /proc/bus/usb/devices.">> $RECORD
fi
else
echo " /proc/bus/usb/devices file not present, barring USB modem query. ">> $RECORD
fi
echo >> $RECORD
fi
# echo USBid=0483:7554>Modem/scanout.004
# echo IDENT=slmodemd>>Modem/scanout.004
cat<<END>>/dev/null
Modem/scanout.004
USBid=0483:7554
IDENT=slmodemd
SLMODEMD_DEVICE=/dev/slusb0
Driver=slusb
DRIVER=slusb
END
LSUSB=
USBmodemID=
bus=
SLOT=
NAME=
USBdriver=
if test -z "$TST" ; then
echo
echo Identifying PCI bus slots with candidate modems.
BUS1=$($LSPCI -n 2>/dev/null | grep " 07..: " | grep -v "FIR Port" | grep -v arallel | grep -v SmartCard | grep -v HECI | cut -d' ' -f1)
#older 07xx: Modem family
BUS2=$($LSPCI -n 2>/dev/null | grep " 0403: " | cut -d' ' -f1)
# 0403: 8086:2668 Intel Corp. 82801FB/FBM/4/FW/FRW (ICH6 Family) High Definition Audio
BUS3=$($LSPCI -n 2>/dev/null | grep 5451 | cut -d' ' -f1)
# special ALI5451 sound modem case.
PCIBUS="$BUS1 $BUS2 $BUS3"
BUS1=
BUS2=
BUS3=
if test -z "$PCIBUS" ; then
cat<<END | tee -a $RECORD
A candidate modem card was not detected among the PCI bus devices:
-------------------------------------------------------------------
$($LSPCI | grep -v USB | grep -v ridge | grep -v RAM)
-------------------------------------------------------------------
with exclusion of USB, RAM and bridge devices.
If your modem is external,try detecting it with Admin/root command:
$ $SUDO wvdialconf /etc/wvdial.conf
END
fi
fi # TST
cat<<END>/dev/null
# this is the older filter used
Modem
modem
erial controller
ommunication controller
M5451
High Definition Audio
HDA
ATI Technologies Inc: Unknown device
END
class=`${LSPCI} -n | head -1 | cut -d' ' -f2`
if [ ${class} = "Class" ] ; then
fid=4
else
fid=3
fi
if test -z "$TST" -a "$PCIBUS" ; then
# Do a preliminary PCI ID readout, in case of a later script failure.
for buS in $PCIBUS
do
bus=$(echo $buS | sed -e 's/ //g')
# to remove leading space
echo "For candidate card in slot $bus, firmware information and bootup diagnostics are:">>$RECORD
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
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
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 "$DMESG" ; then
echo " --- Bootup diagnostics 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 DOCs/Bootup.txt about possible fixes.
Send dmesg.txt along with ModemData.txt to discuss@linmodems.org
if help is needed.
END
cat /proc/interrupts >Modem/dmesg.txt
echo >>Modem/dmesg.txt
$DMESG>>Modem/dmesg.txt
echo >>Modem/dmesg.txt
lsmod >>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 and try to garner some
understanding from it. Attach it to your query to discuss@linmodems.org
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:
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) Blacklist as many drivers as possible. See
http://linmodems.technion.ac.il/bigarch/archive-eighth/msg01593.html
6) Sometimes upgrading the kernel solves the problem.
7) Sometimes downgrading the kernel solves the problem.
Sometimes changing the Linux distribution solves the problem.
9) Get unloading.gz from http://linmodems.technion.ac.il/linmodems/
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
END
fi #Disabled
fi # DMESG
bus=
buS=
PCIDEV=
SUBSYS=
NAME=
DISABLED=
BLOCKED=
IRQ=
echo>> $RECORD
done # first round
fi # TST & BUS
if test -n "$TST" ; then
NAME=FakeName
if test -z "$SUBSYS" ; then
SUBSYS=some:thing
fi
PCIBUS=FakeBus
fi # TST
if test -n "$PCIBUS" ; then
echo Running PCIbus cases
# >/dev/null
for buS in $PCIBUS
do
bus=$(echo $buS | sed -e 's/ //g')
if test ! "$bus" = FakeBus ; then
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"
PCIDEV=$(echo $CLASS | cut -d' ' -f3)
# PCIDEV=134d:7891
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
IRQ=$($LSPCI -v 2>/dev/null | grep -A2 $bus | grep IRQ | cut -dQ -f2 | cut -d' ' -f2)
else
IRQ=fake
CLASS=FakeClass
NAME=FakeName
OP=Modem/scanout.fake
cat<<END
Substituted test inputs:
PCIDEV=$PCIDEV
SUBSYS=$SUBSYS
END
fi # FakeBus
if test "$PCIDEV" = 10b9:5451 -a "$KMAJOR" = 2.6 -a "$KRELEASE" -le 12 ; then
echo " Driver $Driver includes modem support beginning within 2.6.12 kernels.">>$RECORD
fi
# PCIDEV=for Faking
Vendor=$(echo $PCIDEV | cut -d: -f1)
Device=$(echo $PCIDEV | cut -d: -f2)
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
CLASS=$(echo $CLASS | cut -d' ' -f2 | cut -d: -f1)
cat<<END>>$OP
CLASS=$CLASS
NAME="$NAME"
PCIDEV=$PCIDEV
SUBSYS=$SUBSYS
IRQ=$IRQ
END
SOFT=
## Recognizing soft modems
if test -n "$PCIDEV" ; then
# are AC97 softmodem controllers
echo "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:27dd 8086:2a07 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:4378" >>$TMPM
if grep $PCIDEV $TMPM>/dev/null ; then
if test -z "$IDENT" ; then
IDENT=mc97
fi
SOFT=$PCIDEV.MC97
echo SOFT=$SOFT>>$OP
cat<<END>/dev/null
AC97 ARCHIVE
=========
In the Archive below, the first field is the mc97 codec for cards with a AC97/MC97 compatible register, read from the 0:7c and 0:7e fields and then translated.
Following are the SubSystem PCI IDs of cards with that codec,
which is grep filtered ppon. This field accepts comments diverse.
The HDA cards are first listed.
END
if test -f $TMPM.2 ; then
rm $TMPM.2>/dev/null
fi
if test "$PCIDEV" = 8086:2416 ; then
# 8086:2416 82801AA ICHAA
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 107b:0012
SIL21 109f:7140 5349:4c21
SIL22 14c0:0012 COMPAL Electronics Inc Smartlink
SIL26 152d:8801
SIL27 8086:2416_maybe
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:2446 ; then
# 8086:2446 82801BA ICH2
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 104d:80df 1025:1027, 104d:80e0 104d:8111 CXT21
SIL21 10cf:10d2 CitiCorp
SIL27 1179:0001 10cf:10d1
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 14f1:5421 104d:80e7 104d:8100
SIL27 1025:0020 , 1014:0223 1014:0503 IBM 1014:0227 103b:0757 Tatung Co ,10cf:10d1, 1179:0001 , 144d:2115 Samsung,
BCM64 14e4:4d64
SIL24 144f:1050
SIL21 134d:4c21 1043:1496
SIL22 14c0:0012 COMPAL Electronics Inc
END
elif test "$PCIDEV" = 8086:24c6 ; then
# 8086:24c6 82801DB ICH4 AC'97 Modem Controller, CXT & SIL27 mix??
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1014:0559_23 1025:0064 103c:3084 103c:30b2 103c:3080_30 1014:055a 104d:8129 104d:818c_23 104d:816a 104d:80fa 14f1:5422_22 161f:2030_23 1043:1826 107b:0360
SIL27 0e11:0860 1014:0227 1014:0544 1014:051e 1014:0524 1014:0525 1019:d553 1019:d551 1025:0035 1025:0038 1025:003c 1025:003d 1025:0051 1025:0061 1025:0071 1025:001f 103c:3089 103c:0890 1043:1716 1071:8051 1071:8089 107b:0200 10cf:10d1 1179:0001 144d:2115 152d:0706 152d:6601 161f:202d 1734:1033 1734:1079 17c0:1069 17c0:1089 1854:0005 1854:000a
AGR 107b:0405
SIL21 1071:8050 1071:8052 1071:8160 134d:4c21 1734:1055 4c21:5349
SIL22 14ff:1008 1584:4007 1584:400b 1631:d004 1734:102a 1734:106b
BCM64 14e4:4d64
SIL24 144f:1050 Askey Comp. with BroadCom,
MOT66 14ff:100f
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 104d:8129 1468:0601
BCM64 14e4:4d64
SIL22 1558:0800 1584:400b
END
elif test "$PCIDEV" = 8086:266d ; then
# SIL2f 1179:0001
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1014:0574 1014:0576 103c:3082 103c:3080 103c:30c4 1025:0066 1025:006a 1025:0081 107b:0610 1179:ff31 14f1:5423 14f1:5423 17aa:207c 152d:0745_probably_Conexant
SIL22 1584:400c
SIL27 1509:3670 17c0:10bb 103c:3081 103c:099c 27/2f 103c:309d 103c:0944 , 10cf:10d1 14c0:0012 1025:005e 144d:2115 103c:309d 144d:2116
SIL2f 1025:007a 1179_0001_also_SIL27
AGR02 1991:2901
END
elif test "$PCIDEV" = 8086:2a07 ; then
# Serial controller: Intel Corporation Mobile PM965/GM965 KT Controller
cat<<END | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 103c:30c3
END
elif test "$PCIDEV" = 8086:7196 ; then
# 8086:7196 82440 Banister ICH1
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
SIL27 10cf:10d1 1014:01a2
EOF
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 1025:0082_23 161f:2038_23 , 1043:1816 CXT22 1558:4201 1043:1816
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 1734:106c 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 1071:8575 1043:10c3 156d:b900 1043:1696 13e0:0270 1043:1457 1071:7522 1019:b732 1849:7013
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:00d9 Nvidia Corp
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 1043:1856 Asustek
SIL27 103c:006d HP , 1025:0059 Acer
EOF
## Continue PCI ID deposit
elif test "$PCIDEV" = 1106:3068 ; then
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 1071:8965 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 1106:4161
SML 1631:3054 26 ,
MOT66 1734:109b is a "custom" AgereSystems codec
INT65 17c0:109d
AGR02_possibly none
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" = 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 10cf:10ff 10cf:1177
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" = 1025:5453 ; then
# 1025:5453 ALI 5453
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
none
EOF
elif test "$PCIDEV" = 1025:5457 ; then
# 10b9:5457 ALI 5457
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
SIL27 10cf:1130
EOF
elif test "$PCIDEV" = 10b9:5457 ; then
# 10b9:5457 ALI 5457
cat<<EOF | grep $SUBSYS | cut -d' ' -f1 >$TMPM.2
CXT 103c:002a 103c:0024 103c:0029 103c:0850 161f:2027 152d:0705 104d:8175
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