diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-03-07 11:03:13 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2016-03-07 11:03:13 +0000 |
commit | a937e160c8f7d8ac11f615c1d0cd5eea1c049247 (patch) | |
tree | 8b43610a8209a071c3ff2802436f0aeeb40be016 /package/network/config/ltq-vdsl-app/files | |
parent | 8b41bb6648447dfcde7a26430769dd85005121fd (diff) | |
download | upstream-a937e160c8f7d8ac11f615c1d0cd5eea1c049247.tar.gz upstream-a937e160c8f7d8ac11f615c1d0cd5eea1c049247.tar.bz2 upstream-a937e160c8f7d8ac11f615c1d0cd5eea1c049247.zip |
ltq-vdsl-app: load the vrx200 firmware or patch it
This checks for the VRX firmware provided in the OpenWrt package.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
SVN-Revision: 48940
Diffstat (limited to 'package/network/config/ltq-vdsl-app/files')
-rw-r--r-- | package/network/config/ltq-vdsl-app/files/dsl_control | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/package/network/config/ltq-vdsl-app/files/dsl_control b/package/network/config/ltq-vdsl-app/files/dsl_control index fc100cfb0e..c4c3c0d601 100644 --- a/package/network/config/ltq-vdsl-app/files/dsl_control +++ b/package/network/config/ltq-vdsl-app/files/dsl_control @@ -153,6 +153,48 @@ start_service() { ;; esac + if [ -z "${firmware}" ]; then + # search for the firmware provided by dsl-vrx200-firmware-xdsl-* + if grep -qE "system type.*: (VR9|xRX200)" /proc/cpuinfo; then + case "${annex}" in + a|l|m) + if [ -f "/lib/firmware/lantiq-vrx200-a.bin" ]; then + firmware="/lib/firmware/lantiq-vrx200-a.bin" + elif [ -f "/tmp/lantiq-vrx200-a.bin" ]; then + firmware="/tmp/lantiq-vrx200-a.bin" + elif [ -f "/lib/firmware/lantiq-vrx200-b.bin" ] && [ -f "/lib/firmware/lantiq-vrx200-b-to-a.bspatch" ]; then + bspatch /lib/firmware/lantiq-vrx200-b.bin \ + /tmp/lantiq-vrx200-a.bin \ + /lib/firmware/lantiq-vrx200-b-to-a.bspatch + firmware="/tmp/lantiq-vrx200-a.bin" + else + echo "firmware for annex a not found" + return 1 + fi + ;; + b|j) + if [ -f "/lib/firmware/lantiq-vrx200-b.bin" ]; then + firmware="/lib/firmware/lantiq-vrx200-b.bin" + elif [ -f "/tmp/lantiq-vrx200-b.bin" ]; then + firmware="/tmp/lantiq-vrx200-b.bin" + elif [ -f "/lib/firmware/lantiq-vrx200-a.bin" ] && [ -f "/lib/firmware/lantiq-vrx200-a-to-b.bspatch" ]; then + bspatch /lib/firmware/lantiq-vrx200-a.bin \ + /tmp/lantiq-vrx200-b.bin \ + /lib/firmware/lantiq-vrx200-a-to-b.bspatch + firmware="/tmp/lantiq-vrx200-b.bin" + else + echo "firmware for annex b not found" + return 1 + fi + ;; + *) + echo "annex type not supported use a or b" + return 1 + ;; + esac + fi + fi + [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin [ -f "${firmware}" ] || { echo failed to find $firmware |