Revision: 6321
http://ipcop.svn.sourceforge.net/ipcop/?rev=6321&view=rev
Author: owes
Date: 2012-02-05 18:13:39 +0000 (Sun, 05 Feb 2012)
Log Message:
-----------
Proper device detection
Modified Paths:
--------------
ipcop/trunk/src/rc.d/rc.fritzdsl
Modified: ipcop/trunk/src/rc.d/rc.fritzdsl
===================================================================
--- ipcop/trunk/src/rc.d/rc.fritzdsl 2012-02-05 17:32:05 UTC (rev 6320)
+++ ipcop/trunk/src/rc.d/rc.fritzdsl 2012-02-05 18:13:39 UTC (rev 6321)
@@ -34,42 +34,72 @@
}
-# TODO: find device IDs, /proc/pci is gone
+# Borrowed from Gentoo ebuild, detect fcdsl card
+# should work with 'Card DSL', 'Card DSL v2.0', 'Card DSL SL', 'Card DSL USB',
'Card DSL SL USB', etc.
+FCDSL_MODULES=("fcdsl" "fcdsl2" "fcdslsl" "fcdslusb" "fcdslslusb" "fcdslusba"
"fcdslusb2")
+FCDSL_NAMES=("AVM FRITZ!Card DSL" "AVM FRITZ!Card DSL v2.0"
+ "AVM FRITZ!Card DSL SL" "AVM FRITZ!Card DSL USB" "AVM FRITZ!Card DSL SL
USB"
+ "AVM Fritz!Card DSL USB analog" "AVM Fritz!Card DSL USB v2.0")
+FCDSL_BUSTYPES=("pci" "pci" "pci" "usb" "usb" "usb" "usb")
+FCDSL_IDS=("1131:5402" "1244:2900" "1244:2700" "057c:2300" "057c:3500"
"057c:3000" "057c:3600")
-
-# ID borrowed from Gentoo ebuild,
-# should work with 'Card DSL','Card DSL v2.0', 'Card DSL SL', 'Card DSL
USB','Card DSL SL USB'
-# pcmcia card not compiled
-if ( /bin/grep "1244:2700" -q /proc/pci ); then
- FCDSLMODEM='sl'
-elif ( /bin/grep "1244:2900" -q /proc/pci ); then
- FCDSLMODEM='2'
-elif ( /bin/grep "1131:5402" -q /proc/pci ); then
- FCDSLMODEM=''
-elif ( /bin/grep "Vendor=057c ProdID=2300" -q /proc/bus/usb/devices ); then
- FCDSLMODEM='usb'
-elif ( /bin/grep "Vendor=057c ProdID=3500" -q /proc/bus/usb/devices ); then
- FCDSLMODEM='slusb'
-else
- FCDSLMODEM='none'
+PCI_IDS=""
+USB_IDS=""
+if [ -d /sys/bus ]; then
+ if [ -d /sys/bus/pci/devices ]; then
+ cd /sys/bus/pci/devices
+ for PCI_DEVICE in *; do
+ vendor="$(< ${PCI_DEVICE}/vendor)"
+ device="$(< ${PCI_DEVICE}/device)"
+ PCI_IDS="${PCI_IDS}${vendor:2}:${device:2} "
+ done
+ fi
+# We do not currently support fcdsl USB!
+# if [ -d /sys/bus/usb/devices ]; then
+# cd /sys/bus/usb/devices
+# for USB_DEVICE in [0-9]*; do
+# if [ -f ${USB_DEVICE}/idVendor ]; then
+# USB_IDS="${USB_IDS}$(< ${USB_DEVICE}/idVendor):$(<
${USB_DEVICE}/idProduct) "
+# fi
+# done
+# fi
fi
+FCDSL_MODULE=""
+for ((CARD=0; CARD < ${#FCDSL_IDS[*]}; CARD++)); do
+ BUS_IDS=""
+ if [ "${FCDSL_BUSTYPES[CARD]}" == "pci" ]; then
+ BUS_IDS="${PCI_IDS}"
+ else
+ BUS_IDS="${USB_IDS}"
+ fi
+ for BUS_ID in ${BUS_IDS}; do
+ if [ "${BUS_ID}" == "${FCDSL_IDS[CARD]}" ]; then
+ FCDSL_FIRMWARE=${FCDSL_FIRMWARES[CARD]}
+ FCDSL_MODULE=${FCDSL_MODULES[CARD]}
+ msg "Found: ${FCDSL_NAMES[CARD]}, uses module: ${FCDSL_MODULE}"
+ fi
+ done
+done
+
+
# See how we were called.
case "$1" in
start)
+ # TODO: really exit if already loaded? Maybe reload?
if ( /bin/grep -q "fcdsl" /proc/modules >/dev/null ); then
exit 0;
fi
- if [ "$FCDSLMODEM" = 'none' ]; then
- msg "No supported modem found"
+ if [ "${FCDSL_MODULE}" == "" ]; then
+ msg "No AVM FRITZ!Card DSL found!"
exit 1
fi
- if [ ! -f "/lib/modules/`/bin/uname -r`/extra/fcdsl$FCDSLMODEM.ko.gz" ];
then
+ if [ ! -f "/lib/modules/`/bin/uname -r`/extra/${FCDSL_MODULE}.ko.gz" ];
then
msg "Driver not uploaded"
exit 1
else
# should use drdsl and drdsl.ini for parameters autoconfiguration or
use pppsetup.cgi?
- /usr/sbin/capiinit -c "/etc/fcdsl/fcdsl$FCDSLMODEM.conf" start
+ /usr/sbin/capiinit -c "/etc/fcdsl/${FCDSL_MODULE}.conf" start
fi
;;
stop)
@@ -77,14 +107,8 @@
;;
cleanup)
msg "driver cleanup"
- if [ "$FCDSLMODEM" = 'none' ]; then
- FCDSLMODEM=''
- fi
/sbin/modprobe -r fcdslusb fcdslslusb
- /usr/sbin/capiinit -c "/etc/fcdsl/fcdsl$FCDSLMODEM.conf" stop
- if [ "$FCDSLMODEM" = 'slusb' -o "$FCDSLMODEM" = 'usb' ]; then
- /usr/local/bin/resetusb
- fi
+ /usr/sbin/capiinit -c "/etc/fcdsl/${FCDSL_MODULE}.conf" stop
;;
*)
/bin/echo "Usage: $0 {start|stop|cleanup}"
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn