#!/bin/bash # # $Id: rc.conexantpciadsl,v 1.1.2.11 2005/07/07 20:11:58 franck78 Exp $ # # Debugging. Comment it out to stop logging DEBUG="yes" msg() { if [ "z$DEBUG" != "z" ] ; then /usr/bin/logger -t red "CnxPCI ADSL: $*" fi /bin/echo "$*" } function wait_for_showtime() { msg "waiting for sync" count=0 while [ ! $count = 45 ]; do /bin/sleep 2 if ( /usr/sbin/cnxadslstatus | /bin/grep -q -F 'Showtime.' ); then msg "sync done" return 0 fi ((++count)) done return 1 } # See how we were called. case "$1" in start) msg "starting" # if the driver is not already loaded then if ( /sbin/lsmod | /bin/grep -q CnxADSL ); then msg "already loaded" else if ( ! /bin/cat /proc/pci | /bin/grep -q '14f1' ); then msg "no conexant modem" exit 1 fi /sbin/modprobe CnxADSL RETVAL=$? if [ $RETVAL -ne 0 ] ; then msg "error when loading, card present?" fi if ( /bin/cat /proc/pci | /bin/grep -q '14f1:1611' ); then # Tigris model /bin/ln -f -s /etc/Conexant/CnxTgF.hex CONFIG_ROOT/cnx_pci/firmware.hex else if ( /bin/cat /proc/pci | /bin/grep -q '14f1:1622' ); then # Yukon model /bin/ln -f -s /etc/Conexant/CnxYkF.hex CONFIG_ROOT/cnx_pci/firmware.hex else msg "don't know this model" exit 1 fi fi # Initialize the firmware and start training /bin/ln -f -s /etc/Conexant/cnxadsl.conf CONFIG_ROOT/cnx_pci/cnxadsl.conf /etc/Conexant/cnxadslload CONFIG_ROOT/cnx_pci fi wait_for_showtime exit $? ;; stop) msg "stop" ;; cleanup) msg "cleanup" /bin/killall cnxadslload 2>/dev/null /sbin/modprobe -r CnxADSL ;; *) echo "Usage: $0 {start|stop|cleanup}" exit 1 ;; esac exit 0