ELECOM WRC-X3000GS3 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on MT7981B. Specification: - SoC : MediaTek MT7981B - RAM : DDR3 512 MiB (Winbond W634GU6QB-09) - Flash : SPI-NOR 128 MiB (Winbond W25N01GVZEIG) - WLAN : 2.4/5 GHz 2T2R (MediaTek MT7981B (SoC)) - Ethernet : 5x 10/100/1000 Mbps - wan (phy) : MediaTek MT7981B (SoC) - lan (switch) : MediaTek MT7531A - LEDs/Keys (GPIO): 8x/4x - UART : through-hole on PCB (J500) - assignment : 3.3V, TX, RX, NC, GND from tri-angle marking - settings : 115200n8 - Power : 12 VDC, 1 A (Max. 12.8 W) Flash instruction using factory.bin image: 1. Boot WRC-X3000GS3 in router mode normally 2. Access to the WebUI ("http://192.168.2.1/") on the device and open the firmware update page ("ファームウェア更新") 3. Select the OpenWrt factory.bin image and click apply ("適用") button 4. Wait ~120 seconds to complete flashing Switching to the stock firmware: 1. Load the elecom.sh script . /lib/upgrade/elecom.sh 2. Check the current index of firmware partition mstc_rw_bootnum 3. Set the bootnum to opposite value between 1 and 2 mstc_rw_bootnum <value> example: - step2 returned "1": mstc_rw_bootnum 2 - step2 returned "2": mstc_rw_bootnum 1 4. Reboot Notes: - ELECOM sells (or sold) multiple models as AX3000 class with different hardwares: - WRC-X3000GS(N) : Lantiq(Intel) GRX350/GRX550 - WRC-X3000GS(T)2: Qualcomm IPQ5018 - WRC-X3000GS3 : MediaTek MT7981B MAC Addresses: LAN : 38:97:A4:xx:xx:40 (Factory, 0x2A(hex)/Ubootenv,"ethaddr"(text)) WAN : 38:97:A4:xx:xx:43 (Factory, 0x24(hex)) 2.4GHz: 38:97:A4:xx:xx:41 (Factory, 0x4 (hex)) 5GHz : 38:97:A4:xx:xx:42 (Factory, 0xA (hex)) Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com> Link: https://github.com/openwrt/openwrt/pull/18976 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
33 lines
687 B
Bash
Executable file
33 lines
687 B
Bash
Executable file
. /lib/functions.sh
|
|
|
|
# Read or update the "bootnum" in the "persist" partition
|
|
#
|
|
# parameters:
|
|
# $1: index of active partition to set (1/2)
|
|
#
|
|
# operations:
|
|
# read : mstc_rw_bootnum
|
|
# write: mstc_rw_bootnum <index>
|
|
mstc_rw_bootnum() {
|
|
local mtd
|
|
local curval setval="$1"
|
|
|
|
case "$setval" in
|
|
1|2|"") ;;
|
|
*) echo "invalid bootnum specified \"$setval\""; return 1 ;;
|
|
esac
|
|
|
|
mtd=$(find_mtd_part "persist")
|
|
if [ -z "$mtd" ]; then
|
|
echo "cannot find "persist" mtd partition"
|
|
return 1
|
|
fi
|
|
|
|
curval=$(hexdump -s 4 -n 1 -e '"%d"' $mtd)
|
|
[ -z "$setval" ] &&
|
|
echo "$curval" && return 0
|
|
|
|
[ "$curval" != "$setval" ] &&
|
|
printf "\x$setval" | \
|
|
dd of=$mtd bs=1 seek=4 conv=notrunc
|
|
}
|