diff options
Diffstat (limited to 'target/linux')
-rwxr-xr-x | target/linux/ar71xx/base-files/lib/ar71xx.sh | 55 |
1 files changed, 54 insertions, 1 deletions
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index ca0799d1bf..fa730107fa 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -50,7 +50,6 @@ wndr3700_board_detect() { tplink_get_hwid() { local part - local hwid part=$(find_mtd_part firmware) [ -z "$part" ] && return 1 @@ -58,6 +57,54 @@ tplink_get_hwid() { dd if=$part bs=4 count=1 skip=16 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"' } +tplink_board_detect() { + local model="$1" + local hwid + local hwver + + hwid=$(tplink_get_hwid) + hwver=${hwid:6:2} + hwver="v${hwver#0}" + + case "$hwid" in + "070300"*) + model="TP-Link TL-WR703N" + ;; + "074000"*) + model="TP-Link TL-WR740N/ND" + ;; + "074100"*) + model="TP-Link TL-WR741N/ND" + ;; + "074300"*) + model="TP-Link TL-WR743N/ND" + ;; + "084100"*) + model="TP-Link TL-WR841N/ND" + ;; + "090100"*) + model="TP-Link TL-WA901N/ND" + ;; + "094100"*) + model="TP-Link TL-WR941N/ND" + ;; + "104300"*) + model="TP-Link TL-WR1043N/ND" + ;; + "322000"*) + model="TP-Link TL-MR3220" + ;; + "342000"*) + model="TP-Link TL-MR3420" + ;; + *) + hwver="" + ;; + esac + + AR71XX_MODEL="$model $hwver" +} + ar71xx_board_detect() { local machine local name @@ -253,6 +300,12 @@ ar71xx_board_detect() { ;; esac + case "$machine" in + *TL-WR* | *TL-WA* | *TL-MR*) + tplink_board_detect "$machine" + ;; + esac + [ -z "$name" ] && name="unknown" [ -z "$AR71XX_BOARD_NAME" ] && AR71XX_BOARD_NAME="$name" |