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