55 lines
1.2 KiB
Bash
Executable File
55 lines
1.2 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
START=80
|
|
STOP=30
|
|
USE_PROCD=1
|
|
|
|
. /lib/functions.sh
|
|
|
|
start_service() {
|
|
|
|
config_load qmodem
|
|
config_foreach mk_rundir modem-device
|
|
config_get manual_configuration global manual_configuration
|
|
[ "$manual_configuration" -eq 1 ] && return
|
|
logger -t modem_init "modem init"
|
|
config_foreach try_modem_device modem-device
|
|
config_foreach try_modem modem-slot
|
|
}
|
|
|
|
mk_rundir()
|
|
{
|
|
modem_cfg="$1"
|
|
mkdir -p "/var/run/modem/${modem_cfg}_dir"
|
|
}
|
|
|
|
try_modem()
|
|
{
|
|
config_get slot "$1" slot
|
|
config_get type "$1" type
|
|
case "$type" in
|
|
usb)
|
|
path="/sys/bus/usb/devices/${slot}"
|
|
;;
|
|
pcie)
|
|
path="/sys/bus/pci/devices/${slot}"
|
|
;;
|
|
esac
|
|
|
|
if [ -d "$path" ]; then
|
|
logger -t modem_init "try modem $1"
|
|
procd_open_instance "try_$1"
|
|
procd_set_param command "ash" "/usr/share/modem/modem_scan.sh" "add" "$slot" "$type"
|
|
procd_close_instance
|
|
else
|
|
/usr/share/modem/modem_scan.sh disable "$slot"
|
|
fi
|
|
}
|
|
|
|
try_modem_device()
|
|
{
|
|
config_get path "$1" path
|
|
if [ ! -d "$path" ]; then
|
|
/usr/share/modem/modem_scan.sh disable "$1"
|
|
fi
|
|
}
|