#!/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 }