ltq-xdsl-app: start after led script
[openwrt/openwrt.git] / package / network / config / ltq-adsl-app / files / dsl_control
index e48b72b059437d5e0f08406dc74c56d9fa541d74..91fcb46beb82ae3d9cc196534f82420f0e3c7036 100644 (file)
@@ -1,33 +1,36 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2012 OpenWrt.org
 
-START=99
+START=97
+USE_PROCD=1
 
 EXTRA_COMMANDS="status lucistat"
 EXTRA_HELP="   status  Get DSL status information
        lucistat  Get status information if lua friendly format"
 
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-
-. /lib/functions/lantiq_dsl.sh
+[ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh
 
 annex_b=10_00_10_00_00_04_00_00
 annex_bdmt=10_00_00_00_00_00_00_00
 annex_b2=00_00_10_00_00_00_00_00
 annex_b2p=00_00_00_00_00_04_00_00
-annex_a=04_01_04_00_00_01_00_00
+annex_a=05_01_04_00_4C_01_04_00
 annex_at1=01_00_00_00_00_00_00_00
 annex_alite=00_01_00_00_00_00_00_00
 annex_admt=04_00_00_00_00_00_00_00
 annex_a2=00_00_04_00_00_00_00_00
 annex_a2p=00_00_00_00_00_01_00_00
-annex_l=00_00_00_00_04_00_00_00
+annex_l=00_00_00_00_0C_00_00_00
 annex_m=00_00_00_00_40_00_04_00
 annex_m2=00_00_00_00_40_00_00_00
 annex_m2p=00_00_00_00_00_00_04_00
+annex_j=10_00_10_40_00_04_01_00
+
+service_triggers() {
+       procd_add_reload_trigger network
+}
 
-start() {
+start_service() {
        local annex
        local firmware
        local xtu
@@ -38,14 +41,21 @@ start() {
        eval "xtu=\"\${annex_$annex}\""
 
        [ -z "${firmware}" ] &&
-               firmware=adsl.bin
+               firmware=/lib/firmware/adsl.bin
+       [ -f "${firmware}" ] || {
+               echo failed to find $firmware
+               return 1
+       }
 
-       service_start /sbin/dsl_cpe_control -i${xtu} \
+       procd_open_instance
+       procd_set_param command /sbin/dsl_cpe_control \
+                       -i${xtu} \
                        -n /sbin/dsl_notify.sh \
-                       -f /lib/firmware/${firmware}
+                       -f ${firmware}
+       procd_close_instance
 }
 
-stop() {
+stop_service() {
        DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
        DSL_INTERFACE_STATUS="DOWN" \
                /sbin/dsl_notify.sh