X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fopenwrt.git;a=blobdiff_plain;f=target%2Flinux%2Far71xx%2Fbase-files%2Flib%2Far71xx.sh;h=ad98cfbae67c98dfaf21beecf88514d76e6181f5;hp=a80225881768f10df95610e5c63f3385809726f5;hb=f9278337cf4b9c699a41dfc1e4c448213be53e61;hpb=47ab1cbf23aef658f46bd86af88edb4e3f665639 diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh index a802258817..ae0189d05b 100755 --- a/target/linux/ar71xx/base-files/lib/ar71xx.sh +++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh @@ -37,22 +37,67 @@ wndr3700_board_detect() { machine="NETGEAR WNDR3700" ;; "33373031") - local model - model=$(ar71xx_get_mtd_offset_size_format art 56 10 %c) - if [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' ]; then - machine="NETGEAR WNDR3700v2" - elif [ -z "$model" ] || [ "$model" = $'\xff\xff\xff\xff\xff\xff\xff\xff\xffN' ]; then - machine="NETGEAR WNDRMAC" - else - machine="NETGEAR $model" - fi - ;; + model="$(ar71xx_get_mtd_offset_size_format art 41 32 %c)" + # Use awk to remove everything unprintable + model_stripped="$(ar71xx_get_mtd_offset_size_format art 41 32 %c | LC_CTYPE=C awk -v 'FS=[^[:print:]]' '{print $1; exit}')" + case $model in + $'\xff'*) + if [ "${model:24:1}" = 'N' ]; then + machine="NETGEAR WNDRMAC" + else + machine="NETGEAR WNDR3700v2" + fi + ;; + '29763654+16+64'*) + machine="NETGEAR ${model_stripped:14}" + ;; + '29763654+16+128'*) + machine="NETGEAR ${model_stripped:15}" + ;; + *) + # Unknown ID + machine="NETGEAR ${model_stripped}" + esac esac AR71XX_BOARD_NAME="$name" AR71XX_MODEL="$machine" } +ubnt_get_mtd_part_magic() { + ar71xx_get_mtd_offset_size_format EEPROM 4118 2 %02x +} + +ubnt_xm_board_detect() { + local model + local magic + + magic="$(ubnt_get_mtd_part_magic)" + case ${magic:0:3} in + "e00"|\ + "e01"|\ + "e80") + model="Ubiquiti NanoStation M" + ;; + "e0a") + model="Ubiquiti NanoStation loco M" + ;; + "e1b"|\ + "e1d") + model="Ubiquiti Rocket M" + ;; + "e20"|\ + "e2d") + model="Ubiquiti Bullet M" + ;; + "e30") + model="Ubiquiti PicoStation M" + ;; + esac + + [ -z "$model" ] || AR71XX_MODEL="${model}${magic:3:1}" +} + cybertan_get_hw_magic() { local part @@ -62,6 +107,15 @@ cybertan_get_hw_magic() { dd bs=8 count=1 skip=0 if=$part 2>/dev/null | hexdump -v -n 8 -e '1/1 "%02x"' } +dir505_board_detect() { + local dev=$(find_mtd_part 'mac') + [ -z "$dev" ] && return + + # The revision is stored at the beginning of the "mac" partition + local rev="$(LC_CTYPE=C awk -v 'FS=[^[:print:]]' '{print $1; exit}' $dev)" + AR71XX_MODEL="D-Link DIR-505 rev. $rev" +} + tplink_get_hwid() { local part @@ -88,7 +142,7 @@ tplink_board_detect() { hwid=$(tplink_get_hwid) mid=$(tplink_get_mid) hwver=${hwid:6:2} - hwver="v${hwver#0}" + hwver=" v${hwver#0}" case "$hwid" in "015000"*) @@ -97,14 +151,42 @@ tplink_board_detect() { "015300"*) model="EasyLink EL-MINI" ;; + "044401"*) + model="ANTMINER-S1" + ;; + "044403"*) + model="ANTMINER-S3" + ;; + "44440101"*) + model="ANTROUTER-R1" + ;; + "120000"*) + model="MERCURY MAC1200R" + ;; + "007260"*) + model="TellStick ZNet Lite" + ;; + "066601"*) + model="OMYlink OMY-G1" + ;; + "066602"*) + model="OMYlink OMY-X1" + ;; "3C0001"*) model="OOLITE" ;; - "070300"*) + "3C0002"*) + model="MINIBOX_V1" + ;; + "070301"*) model="TP-Link TL-WR703N" ;; "071000"*) model="TP-Link TL-WR710N" + + if [ "$hwid" = '07100002' -a "$mid" = '00000002' ]; then + hwver=' v2.1' + fi ;; "072001"*) model="TP-Link TL-WR720N" @@ -127,21 +209,42 @@ tplink_board_detect() { "075000"*) model="TP-Link TL-WA750RE" ;; + "721000"*) + model="TP-Link TL-WA7210N" + ;; "751000"*) model="TP-Link TL-WA7510N" ;; "080100"*) model="TP-Link TL-WA801N/ND" ;; + "080200"*) + model="TP-Link TL-WR802N" + + if [ "$hwid" = '08020002' -a "$mid" = '00000002' ]; then + hwver=' v2' + fi + ;; "083000"*) model="TP-Link TL-WA830RE" + + if [ "$hwver" = ' v10' ]; then + hwver=' v1' + fi ;; "084100"*) model="TP-Link TL-WR841N/ND" + + if [ "$hwid" = '08410002' -a "$mid" = '00000002' ]; then + hwver=' v1.5' + fi ;; "084200"*) model="TP-Link TL-WR842N/ND" ;; + "084300"*) + model="TP-Link TL-WR843N/ND" + ;; "085000"*) model="TP-Link TL-WA850RE" ;; @@ -151,6 +254,9 @@ tplink_board_detect() { "090100"*) model="TP-Link TL-WA901N/ND" ;; + "094000"*) + model="TP-Link TL-WR940N" + ;; "094100"*) if [ "$hwid" = "09410002" -a "$mid" = "00420001" ]; then model="Rosewill RNX-N360RT" @@ -174,6 +280,9 @@ tplink_board_detect() { "001101"*) model="TP-Link TL-MR11U" ;; + "001201"*) + model="TP-Link TL-MR12U" + ;; "001301"*) model="TP-Link TL-MR13U" ;; @@ -189,6 +298,9 @@ tplink_board_detect() { "342000"*) model="TP-Link TL-MR3420" ;; + "332000"*) + model="TP-Link TL-WDR3320" + ;; "350000"*) model="TP-Link TL-WDR3500" ;; @@ -208,8 +320,11 @@ tplink_board_detect() { "49000002") model="TP-Link TL-WDR4900" ;; + "65000002") + model="TP-Link TL-WDR6500" + ;; "453000"*) - model="MERCURY MW4530R" + model="Mercury MW4530R" ;; "934100"*) model="NC-LINK SMART-300" @@ -226,7 +341,7 @@ tplink_board_detect() { ;; esac - AR71XX_MODEL="$model $hwver" + AR71XX_MODEL="$model$hwver" } tplink_pharos_get_model_string() { @@ -242,24 +357,23 @@ tplink_pharos_get_model_string() { tplink_pharos_board_detect() { local model_string="$(tplink_pharos_get_model_string | tr -d '\r')" local oIFS="$IFS"; IFS=":"; set -- $model_string; IFS="$oIFS" - local model - case "$1" in - 'CPE210(TP-LINK|UN|N300-2)') - model='TP-Link CPE210' - ;; - 'CPE220(TP-LINK|UN|N300-2)') - model='TP-Link CPE220' - ;; - 'CPE510(TP-LINK|UN|N300-5)') - model='TP-Link CPE510' + local model="${1%%\(*}" + + AR71XX_MODEL="TP-Link $model v$2" +} + +gl_inet_board_detect() { + local size="$(mtd_get_part_size 'firmware')" + + case "$size" in + 8192000) + AR71XX_MODEL='GL-iNet 6408A v1' ;; - 'CPE520(TP-LINK|UN|N300-5)') - model='TP-Link CPE520' + 16580608) + AR71XX_MODEL='GL-iNet 6416A v1' ;; esac - - [ -n "$model" ] && AR71XX_MODEL="$model v$2" } ar71xx_board_detect() { @@ -272,12 +386,27 @@ ar71xx_board_detect() { *"Oolite V1.0") name="oolite" ;; + *"A40") + name="a40" + ;; + *"A60") + name="a60" + ;; + *"AC1750DB") + name="f9k1115v2" + ;; *"AirGateway") name="airgateway" ;; + *"AirGateway Pro") + name="airgatewaypro" + ;; *"AirRouter") name="airrouter" ;; + *"ALFA Network AP120C") + name="alfa-ap120c" + ;; *"ALFA Network AP96") name="alfa-ap96" ;; @@ -293,10 +422,16 @@ ar71xx_board_detect() { *ALL0315N) name="all0315n" ;; - *AP113) - name="ap113" + *Antminer-S1) + name="antminer-s1" + ;; + *Antminer-S3) + name="antminer-s3" ;; - *AP121) + *"Arduino Yun") + name="arduino-yun" + ;; + *"AP121 reference board") name="ap121" ;; *AP121-MINI) @@ -314,15 +449,27 @@ ar71xx_board_detect() { *"AP135-020 reference board") name="ap135-020" ;; - *AP81) - name="ap81" + *"AP143 reference board") + name="ap143" + ;; + *"AP147-010 reference board") + name="ap147-010" + ;; + *"AP152 reference board") + name="ap152" ;; - *AP83) - name="ap83" + *AP90Q) + name="ap90q" ;; *"Archer C5") name="archer-c5" ;; + *"Archer C59 v1") + name="archer-c59-v1" + ;; + *"Archer C60 v1") + name="archer-c60-v1" + ;; *"Archer C7") name="archer-c7" ;; @@ -332,21 +479,82 @@ ar71xx_board_detect() { *AW-NR580) name="aw-nr580" ;; + *BHR-4GRV2) + name="bhr-4grv2" + ;; + *CAP324) + name="cap324" + ;; + *C-55) + name="c-55" + ;; + *C-60) + name="c-60" + ;; *CAP4200AG) name="cap4200ag" ;; - *"CPE210/220/510/520") + *"CF-E316N v2") + name="cf-e316n-v2" + ;; + *"CF-E320N v2") + name="cf-e320n-v2" + ;; + *"CF-E380AC v1") + name="cf-e380ac-v1" + ;; + *"CF-E380AC v2") + name="cf-e380ac-v2" + ;; + *CF-E520N) + name="cf-e520n" + ;; + *CF-E530N) + name="cf-e530n" + ;; + *"CPE210/220") + name="cpe210" + tplink_pharos_board_detect + ;; + *"CPE510/520") name="cpe510" tplink_pharos_board_detect ;; + *CPE830) + name="cpe830" + ;; + *CPE870) + name="cpe870" + ;; + *WBS210) + name="wbs210" + tplink_pharos_board_detect + ;; + *WBS510) + name="wbs510" + tplink_pharos_board_detect + ;; + *CR3000) + name="cr3000" + ;; + *CR5000) + name="cr5000" + ;; + *"DAP-2695 rev. A1") + name="dap-2695-a1" + ;; *"DB120 reference board") name="db120" ;; + *"DGL-5500 rev. A1") + name="dgl-5500-a1" + ;; *"DHP-1565 rev. A1") name="dhp-1565-a1" ;; *"DIR-505 rev. A1") name="dir-505-a1" + dir505_board_detect ;; *"DIR-600 rev. A1") name="dir-600-a1" @@ -357,6 +565,9 @@ ar71xx_board_detect() { *"DIR-615 rev. E4") name="dir-615-e4" ;; + *"DIR-615 rev. I1") + name="dir-615-i1" + ;; *"DIR-825 rev. B1") name="dir-825-b1" ;; @@ -366,15 +577,49 @@ ar71xx_board_detect() { *"DIR-835 rev. A1") name="dir-835-a1" ;; + *"DIR-869 rev. A1") + name="dir-869-a1" + ;; + *"dLAN Hotspot") + name="dlan-hotspot" + ;; + *"dLAN pro 500 Wireless+") + name="dlan-pro-500-wp" + ;; + *"dLAN pro 1200+ WiFi ac") + name="dlan-pro-1200-ac" + ;; + *DR344) + name="dr344" + ;; + *DR531) + name="dr531" + ;; *"Dragino v2") name="dragino2" ;; + *"Domino Pi") + name="gl-domino" + ;; + *"DW33D") + name="dw33d" + ;; + *E2100L) + name="e2100l" + ;; + *"EAP120") + name="eap120" + tplink_pharos_board_detect + ;; *"EAP300 v2") name="eap300v2" ;; *EAP7660D) name="eap7660d" ;; + *"EBR-2310 rev. C1") + name="ebr-2310-c1" + ;; *EL-M150) name="el-m150" ;; @@ -383,6 +628,22 @@ ar71xx_board_detect() { ;; *"GL-CONNECT INET v1") name="gl-inet" + gl_inet_board_detect + ;; + *"GL AR150") + name="gl-ar150" + ;; + *"GL AR300") + name="gl-ar300" + ;; + *"GL-AR300M") + name="gl-ar300m" + ;; + *"GL-MIFI") + name="gl-mifi" + ;; + *"EnGenius EPG5000") + name="epg5000" ;; *"EnGenius ESR1750") name="esr1750" @@ -398,12 +659,14 @@ ar71xx_board_detect() { ;; *"Bullet M") name="bullet-m" + ubnt_xm_board_detect ;; *"Loco M XW") name="loco-m-xw" ;; *"Nanostation M") name="nanostation-m" + ubnt_xm_board_detect ;; *"Nanostation M XW") name="nanostation-m-xw" @@ -411,6 +674,9 @@ ar71xx_board_detect() { *JWAP003) name="jwap003" ;; + *JWAP230) + name="jwap230" + ;; *"Hornet-UB") local size size=$(awk '/firmware/ { print $2 }' /proc/mtd) @@ -426,9 +692,30 @@ ar71xx_board_detect() { *LS-SR71) name="ls-sr71" ;; + *"MAC1200R") + name="mc-mac1200r" + ;; + *"MiniBox V1.0") + name="minibox-v1" + ;; + *MR12) + name="mr12" + ;; + *MR16) + name="mr16" + ;; + *MR18) + name="mr18" + ;; *MR600v2) name="mr600v2" ;; + *MR1750) + name="mr1750" + ;; + *MR1750v2) + name="mr1750v2" + ;; *MR600) name="mr600" ;; @@ -456,6 +743,9 @@ ar71xx_board_detect() { *"NBG460N/550N/550NH") name="nbg460n_550n_550nh" ;; + *"Zyxel NBG6616") + name="nbg6616" + ;; *"Zyxel NBG6716") name="nbg6716" ;; @@ -465,30 +755,60 @@ ar71xx_board_detect() { *OM2Pv2) name="om2pv2" ;; + *OM2Pv4) + name="om2pv4" + ;; *"OM2P HS") name="om2p-hs" ;; *"OM2P HSv2") name="om2p-hsv2" ;; + *"OM2P HSv3") + name="om2p-hsv3" + ;; + *"OM2P HSv4") + name="om2p-hsv4" + ;; *"OM2P LC") name="om2p-lc" ;; *OM5P) name="om5p" ;; + *"OM5P AN") + name="om5p-an" + ;; + *"OM5P AC") + name="om5p-ac" + ;; + *"OM5P ACv2") + name="om5p-acv2" + ;; + *"OMY-X1") + name="omy-x1" + ;; + *"OMY-G1") + name="omy-g1" + ;; + *"Onion Omega") + name="onion-omega" + ;; *PB42) name="pb42" ;; *"PB44 reference board") name="pb44" ;; - *PB92) - name="pb92" + *"PQI Air Pen") + name="pqi-air-pen" ;; *"Qihoo 360 C301") name="qihoo-c301" ;; + *"RE450") + name="re450" + ;; *"RouterBOARD 411/A/AH") name="rb-411" ;; @@ -522,6 +842,12 @@ ar71xx_board_detect() { *"RouterBOARD 750GL") name="rb-750gl" ;; + *"RouterBOARD 750 r2") + name="rb-750-r2" + ;; + *"RouterBOARD 750UP r2") + name="rb-750up-r2" + ;; *"RouterBOARD 751") name="rb-751" ;; @@ -534,18 +860,27 @@ ar71xx_board_detect() { *"RouterBOARD 911G-5HPnD") name="rb-911g-5hpnd" ;; + *"RouterBOARD 911G-5HPacD") + name="rb-911g-5hpacd" + ;; *"RouterBOARD 912UAG-2HPnD") name="rb-912uag-2hpnd" ;; *"RouterBOARD 912UAG-5HPnD") name="rb-912uag-5hpnd" ;; + *"RouterBOARD 941-2nD") + name="rb-941-2nd" + ;; *"RouterBOARD 951G-2HnD") name="rb-951g-2hnd" ;; *"RouterBOARD 951Ui-2HnD") name="rb-951ui-2hnd" ;; + *"951Ui-2nD") + name="rb-951ui-2nd" + ;; *"RouterBOARD 2011L") name="rb-2011l" ;; @@ -561,6 +896,9 @@ ar71xx_board_detect() { *"RouterBOARD 2011UiAS-2HnD") name="rb-2011uias-2hnd" ;; + *"RouterBOARD mAP L-2nD") + name="rb-mapl-2nd" + ;; *"RouterBOARD SXT Lite2") name="rb-sxt2n" ;; @@ -569,6 +907,13 @@ ar71xx_board_detect() { ;; *"Rocket M") name="rocket-m" + ubnt_xm_board_detect + ;; + *"Rocket M TI") + name="rocket-m-ti" + ;; + *"Rocket M XW") + name="rocket-m-xw" ;; *RouterStation) name="routerstation" @@ -579,9 +924,30 @@ ar71xx_board_detect() { *RW2458N) name="rw2458n" ;; + *SC1750) + name="sc1750" + ;; + *SC300M) + name="sc300m" + ;; + *SC450) + name="sc450" + ;; *"SMART-300") name="smart-300" ;; + "Smart Electronics Black Swift board"*) + name="bsb" + ;; + *"Telldus TellStick ZNet Lite") + name="tellstick-znet-lite" + ;; + *SOM9331) + name="som9331" + ;; + *SR3200) + name="sr3200" + ;; *TEW-632BRP) name="tew-632brp" ;; @@ -594,6 +960,9 @@ ar71xx_board_detect() { *TEW-732BR) name="tew-732br" ;; + *TEW-823DRU) + name="tew-823dru" + ;; *"TL-WR1041N v2") name="tl-wr1041n-v2" ;; @@ -603,6 +972,9 @@ ar71xx_board_detect() { *"TL-WR1043ND v2") name="tl-wr1043nd-v2" ;; + *"TL-WR1043ND v4") + name="tl-wr1043nd-v4" + ;; *TL-WR2543N*) name="tl-wr2543n" ;; @@ -630,6 +1002,12 @@ ar71xx_board_detect() { *"TL-MR3420 v2") name="tl-mr3420-v2" ;; + *"TL-WA701ND v2") + name="tl-wa701nd-v2" + ;; + *"TL-WA7210N v2") + name="tl-wa7210n-v2" + ;; *TL-WA750RE) name="tl-wa750re" ;; @@ -639,12 +1017,27 @@ ar71xx_board_detect() { *TL-WA850RE) name="tl-wa850re" ;; + *"TL-WA850RE v2") + name="tl-wa850re-v2" + ;; + *TL-WA860RE) + name="tl-wa860re" + ;; *"TL-WA830RE v2") name="tl-wa830re-v2" ;; *"TL-WA801ND v2") name="tl-wa801nd-v2" ;; + *"TL-WA801ND v3") + name="tl-wa801nd-v3" + ;; + *"TL-WR802N v1") + name="tl-wr802n-v1" + ;; + *"TL-WR802N v2") + name="tl-wr802n-v2" + ;; *TL-WA901ND) name="tl-wa901nd" ;; @@ -654,6 +1047,12 @@ ar71xx_board_detect() { *"TL-WA901ND v3") name="tl-wa901nd-v3" ;; + *"TL-WA901ND v4") + name="tl-wa901nd-v4" + ;; + *"TL-WDR3320 v2") + name="tl-wdr3320-v2" + ;; *"TL-WDR3500") name="tl-wdr3500" ;; @@ -663,6 +1062,12 @@ ar71xx_board_detect() { *"TL-WDR4900 v2") name="tl-wdr4900-v2" ;; + *"TL-WDR6500 v2") + name="tl-wdr6500-v2" + ;; + *TL-WPA8630) + name="tl-wpa8630" + ;; *TL-WR741ND) name="tl-wr741nd" ;; @@ -681,28 +1086,49 @@ ar71xx_board_detect() { *"TL-WR841N/ND v9") name="tl-wr841n-v9" ;; + *"TL-WR841N/ND v11") + name="tl-wr841n-v11" + ;; *"TL-WR842N/ND v2") name="tl-wr842n-v2" ;; + *"TL-WR842N/ND v3") + name="tl-wr842n-v3" + ;; *TL-WR941ND) name="tl-wr941nd" ;; + *"TL-WR941N/ND v5") + name="tl-wr941nd-v5" + ;; + *"TL-WR941N/ND v6") + name="tl-wr941nd-v6" + ;; + *"TL-WR940N v4") + name="tl-wr940n-v4" + ;; *"TL-WR703N v1") name="tl-wr703n" ;; *"TL-WR710N v1") name="tl-wr710n" ;; - *"TL-WR720N v3") + *"TL-WR720N"*) name="tl-wr720n-v3" ;; + *"TL-WR810N") + name="tl-wr810n" + ;; *"TL-MR10U") name="tl-mr10u" ;; *"TL-MR11U") name="tl-mr11u" ;; - *"TL-MR13U") + *"TL-MR12U") + name="tl-mr12u" + ;; + *"TL-MR13U v1") name="tl-mr13u" ;; *"Tube2H") @@ -711,9 +1137,18 @@ ar71xx_board_detect() { *UniFi) name="unifi" ;; + *"UniFi-AC-LITE") + name="unifiac-lite" + ;; + *"UniFi-AC-PRO") + name="unifiac-pro" + ;; *"UniFi AP Pro") name="uap-pro" ;; + "WeIO"*) + name="weio" + ;; *WHR-G301N) name="whr-g301n" ;; @@ -726,12 +1161,27 @@ ar71xx_board_detect() { *"UniFiAP Outdoor") name="unifi-outdoor" ;; + *"UniFiAP Outdoor+") + name="unifi-outdoor-plus" + ;; *WP543) name="wp543" ;; *WPE72) name="wpe72" ;; + *WPJ342) + name="wpj342" + ;; + *WPJ344) + name="wpj344" + ;; + *WPJ531) + name="wpj531" + ;; + *WPJ558) + name="wpj558" + ;; *WNDAP360) name="wndap360" ;; @@ -762,12 +1212,21 @@ ar71xx_board_detect() { *"WNR612 V2") name="wnr612-v2" ;; + *"WNR1000 V2") + name="wnr1000-v2" + ;; + *WPN824N) + name="wpn824n" + ;; *WRT160NL) name="wrt160nl" ;; *WRT400N) name="wrt400n" ;; + *"WRTnode2Q board") + name="wrtnode2q" + ;; *"WZR-450HP2") name="wzr-450hp2" ;; @@ -786,6 +1245,15 @@ ar71xx_board_detect() { *WHR-HP-G300N) name="whr-hp-g300n" ;; + *XD3200) + name="xd3200" + ;; + *Z1) + name="z1" + ;; + *ZBT-WE1526) + name="zbt-we1526" + ;; *ZCN-1523H-2) name="zcn-1523h-2" ;; @@ -801,6 +1269,9 @@ ar71xx_board_detect() { "8devices Carambola2"*) name="carambola2" ;; + "8devices Lima"*) + name="lima" + ;; *"Sitecom WLR-8100") name="wlr8100" ;;