|
|
@@ -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
|