X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=package%2Fnetwork%2Fconfig%2Fltq-vdsl-app%2Ffiles%2Fdsl_control;h=9ff041d80482a0b5babb72d9567563750486ce63;hb=57ccd6c9e74261a6ed4fc3f8a0e3648d824dc6fe;hp=81db4d2641bc89b1e10b483477ac68163f096c6a;hpb=8bfe9acecfee7742974d0731ea471381323b53ab;p=librecmc%2Flibrecmc.git diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control b/package/network/config/ltq-vdsl-app/files/dsl_control index 81db4d2641..9ff041d804 100644 --- a/package/network/config/ltq-vdsl-app/files/dsl_control +++ b/package/network/config/ltq-vdsl-app/files/dsl_control @@ -1,17 +1,15 @@ #!/bin/sh /etc/rc.common # Copyright (C) 2012 OpenWrt.org -START=99 +# needs to start before the atm layer which starts at 50 +START=48 +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 -XDSL_CTRL=vdsl_cpe_control +[ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh # G.992.1 Annex A # G.992.2 Annex A @@ -37,150 +35,62 @@ xtse_adsl_j="10 00 10 40 00 04 01 00" xtse_vdsl="00 00 00 00 00 00 00 07" -xdsl_scr() { - val=`echo $2 | sed "s/ / 0x/g"` - echo "[WaitForConfiguration]={ -#G997XTUSEC_g997xtusecs 0x$val -} - -[WaitForLinkActivate]={ -} - -[WaitForRestart]={ -} - -[Common]={ -}" > /tmp/$1.scr +service_triggers() { + procd_add_reload_trigger network } -# A43 -tone_adsl_a="0x142" -tone_vdsl_a="0x142" - -# A43 + V43 -tone_adsl_av="0x142" -tone_vdsl_av="0x146" - -# B43 -tone_adsl_b="0x1" -tone_vdsl_b="0x1" - -# B43 + V43 -tone_adsl_bv="0x1" -tone_vdsl_bv="0x5" - -lowlevel_cfg() { - echo "# VRX Low Level Configuration File -# -# Parameters must be separated by tabs or spaces. -# Empty lines and comments will be ignored. -# - -# nFilter -# -# NA = -1 -# OFF = 0 -# ISDN = 1 -# POTS = 2 -# POTS_2 = 3 -# POTS_3 = 4 -# -# (dec) - -1 - -# nHsToneGroupMode nHsToneGroup_A nHsToneGroup_V nHsToneGroup_AV -# -# NA = -1 NA = -1 see see -# AUTO = 0 VDSL2_B43 = 0x0001 nHsToneGroup_A nHsToneGroup_A -# MANUAL = 1 VDSL2_A43 = 0x0002 -# VDSL2_V43 = 0x0004 -# VDSL1_V43P = 0x0008 -# VDSL1_V43I = 0x0010 -# ADSL1_C43 = 0x0020 -# ADSL2_J43 = 0x0040 -# ADSL2_B43C = 0x0080 -# ADSL2_A43C = 0x0100 -# -# (dec) (hex) (hex) (hex) - 1 $1 $2 0x0 - -# nBaseAddr nIrqNum -# -# (hex) (dec) - 0x1e116000 63 - -# nUtopiaPhyAdr nUtopiaBusWidth nPosPhyParity -# default(16b) = 0 NA = -1 -# 8-bit = 1 ODD = 0 -# 16-bit = 2 -# -# -# (hex) (dec) (dec) - 0xFF 0 0 - -# bNtrEnable -# -# (dec) - 0" > /tmp/lowlevel.cfg -} - -start() { +start_service() { local annex local firmware - local tone - local tone_adsl - local tone_vdsl + local xtse local xtse_adsl local mode config_load network - config_get tone wan tone - config_get annex wan annex - config_get firmware wan firmware - config_get xfer_mode wan xfer_mode + config_get annex dsl annex + config_get firmware dsl firmware + config_get xfer_mode dsl xfer_mode [ -z "${xfer_mode}" ] && xfer_mode=ptm case "${xfer_mode}" in atm) - insmod ltq_atm_vr9 + LOAD=ltq_atm_vr9 + UNLOAD=ltq_ptm_vr9 mode=1 ;; *) - insmod ltq_ptm_vr9 + LOAD=ltq_ptm_vr9 + UNLOAD=ltq_atm_vr9 mode=2 ;; esac eval "xtse_adsl=\"\${xtse_adsl_$annex}\"" - [ -z "${xtse_adsl}" ] && xtse_adsl=$xtse_adsl_b - - eval "tone_adsl=\"\${tone_adsl_$tone}\"" - [ -z "${tone_adsl}" ] && tone_adsl=$tone_adsl_av - - eval "tone_vdsl=\"\${tone_vdsl_$tone}\"" - [ -z "${tone_vdsl}" ] && tone_vdsl=$tone_vdsl_av - - [ -z "${firmware}" ] && firmware=vdsl.bin - - xdsl_scr adsl "${xtse_adsl}" - xdsl_scr vdsl "${xtse_vdsl}" - lowlevel_cfg "${tone_adsl}" "${tone_vdsl}" - - service_start /sbin/vdsl_cpe_control \ - -i `echo $xtse_adsl | sed "s/ /_/g"` \ + if [ "${xtse_adsl}" ]; then + xtse=$xtse_adsl + else + xtse=$xtse_vdsl + fi + + [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin + [ -f "${firmware}" ] || { + echo failed to find $firmware + return 1 + } + + procd_open_instance + procd_set_param command /sbin/vdsl_cpe_control_wrapper \ + -i`echo $xtse | sed "s/ /_/g"` \ -n /sbin/dsl_notify.sh \ - -f /lib/firmware/${firmware} \ - -a /tmp/adsl.scr \ - -A /tmp/vdsl.scr \ - -l /tmp/lowlevel.cfg \ + -f ${firmware} \ -M ${mode} + procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD" + procd_close_instance } -stop() { +stop_service() { DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \ DSL_INTERFACE_STATUS="DOWN" \ /sbin/dsl_notify.sh - - service_stop /sbin/vdsl_cpe_control }