2024-10-09 11:51:26 +08:00

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
}