WN-DX1167R 進捗報告(factory)

※雑記に書くつもりが、内容濃くなったのでこちらのブログに移しました。

おおよそ手順が固まってきたので、再度メモ
雑記に投げたfactoryのログの延長で、今のところのOpenWrt化手順を掲載。

2019/04/20 追記: ユーザーによるFlash内flagの操作を省略できるよう変更を加えたバージョンの記事を公開。 WN-DX1167R stock -> OpenWrt(仮2) – 大破雑記帳

サポート作業用リポジトリ

musashino-build/openwrt – devadd/wn-dx1167r

手順

initramfs-factoryを投入
メーカーファームのWebUIから、OpenWrtのinitramfs-factoryを投入して実行。

この時、メーカーファーム上でファームアップデート実行時にブートに使用されていたOSイメージとは別の、もう一方のOSイメージ領域にOpenWrtのfactoryイメージが書き込まれ、bootnumをイメージが書き込まれたパーティションに設定されてリブートされる。
Z-Loaderが書き込まれた方のOSイメージ領域からOpenWrt (initramfs)をブートする。

Flash内をバックアップ
以降のコマンド操作を失敗した時などの為に、ddコマンドでFlash内を /tmp 等に書き出し、scp等で手元にダウンロードしておく。
WN-DX1167Rは128MBのFlashを搭載するが、RAMは128MB故に一度に全部は書き出せないので注意すること。
bootnumを設定
次回以降は1番目のOSイメージ領域からブートするよう、bootnumの値を “1” に変更する。
cat /proc/mtd を参照して “persist” という名前を持つmtdパーティションの番号を確認し、echoとddを組み合わせて値を書き込む。
失敗するとトラブルの原因になり得るので、先に一旦 /tmp 等に書き出したパーティションデータを使用して試してみるのが吉。

例(”persist” パーティションがmtd9の場合):

echo -ne "\x01" | dd of=/dev/mtdblock9 bs=1 count=1 seek=4 conv=notrunc


bootnum書き込み後はhexdump等で正しく書き込めているか確認すること(アドレス: 0x4, 長さ: 1 byte)
例(”persist” パーティションがmtd9の場合):

root@OpenWrt:/# hexdump -n 128 -C /dev/mtdblock9
00000000  1b 05 ce 17 01 00 00 00  19 4d 00 00 ca ed d7 33  |.........M.....3|
00000010  19 4d 00 00 ca ed d7 33  00 00 00 00 00 00 00 00  |.M.....3........|
00000020  00 00 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000080

debugflagを有効化(任意, 推奨)
なんらかのミス等によりOSイメージがブートできない場合、Loaderから投入しなおせるようにdebugflagを設定する。
cat /proc/mtd を参照して “Factory” の名前を持つmtdパーティションの番号を確認し、bootnum同様echoとddを組み合わせて値を書き込む。
これも先に /tmp 等に書き出したパーティションデータで試しておくのが吉。失敗するとハードウェア固有の情報を損傷し得る。
例(”Factory” パーティションがmtd2の場合):

echo -ne "\x01" | dd of=/dev/mtdblock2 bs=1 count=1 seek=65141 conv=notrunc


(0xFE75 (hex) = 65141 (dec))
debugflag書き込み後はhexdump等で正しく書き込めているか確認すること(アドレス: 0xFE75, 長さ: 1 byte)
例(”Factory” パーティションがmtd2の場合):

root@OpenWrt:/# hexdump -n 128 -C -s $((0xFE00)) /dev/mtdblock2
0000fe00  4d 69 74 72 61 73 74 61  72 00 54 65 63 68 6e 6f  |Mitrastar.Techno|
0000fe10  6c 6f 67 79 20 43 6f 72  70 2e 00 00 00 00 00 00  |logy Corp.......|
0000fe20  4d 69 43 41 50 2d 33 33  32 33 43 00 00 00 00 00  |MiCAP-3323C.....|
0000fe30  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0000fe40  31 39 35 36 30 35 32 37  00 00 00 00 00 00 00 00  |19560527........|
0000fe50  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
0000fe60  53 30 39 30 59 30 30 30  30 30 30 30 30 00 00 13  |S090Y00000000...|
0000fe70  49 55 aa 00 04 01 ff ff  5a 59 ff ff 00 00 00 00  |IU......ZY......|
0000fe80

sysupgrade.binイメージでsysupgrade
一つ手順の前までで書き込まれているOpenWrtファームはinitramfsであり再起動すると設定内容等が消えるため、本来のsysupgradeファームを書き込む。
/tmp 等にWN-DX1167R用のsysupgradeファームをダウンロードし、sysupgradeを実行する。この時、ファイル名の代わりにsysupgradeファームのURLを指定することも可能。

sysupgrade openwrt-ramips-mt7621-iodata_wn-dx1167r-squashfs-sysupgrade.bin


WN-DX1167RはメーカーファームではUBI等使用されておらず、素のsquashfsがRootFSとして書き込まれている。しかしながらNAND故にその辺不安なのでOpenWrtではRootFSにUBIを使用。
この初回のsysupgradeの際、対象となるパーティションにはUBIが存在していないことになるが、sysupgrade実行時に対象パーティション内にUBIが存在するかチェックされ、認識できるUBIが無い場合は新規にパーティション内にUBIを作成されるため、問題無し。

完了
sysupgrade後再起動され、正常にOpenWrtが起動してくれば完了。

ログ

メーカーファーム上でOpenWrtのinitramfs-factoryファームを使用してアップデートを開始した直後以降のログ。

  • 394行目でパーティションのラベルと番号の対応付けを確認
  • 409行目で /tmp に一旦書き出したデータを用いて419行目で書き換えを試し、430行目で実際のパーティション内の値を変更
  • debugflagは有効化済みであったため、ログ内では設定無し
  • 441行目でsysupgradeファームのURLを直接指定してsysupgrade実行
  • 470行目でmtdパーティション内にUBIが無い旨のエラーが吐かれ、ubiformatによりUBIが作成される
[ 7216.736000] led=9, on=1, off=1, blinks,=1, reset=0, time=4000 low_trigger=0
Unlocking firmware_2 ...

Writing from /tmp/fw.bin to firmware_2 ...     
Header checksum OK.
Data checksum OK
Unlocking persist ...
### Switch to bank 2 on next boot! ###
procd: - shutdown -
[ 7222.364000] br-lan: port 4(ra0) entered disabled state
[ 7222.372000] br-lan: port 3(rai0) entered disabled state
[ 7222.384000] br-lan: port 2(eth1) entered disabled state
[ 7222.396000] br-lan: port 1(eth0) entered disabled state
[ 7222.408000] device eth0 left promiscuous mode
[ 7222.416000] br-lan: port 1(eth0) entered disabled state
[ 7222.428000] ra2880stop()...Done
[ 7222.432000] eth1: ===> VirtualIF_close
[ 7222.440000] Free TX/RX Ring Memory!
[ 7222.448000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 7222.464000] device eth1 left promiscuous mode
[ 7222.472000] br-lan: port 2(eth1) entered disabled state
[ 7222.480000] eth1: ===> VirtualIF_close
[ 7222.492000] device ra0 left promiscuous mode
[ 7222.500000] br-lan: port 4(ra0) entered disabled state
[ 7222.508000] device rai0 left promiscuous mode
[ 7222.520000] br-lan: port 3(rai0) entered disabled state
[ 7223.968000] WifiSysClose(), wdev idx = 0
[ 7223.976000] WifiSysGetBssInfoState(): BssInfoIdx 0 not found!!!
[ 7223.976000] WifiSysUpdateBssInfoState(): BssInfoIdx 0 not found!!!
### ap ###
[ 7225.472000] Device Instance
[ 7225.476000]  WDEV 00:
                Name:rai0
[ 7225.484000]          Wdev(list) Idx:0
[ 7225.488000]           Idx:8
[ 7225.492000]  WDEV 01:
                Name:rai1
[ 7225.500000]          Wdev(list) Idx:1
[ 7225.508000]           Idx:9
[ 7225.512000]  WDEV 02:
                Name:rai2
[ 7225.516000]          Wdev(list) Idx:2
[ 7225.524000]           Idx:10
[ 7225.528000]  WDEV 03:
                Name:rai3
[ 7225.536000]          Wdev(list) Idx:3
[ 7225.540000]           Idx:11
[ 7225.544000]  WDEV 04:
                Name:ra0
[ 7225.552000]          Wdev(list) Idx:4
[ 7225.560000]           Idx:12
[ 7225.564000]  WDEV 05:
                Name:ra1
[ 7225.568000]          Wdev(list) Idx:5
[ 7225.576000]           Idx:13
[ 7225.580000]  WDEV 06:
                Name:ra2
[ 7225.588000]          Wdev(list) Idx:6
[ 7225.592000]           Idx:14
[ 7225.596000]  WDEV 07:
                Name:ra3
[ 7225.604000]          Wdev(list) Idx:7
[ 7225.612000]           Idx:15
[ 7225.616000]  WDEV 08:
                Name:apclii0
[ 7225.624000]          Wdev(list) Idx:8
[ 7225.628000]           Idx:16
[ 7225.632000]  WDEV 09:
                Name:apcli0
[ 7225.640000]          Wdev(list) Idx:9
[ 7225.644000]           Idx:17
[ 7225.652000]  WDEV 10:
[ 7225.656000]  WDEV 11:
[ 7225.660000]  WDEV 12:
[ 7225.664000]  WDEV 13:
[ 7225.668000]  WDEV 14:
[ 7225.672000]  WDEV 15:
[ 7225.676000]  WDEV 16:
[ 7225.684000]  WDEV 17:
[ 7225.692000] WifiSysClose(), wdev idx = 4
[ 7225.700000] WifiSysGetBssInfoState(): BssInfoIdx 1 not found!!!
[ 7225.700000] WifiSysUpdateBssInfoState(): BssInfoIdx 1 not found!!!
[ 7225.724000] MtAsicSetPiggyBack(779): Not support for HIF_MT yet!
[ 7225.736000] WifiSysClose(), wdev idx = 0
[ 7225.744000] WifiSysClose(), wdev idx = 1
[ 7225.752000] WifiSysClose(), wdev idx = 2
[ 7225.760000] WifiSysClose(), wdev idx = 3
[ 7225.796000] MtAsicSetPiggyBack(779): Not support for HIF_MT yet!
[ 7225.808000] WifiSysClose(), wdev idx = 4
[ 7225.816000] WifiSysClose(), wdev idx = 5
[ 7225.820000] WifiSysClose(), wdev idx = 6
[ 7225.828000] WifiSysClose(), wdev idx = 7
[ 7225.840000] kill LoopBackTxTask task failed!
[ 7225.852000] AndesRestartCheck: Current TOP_MISC2(0x7)
[ 7225.908000] CmdReStartDLRsp: Status Success!, Status(0)
[ 7225.916000] EventExtEventHandler: Unknown Ext Event(6f)
[ 7225.928000] AndesRestartCheck:  TOP_MISC2(1)
[ 7225.936000] RT28xxPciAsicRadioOff(): Not support for HIF_MT yet!
[ 7225.948000] RTMPDrvClose call RT28xxPciAsicRadioOff fail !!
[ 7225.960000] tx_kickout_fail_count = 0
[ 7225.968000] tx_timeout_fail_count = 0
[ 7225.976000] rx_receive_fail_count = 0
[ 7225.980000] alloc_cmd_msg = 16861
[ 7225.988000] free_cmd_msg = 16861
[ 7225.996000] cut_through_token_list_destroy(): 85647188,85647188
[ 7226.008000] cut_through_token_list_destroy(): 85647198,85647198
[ 7226.028000] FwOwn()::Set Fw Own
[ 7226.036000] RTMP_AllTimerListRelease: Size=0
[ 7226.044000] FwOwn()::Return since already in Fw Own...
[ 7226.056000] <---HwCtrlThread
procd: - reboot [ 7226.192000] Stopped WatchDog Timer.
-
[ 7226.208000] Restarting system.


U-Boot 1.1.3 (Aug  6 2018 - 14:37:41)

Board: Ralink APSoC DRAM:  128 MB
relocate_code Pointer at: 87f98000

Config XHCI 40M PLL 
******************************
Software System Reset Occurred
******************************
Allocate 16 byte aligned buffer: 87fcb030
Enable NFI Clock
# MTK NAND # : Use HW ECC
NAND ID [01 F1 80 1D 01]
Device found in MTK table, ID: 1f1, EXT_ID: 801d01
Support this Device in MTK table! 1f1 
select_chip
[NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
Signature matched and data read!
load_fact_bbt success 1023
load fact bbt success
[mtk_nand] probe successfully!
mtd->writesize=2048 mtd->oobsize=64,    mtd->erasesize=131072  devinfo.iowidth=8
....============================================ 
Ralink UBoot Version: 5.0.0.0
-------------------------------------------- 
ASIC MT7621A DualCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection 
DRAM_TYPE: DDR3 
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/3
Flash component: NAND Flash
Date:Aug  6 2018  Time:14:37:41
============================================ 
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768 

 ##### The CPU freq = 880 MHZ #### 
 estimate memory size =128 Mbytes
#Reset_MT7530
set LAN/WAN WLLLL
.## Starting application at 0x81E00000 ...


Z-LOADER V1.28 | 08/06/2018 14:37:44


..Hit ESC key to stop autoboot: 1

Checking image 2...
   Image Name:   3.10(XIK.1)b7
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    5642644 Bytes =  5.4 MB
   Load Address: 80001000
   Entry Point:  80001000
.......................................................................................   Verifying Combo Checksum ... .......................................................................................## Booting image at bf700000 ...
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80001000) ...
## Giving linux memsize in MB, 128

Starting kernel ...

[    0.000000] Linux version 4.14.111 (musashino205@Taiha.Net) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r0+9824-b80243858e)) #0 SMP Thu Apr 18 14:10:53 2019
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is I-O DATA WN-DX1167R
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4a4 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @81110000 s26192 r8192 d22960 u57344
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=00001001
[    0.000000] Readback ErrCtl register=00001001
[    0.000000] Memory: 119764K/131072K available (4497K kernel code, 230K rwdata, 1000K rodata, 3860K init, 248K bss, 11308K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 880MHz
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4343773742 ns
[    0.000009] sched_clock: 32 bits at 440MHz, resolution 2ns, wraps every 4880645118ns
[    0.015487] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.087817] pid_max: default: 32768 minimum: 301
[    0.097126] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.110147] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.125864] Hierarchical SRCU implementation.
[    0.135323] smp: Bringing up secondary CPUs ...
[    0.144859] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.144869] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.144880] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.145015] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.204699] Synchronize counters for CPU 1: done.
[    0.268619] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.268627] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.268634] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.268711] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.325527] Synchronize counters for CPU 2: done.
[    0.385689] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.385697] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.385705] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.385791] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.445096] Synchronize counters for CPU 3: done.
[    0.504698] smp: Brought up 1 node, 4 CPUs
[    0.516489] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.535960] futex hash table entries: 1024 (order: 3, 32768 bytes)
[    0.548385] pinctrl core: initialized pinctrl subsystem
[    0.560010] NET: Registered protocol family 16
[    0.577893] pull PCIe RST: RALINK_RSTCTRL = 4000000
[    0.887879] release PCIe RST: RALINK_RSTCTRL = 7000000
[    0.897943] ***** Xtal 40MHz *****
[    0.904676] release PCIe RST: RALINK_RSTCTRL = 7000000
[    0.914879] Port 0 N_FTS = 1b102800
[    0.921781] Port 1 N_FTS = 1b105000
[    0.928705] Port 2 N_FTS = 1b102800
[    2.087352] PCIE0 no card, disable it(RST&CLK)
[    2.096040] PCIE2 no card, disable it(RST&CLK)
[    2.104843]  -> 20107f2
[    2.109692] PCIE1 enabled
[    2.114872] PCI host bridge /pcie@1e140000 ranges:
[    2.124399]  MEM 0x0000000060000000..0x000000006fffffff
[    2.134756]   IO 0x000000001e160000..0x000000001e16ffff
[    2.145123] PCI coherence region base: 0xbfbf8000, mask/settings: 0x60000000
[    2.167973] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.179259] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.190463] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.202984] PCI host bridge to bus 0000:00
[    2.211000] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[    2.224657] pci_bus 0000:00: root bus resource [io  0xffffffff]
[    2.236405] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    2.249880] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    2.266726] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[    2.279749] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[    2.293568] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
[    2.307048] pci 0000:00:00.0: BAR 1: assigned [mem 0x60100000-0x6010ffff]
[    2.320540] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x600fffff 64bit]
[    2.335056] pci 0000:00:00.0: PCI bridge to [bus 01]
[    2.344874] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    2.359692] clocksource: Switched to clocksource GIC
[    2.370962] NET: Registered protocol family 2
[    2.380308] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    2.394042] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[    2.406644] TCP: Hash tables configured (established 1024 bind 1024)
[    2.419380] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    2.430885] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    2.443520] NET: Registered protocol family 1
[    5.829652] 4 CPUs re-calibrate udelay(lpj = 2924544)
[    5.841078] Crashlog allocated RAM at address 0x3f00000
[    5.851608] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    5.866201] random: fast init done
[    5.877529] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    5.889026] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    5.912387] io scheduler noop registered
[    5.920057] io scheduler deadline registered (default)
[    5.931246] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    5.945112] console [ttyS0] disabled
[    5.952163] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 18, base_baud = 3125000) is a 16550A
[    5.970101] console [ttyS0] enabled
[    5.970101] console [ttyS0] enabled
[    5.983892] bootconsole [early0] disabled
[    5.983892] bootconsole [early0] disabled
[    6.000466] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    6.013360] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error
[    6.027439] Enable NFI Clock
[    6.033183] # MTK NAND # : Use HW ECC
[    6.040495] Device found in MTK table, ID: 1f1, EXT_ID: 801d01
[    6.052107] Support this Device in MTK table! 1f1 
[    6.061835] [NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
[    6.074703] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xf1
[    6.087354] nand: AMD/Spansion NAND 128MiB 3,3V 8-bit
[    6.097412] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    6.112500] Scanning device for bad blocks
[    6.402422] 12 fixed-partitions partitions found on MTD device MT7621-NAND
[    6.416108] Creating 12 MTD partitions on "MT7621-NAND":
[    6.426699] 0x000000000000-0x000000100000 : "Bootloader"
[    6.438357] 0x000000100000-0x000000200000 : "u-boot-env"
[    6.450043] 0x000000200000-0x000000300000 : "Factory"
[    6.461135] 0x000000300000-0x000000400000 : "SecondBoot"
[    6.472749] 0x000000400000-0x000000800000 : "kernel"
[    6.483708] 0x000000800000-0x000003600000 : "ubi"
[    6.494496] 0x000003600000-0x000003700000 : "Config"
[    6.505447] 0x000003700000-0x000006900000 : "firmware_2"
[    6.517423] 0x000006900000-0x000006a00000 : "Config_2"
[    6.528724] 0x000006a00000-0x000006b00000 : "persist"
[    6.539891] 0x000006b00000-0x000006c00000 : "idmkey"
[    6.550816] 0x000006c00000-0x000007f80000 : "Backup"
[    6.561917] [mtk_nand] probe successfully!
[    6.570826] Signature matched and data read!
[    6.579307] load_fact_bbt success 1023
[    6.587525] libphy: Fixed MDIO Bus: probed
[    6.662258] libphy: mdio: probed
[    8.079593] mtk_soc_eth 1e100000.ethernet: loaded mt7530 driver
[    8.092133] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 19
[    8.111155] NET: Registered protocol family 10
[    8.121314] Segment Routing with IPv6
[    8.128676] NET: Registered protocol family 17
[    8.137586] 8021q: 802.1Q VLAN Support v1.8
[    8.148833] UBI error: no valid UBI magic found inside mtd5
[    8.159981] hctosys: unable to open rtc device (rtc0)
[    8.184217] Freeing unused kernel memory: 3860K
[    8.193269] This architecture does not have kernel memory protection.
[    8.217283] init: Console is alive
[    8.224410] init: - watchdog -
[    8.242206] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    8.259238] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    8.289970] init: - preinit -
[    8.455971] mtk_soc_eth 1e100000.ethernet: PPE started
[    8.478394] random: procd: uninitialized urandom read (4 bytes read)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[    9.309834] mtk_soc_eth 1e100000.ethernet eth0: port 0 link up
[   11.592907] mtk_soc_eth 1e100000.ethernet: 0x100 = 0x6060000c, 0x10c = 0x80818
[   11.614290] procd: - early -
[   11.620201] procd: - watchdog -
[   12.249821] procd: - watchdog -
[   12.256375] procd: - ubus -
[   12.266605] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.320227] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.333246] random: ubusd: uninitialized urandom read (4 bytes read)
[   12.346738] procd: - init -
Please press Enter to activate this console.
[   12.506579] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.525523] nat46: module (version 683fbd2b765506332a1af141545652bf58f03166) loaded.
[   12.545399] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   12.565347] ip_tables: (C) 2000-2006 Netfilter Core Team
[   12.586238] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[   12.627286] Netfilter messages via NETLINK v0.30.
[   12.659205] xt_time: kernel timezone is -0000
[   12.675561] ctnetlink v0.93: registering with nfnetlink.
[   12.688801] PPP generic driver version 2.4.2
[   12.699154] NET: Registered protocol family 24
[   12.710695] kmodloader: done loading kernel modules from /etc/modules.d/*
[   13.793830] urandom_read: 5 callbacks suppressed
[   13.793841] random: jshn: uninitialized urandom read (4 bytes read)
[   25.525284] mtk_soc_eth 1e100000.ethernet: PPE started
[   25.542011] br-lan: port 1(eth0.1) entered blocking state
[   25.552907] br-lan: port 1(eth0.1) entered disabled state
[   25.564333] device eth0.1 entered promiscuous mode
[   25.574010] device eth0 entered promiscuous mode
[   25.586617] br-lan: port 1(eth0.1) entered blocking state
[   25.597444] br-lan: port 1(eth0.1) entered forwarding state
[   25.609040] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   26.004701] random: crng init done
[   26.590289] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready



BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r0+9895-fb2069ffec
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "Bootloader"
mtd1: 00100000 00020000 "u-boot-env"
mtd2: 00100000 00020000 "Factory"
mtd3: 00100000 00020000 "SecondBoot"
mtd4: 00400000 00020000 "kernel"
mtd5: 02e00000 00020000 "ubi"
mtd6: 00100000 00020000 "Config"
mtd7: 03200000 00020000 "firmware_2"
mtd8: 00100000 00020000 "Config_2"
mtd9: 00100000 00020000 "persist"
mtd10: 00100000 00020000 "idmkey"
mtd11: 01380000 00020000 "Backup"
root@OpenWrt:/# cd /tmp
root@OpenWrt:/tmp# dd if=/dev/mtdblock9 of=mtd9.bin
2048+0 records in
2048+0 records out
root@OpenWrt:/tmp# hexdump -n 128 -C mtd9.bin
00000000  1b 05 ce 17 02 00 00 00  19 4d 00 00 ca ed d7 33  |.........M.....3|
00000010  19 4d 00 00 ca ed d7 33  00 00 00 00 00 00 00 00  |.M.....3........|
00000020  00 00 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000080
root@OpenWrt:/tmp# echo -ne "\x01" | dd bs=1 count=1 seek=4 conv=notrunc of=mtd9
.bin
1+0 records in
1+0 records out
root@OpenWrt:/tmp# hexdump -n 128 -C mtd9.bin
00000000  1b 05 ce 17 01 00 00 00  19 4d 00 00 ca ed d7 33  |.........M.....3|
00000010  19 4d 00 00 ca ed d7 33  00 00 00 00 00 00 00 00  |.M.....3........|
00000020  00 00 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000080
root@OpenWrt:/tmp# echo -ne "\x01" | dd bs=1 count=1 seek=4 conv=notrunc of=/dev
/mtdblock9
1+0 records in
1+0 records out
root@OpenWrt:/tmp# hexdump -n 128 -C /dev/mtdblock9
00000000  1b 05 ce 17 01 00 00 00  19 4d 00 00 ca ed d7 33  |.........M.....3|
00000010  19 4d 00 00 ca ed d7 33  00 00 00 00 00 00 00 00  |.M.....3........|
00000020  00 00 00 00 00 00 00 00  ff ff ff ff ff ff ff ff  |................|
00000030  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000080
root@OpenWrt:/tmp# sysupgrade http://taiha.net/jenkins/job/OpenWrt-master-IODATA
-WN-DX1167R/lastSuccessfulBuild/artifact/bin/targets/ramips/mt7621/openwrt-ramip
s-mt7621-iodata_wn-dx1167r-squashfs-sysupgrade.bin
--2019-04-18 16:09:53--  http://taiha.net/jenkins/job/OpenWrt-master-IODATA-WN-DX1167R/lastSuccessfulBuild/artifact/bin/targets/ramips/mt7621/openwrt-ramips-mt7621-iodata_wn-dx1167r-squashfs-sysupgrade.bin
Resolving taiha.net... 240b:12:500:65f0:c822:64a3:7e11:4961, 49.129.167.30
Connecting to taiha.net|240b:12:500:65f0:c822:64a3:7e11:4961|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5888778 (5.6M) [application/octet-stream]
Saving to: '/tmp/sysupgrade.img'

/tmp/sysupgrade.img 100%[===================>]   5.62M  16.6MB/s    in 0.3s    

2019-04-18 16:09:54 (16.6 MB/s) - '/tmp/sysupgrade.img' saved [5888778/5888778]

Cannot save config while running from ramdisk.
Commencing upgrade. Closing all shell sessions.
Watchdog handover: fd=3
- watchdog -
killall: telnetd: no process killed
Sending TERM to remaining processes ... netifd odhcpd uhttpd nlbwmon sh sleep ntpd vnstatd dnsmasq ubusd logd rpcd 
Sending KILL to remaining processes ... 
Performing system upgrade...
Unlocking kernel ...

Writing from  to kernel ...     
[  192.668699] ubi0: attaching mtd5
[  192.913308] ubi0: scanning is finished
[  192.920843] ubi0 error: ubi_read_volume_table: the layout volume was not found
[  192.935336] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd5, error -22
ubiattach: error!: cannot attach mtd5
           error 22 (Invalid argument)
ubiformat: mtd5 (nand), size 48234496 bytes (46.0 MiB), 368 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 367 -- 100 % complete  
ubiformat: 327 eraseblocks are supposedly empty
ubiformat: warning!: 41 of 368 eraseblocks contain non-UBI data
ubiformat: warning!: only 0 of 368 eraseblocks have valid erase counter
ubiformat: erase counter 0 will be used for all eraseblocks
ubiformat: note, arbitrary erase counter value may be specified using -e option
ubiformat: use erase counter 0 for all eraseblocks
ubiformat: formatting eraseblock 317 -- 86 % complet[  199.400695] ubi0: attaching mtd5
ubiformat: f[  199.837156] ubi0: scanning is finished  
ubiformat: formatting eraseblock 363 -- 98 % complet[  199.859921] ubi0: attached mtd5 (name "ubi", size 46 MiB)
ubiformat: f[  199.872374] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
ormatting eraseb[  199.888787] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
lock 364 -- 99 %[  199.905033] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
ubif[  199.921630] ubi0: good PEBs: 368, bad PEBs: 0, corrupted PEBs: 0
ormat: formattin[  199.936317] ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
g eraseblock 365[  199.953440] ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 1081099103
 -- 99 % complet[  199.974357] ubi0: available PEBs: 344, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
ubiformat: f[  199.995637] ubi0: background thread "ubi_bgt0d" started, PID 2220
ubiformat: formatting eraseblock 367 -- 100 % complete  
UBI device number 0, total 368 LEBs (46727168 bytes, 44.5 MiB), available 344 LEBs (43679744 bytes, 41.6 MiB), LEB size 126976 bytes (124.0 KiB)
Volume ID 0, size 32 LEBs (4063232 bytes, 3.8 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs", alignment 1
Set volume size to 39616512
Volume ID 1, size 312 LEBs (39616512 bytes, 37.7 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs_data", alignment 1
sysupgrade successful
umount: can't unmount /dev: Resource busy
umount: can't unmount /tmp: Resource busy
umount: can't unmount /: Invalid argument
[  202.029880] reboot: Restarting system


U-Boot 1.1.3 (Aug  6 2018 - 14:37:41)

Board: Ralink APSoC DRAM:  128 MB
relocate_code Pointer at: 87f98000

Config XHCI 40M PLL 
******************************
Software System Reset Occurred
******************************
Allocate 16 byte aligned buffer: 87fcb030
Enable NFI Clock
# MTK NAND # : Use HW ECC
NAND ID [01 F1 80 1D 01]
Device found in MTK table, ID: 1f1, EXT_ID: 801d01
Support this Device in MTK table! 1f1 
select_chip
[NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
Signature matched and data read!
load_fact_bbt success 1023
load fact bbt success
[mtk_nand] probe successfully!
mtd->writesize=2048 mtd->oobsize=64,    mtd->erasesize=131072  devinfo.iowidth=8
....============================================ 
Ralink UBoot Version: 5.0.0.0
-------------------------------------------- 
ASIC MT7621A DualCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection 
DRAM_TYPE: DDR3 
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/3
Flash component: NAND Flash
Date:Aug  6 2018  Time:14:37:41
============================================ 
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768 

 ##### The CPU freq = 880 MHZ #### 
 estimate memory size =128 Mbytes
#Reset_MT7530
set LAN/WAN WLLLL
.## Starting application at 0x81E00000 ...


Z-LOADER V1.28 | 08/06/2018 14:37:44


..Hit ESC key to stop autoboot: 1

Checking image 1...
   Image Name:   MIPS OpenWrt Linux-4.14.
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1905254 Bytes =  1.8 MB
   Load Address: 80001000
   Entry Point:  80001000
..............................   Verifying Checksum ... ## Booting image at bc400000 ...
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80001000) ...
## Giving linux memsize in MB, 128

Starting kernel ...

[    0.000000] Linux version 4.14.111 (musashino205@Taiha.Net) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r0+9824-b80243858e)) #0 SMP Thu Apr 18 14:10:53 2019
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is I-O DATA WN-DX1167R
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4a4 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @81110000 s26192 r8192 d22960 u57344
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Writing ErrCtl register=00001000
[    0.000000] Readback ErrCtl register=00001000
[    0.000000] Memory: 123412K/131072K available (4497K kernel code, 230K rwdata, 1000K rodata, 212K init, 248K bss, 7660K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 880MHz
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4343773742 ns
[    0.000009] sched_clock: 32 bits at 440MHz, resolution 2ns, wraps every 4880645118ns
[    0.015487] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.087816] pid_max: default: 32768 minimum: 301
[    0.097125] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.110146] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.125868] Hierarchical SRCU implementation.
[    0.135324] smp: Bringing up secondary CPUs ...
[    0.157181] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.157190] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.157201] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.157335] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.204714] Synchronize counters for CPU 1: done.
[    0.280956] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.280965] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.280972] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.281048] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.325547] Synchronize counters for CPU 2: done.
[    0.398029] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.398037] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.398045] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.398132] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.445116] Synchronize counters for CPU 3: done.
[    0.504718] smp: Brought up 1 node, 4 CPUs
[    0.516501] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.535972] futex hash table entries: 1024 (order: 3, 32768 bytes)
[    0.548397] pinctrl core: initialized pinctrl subsystem
[    0.560006] NET: Registered protocol family 16
[    0.577822] pull PCIe RST: RALINK_RSTCTRL = 4000000
[    0.887808] release PCIe RST: RALINK_RSTCTRL = 7000000
[    0.897872] ***** Xtal 40MHz *****
[    0.904605] release PCIe RST: RALINK_RSTCTRL = 7000000
[    0.914808] Port 0 N_FTS = 1b102800
[    0.921710] Port 1 N_FTS = 1b105000
[    0.928634] Port 2 N_FTS = 1b102800
[    2.087278] PCIE0 no card, disable it(RST&CLK)
[    2.095964] PCIE2 no card, disable it(RST&CLK)
[    2.104768]  -> 20107f2
[    2.109617] PCIE1 enabled
[    2.114797] PCI host bridge /pcie@1e140000 ranges:
[    2.124324]  MEM 0x0000000060000000..0x000000006fffffff
[    2.134681]   IO 0x000000001e160000..0x000000001e16ffff
[    2.145048] PCI coherence region base: 0xbfbf8000, mask/settings: 0x60000000
[    2.167848] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.179138] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.190359] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    2.202916] PCI host bridge to bus 0000:00
[    2.210934] pci_bus 0000:00: root bus resource [mem 0x60000000-0x6fffffff]
[    2.224587] pci_bus 0000:00: root bus resource [io  0xffffffff]
[    2.236334] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    2.249810] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    2.266683] pci 0000:00:00.0: BAR 0: no space for [mem size 0x80000000]
[    2.279705] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x80000000]
[    2.293525] pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
[    2.307005] pci 0000:00:00.0: BAR 1: assigned [mem 0x60100000-0x6010ffff]
[    2.320496] pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x600fffff 64bit]
[    2.335013] pci 0000:00:00.0: PCI bridge to [bus 01]
[    2.344831] pci 0000:00:00.0:   bridge window [mem 0x60000000-0x600fffff]
[    2.359632] clocksource: Switched to clocksource GIC
[    2.370896] NET: Registered protocol family 2
[    2.380304] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    2.394039] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[    2.406645] TCP: Hash tables configured (established 1024 bind 1024)
[    2.419373] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    2.430878] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    2.443522] NET: Registered protocol family 1
[    2.689578] 4 CPUs re-calibrate udelay(lpj = 2924544)
[    2.700903] Crashlog allocated RAM at address 0x3f00000
[    2.711406] workingset: timestamp_bits=30 max_order=15 bucket_order=0
[    2.729116] random: fast init done
[    2.736342] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    2.747830] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    2.770584] io scheduler noop registered
[    2.778233] io scheduler deadline registered (default)
[    2.789304] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    2.802985] console [ttyS0] disabled
[    2.810088] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 18, base_baud = 3125000) is a 16550A
[    2.827986] console [ttyS0] enabled
[    2.827986] console [ttyS0] enabled
[    2.841771] bootconsole [early0] disabled
[    2.841771] bootconsole [early0] disabled
[    2.858355] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.871286] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error
[    2.885313] Enable NFI Clock
[    2.891050] # MTK NAND # : Use HW ECC
[    2.898339] Device found in MTK table, ID: 1f1, EXT_ID: 801d01
[    2.909949] Support this Device in MTK table! 1f1 
[    2.919661] [NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
[    2.932523] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xf1
[    2.945162] nand: AMD/Spansion NAND 128MiB 3,3V 8-bit
[    2.955213] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    2.970292] Scanning device for bad blocks
[    3.260095] 12 fixed-partitions partitions found on MTD device MT7621-NAND
[    3.273778] Creating 12 MTD partitions on "MT7621-NAND":
[    3.284359] 0x000000000000-0x000000100000 : "Bootloader"
[    3.295881] 0x000000100000-0x000000200000 : "u-boot-env"
[    3.307338] 0x000000200000-0x000000300000 : "Factory"
[    3.318240] 0x000000300000-0x000000400000 : "SecondBoot"
[    3.329753] 0x000000400000-0x000000800000 : "kernel"
[    3.340508] 0x000000800000-0x000003600000 : "ubi"
[    3.351107] 0x000003600000-0x000003700000 : "Config"
[    3.361867] 0x000003700000-0x000006900000 : "firmware_2"
[    3.373690] 0x000006900000-0x000006a00000 : "Config_2"
[    3.384820] 0x000006a00000-0x000006b00000 : "persist"
[    3.395753] 0x000006b00000-0x000006c00000 : "idmkey"
[    3.406518] 0x000006c00000-0x000007f80000 : "Backup"
[    3.417417] [mtk_nand] probe successfully!
[    3.426302] Signature matched and data read!
[    3.434797] load_fact_bbt success 1023
[    3.442875] libphy: Fixed MDIO Bus: probed
[    3.522198] libphy: mdio: probed
[    4.928253] mtk_soc_eth 1e100000.ethernet: loaded mt7530 driver
[    4.940777] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 19
[    4.959876] NET: Registered protocol family 10
[    4.970105] Segment Routing with IPv6
[    4.977468] NET: Registered protocol family 17
[    4.986366] 8021q: 802.1Q VLAN Support v1.8
[    4.997620] UBI: auto-attach mtd5
[    5.004280] ubi0: attaching mtd5
[    5.438198] ubi0: scanning is finished
[    5.460884] ubi0: attached mtd5 (name "ubi", size 46 MiB)
[    5.471654] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[    5.485335] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
[    5.498842] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    5.512702] ubi0: good PEBs: 368, bad PEBs: 0, corrupted PEBs: 0
[    5.524653] ubi0: user volume: 2, internal volumes: 1, max. volumes count: 128
[    5.539027] ubi0: max/mean erase counter: 1/0, WL threshold: 4096, image sequence number: 1081099103
[    5.557203] ubi0: available PEBs: 0, total reserved PEBs: 368, PEBs reserved for bad PEB handling: 20
[    5.575574] ubi0: background thread "ubi_bgt0d" started, PID 372
[    5.577184] block ubiblock0_0: created from ubi0:0(rootfs)
[    5.598458] ubiblock: device ubiblock0_0 (rootfs) set to be root filesystem
[    5.612325] hctosys: unable to open rtc device (rtc0)
[    5.629528] VFS: Mounted root (squashfs filesystem) readonly on device 254:0.
[    5.644266] Freeing unused kernel memory: 212K
[    5.653155] This architecture does not have kernel memory protection.
[    6.106458] init: Console is alive
[    6.113548] init: - watchdog -
[    6.169376] mtk_soc_eth 1e100000.ethernet eth0: port 0 link up
[    6.407534] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    6.536043] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    6.559916] init: - preinit -
[    7.371955] mtk_soc_eth 1e100000.ethernet: PPE started
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to [    7.449931] random: procd: uninitialized urandom read (4 bytes read)
select the debug level
[   10.565185] UBIFS (ubi0:1): default file-system created
[   10.577052] UBIFS (ubi0:1): background thread "ubifs_bgt0_1" started, PID 449
[   10.690129] UBIFS (ubi0:1): UBIFS: mounted UBI device 0, volume 1, name "rootfs_data"
[   10.705734] UBIFS (ubi0:1): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[   10.725470] UBIFS (ubi0:1): FS size: 38346752 bytes (36 MiB, 302 LEBs), journal size 1904640 bytes (1 MiB, 15 LEBs)
[   10.746246] UBIFS (ubi0:1): reserved for root: 1811211 bytes (1768 KiB)
[   10.759416] UBIFS (ubi0:1): media format: w4/r0 (latest is w5/r0), UUID 705E3111-9995-4870-B072-AD0CFA37F0DB, small LPT model
[   10.784781] mount_root: overlay filesystem has not been fully initialized yet
[   10.799457] mount_root: switching to ubifs overlay
[   10.826622] urandom-seed: Seed file not found (/etc/urandom.seed)
[   10.922956] mtk_soc_eth 1e100000.ethernet: 0x100 = 0x6060000c, 0x10c = 0x80818
[   10.944701] procd: - early -
[   10.950615] procd: - watchdog -
[   11.589761] procd: - watchdog -
[   11.596317] procd: - ubus -
[   11.682087] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.766509] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.779707] random: ubusd: uninitialized urandom read (4 bytes read)
[   11.793209] procd: - init -
Please press Enter to activate this console.
[   12.182706] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.271500] nat46: module (version 683fbd2b765506332a1af141545652bf58f03166) loaded.
[   12.292491] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   12.312461] ip_tables: (C) 2000-2006 Netfilter Core Team
[   12.332445] nf_conntrack version 0.5.0 (2048 buckets, 8192 max)
[   12.374940] Netfilter messages via NETLINK v0.30.
[   12.411182] xt_time: kernel timezone is -0000
[   12.429755] ctnetlink v0.93: registering with nfnetlink.
[   12.443413] PPP generic driver version 2.4.2
[   12.454555] NET: Registered protocol family 24
[   12.467270] kmodloader: done loading kernel modules from /etc/modules.d/*
[   13.724460] urandom_read: 5 callbacks suppressed
[   13.724472] random: jshn: uninitialized urandom read (4 bytes read)
[   22.147089] mtk_soc_eth 1e100000.ethernet: PPE started
[   22.162740] br-lan: port 1(eth0.1) entered blocking state
[   22.173534] br-lan: port 1(eth0.1) entered disabled state
[   22.185225] device eth0.1 entered promiscuous mode
[   22.194841] device eth0 entered promiscuous mode
[   22.207964] br-lan: port 1(eth0.1) entered blocking state
[   22.218805] br-lan: port 1(eth0.1) entered forwarding state
[   22.230629] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   22.568656] random: crng init done
[   23.150256] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready



BusyBox v1.30.1 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt SNAPSHOT, r0+9895-fb2069ffec
 -----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/#
広告

I-O DATA WN-AC733GR3

WN-AC1167GRに引き続きI-O DATA機。今回は無線が一段下の “733” です。
しばらく諸事情により保留していましたが最近PRを出し、少々GPIO周りでツッコミがありましたがマージされました。まとめます。

仕様

私個人のサポートマージ済みとしては2機目となるMT7620A搭載機です。
SoC自体が搭載するswitchはFEまでながら、RGMIIでRTL8367RBを接続することによりGbE対応を行っています。
また、WN-AC1167GR同様、無線の2.4GHz帯はSoC内蔵のものを、5GHz帯はPCIeにぶら下がるMT7610Eを利用しています。
なお、いずれの無線機能も使用は法律の関係上非推奨です

  • SoC: MT7620A (580MHz, 1C1T)
  • RAM: DDR2 SDRAM 64MB
  • Flash: SPI Flash 8MB
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x4 (RTL8367RB)
  • UART: 57600bps(LED側からVcc, RX, GND, TX)

その他の詳細については、雑記を参照。

OpenWrt化

メーカーファームのフォーマットがWN-AC1167GRとはごくわずかに異なるものの、全体としてはほぼ同じであり、結果WN-AC1167GR用のfactoryコードをそのまま流用できfactoryを用意することができました。このため、簡単にインストールすることができます。

WN-AC733GR3を起動
WN-AC733GR3に電源ケーブルを繋ぎ、普通に起動。
WebUIにアクセス
PCとWN-AC733GR3をLANケーブルで接続し、 http://192.168.0.1/にアクセスしてファームウェア更新ページへ移動する
ファーム更新
WN-AC733GR3用のfactoryファームを選択し、アップデートを実行
完了
Flashへの書き込みが完了後再起動され、OpenWrtで起動してくる

既知の問題

各RJ-45ポートサイドのLEDが点灯/点滅しない
OpenWrtのRTL8367(R)B用ドライバはLED関連のコードが抜け落ちており、コントロールできないためポートLEDは点灯/点滅しません。

作業時あれこれ

  • メーカーファームのフォーマットがWN-AC1167GRと近いことは把握していたものの、ヘッダ部にわずかな差異があり、多少手を加える必要があるかなというのをぼんやり考えていた。
    が、WN-AC733GR3の実機を入手して検証したところWN-AC1167GRサポート時のコードそのままでビルドしたfactoryファームもチェックをパスできた。
  • 前述の通りRTL8367RBを搭載してGbE対応を行っており、これのRESETラインにSoCのGPIO 0が接続されRESETをコントロールしている。この場合理想としてはswitchの “reset-gpios” としてDeviceTreeに記述されるべきであるものの、OpenWrtのRTL8367RBドライバにはreset-gpiosの実装が無いため、GPIOをexportすることで対処する。
    このexportの方法が雑記に書いた通り現在OpenWrtではどの方法を採るか定まっておらず、当初regulatorとして記述しPRを出したところ、”RESETであり、なおかつDTSに書きたいならgpio-hogで” とコメントがあり、”gpio-hog” を利用して書き換えた。
  • 既にしばらく前に確保していたWRC-733GHBKと基板が8 – 9割方共通であり、WN-AC1167GR/WRC-1167GHBK2-I同様にかなり近いレベルで製造されていたと思われる。

色々

今回はfactoryについては特に問題無く、GPIO周りで少々時間が掛かってしまったものの新たにgpio-hog関連の知識が得られたので良し。また、メーカーを跨いでほぼほぼ同一の基板を使用している機種が複数あるということがわかり、とても興味深い。
WN-AC733GR3はAC対応機とはいえ1T1Rであり旧型であるものの、NATは平均して600Mbps以上は出ていたのでお役御免になったものをOpenWrtで再活用するのに良さそう。
GR/GR2はそのうちもし確保できればサポート(or 互換性確認)やるかもしれません。

I-O DATA WN-AC1167GR

久しぶりにサポートまとめ記事連投。
今度はI-O DATA WN-AC1167GRです。WN-AC1167DGRに近い世代の機種ながら、USBポートを搭載せずそれの共有機能を持たないため、型番から “D” が落ちています。
某フリマサイトで900円程度の出品を見つけ、衝動的に購入しました。
初めての要素があったことなどから時間がかかっていましたが、PRを出しマージされました。まとめます。

仕様

私個人が作業してマージされたものとしては初となるMT7620A搭載機です。当初この機種を見かけたときはMT7621Aかと期待していましたが、残念ながら違いました。
2.4GHz帯にはSoC内蔵の無線機能を、5GHz帯にはごく一般的なMT7612Eを搭載し使用する構成です。
なお、どちらの無線機能の使用も法律の関係上非推奨です

  • SoC: MT7620A (580MHz, 1C1T)
  • RAM: DDR2 SDRAM 64MB
  • Flash: SPI Flash 8MB
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x4 (MT7530)
  • UART: 57600bps(SoC側からTX, GND, RX, Vcc)

その他の詳細については、雑記を参照。

OpenWrt化

作業開始当初メーカーファームウェアのフォーマットが不明でしたが、解析できたためfactoryファームを用意できました。簡単にインストールすることができます。

WN-AC1167GRを起動
WN-AC1167GRに電源ケーブルを繋ぎ、普通に起動。
WebUIにアクセス
PCとWN-AC1167GRをLANケーブルで接続し、 http://192.168.0.1/にアクセスしてファームウェア更新ページへ移動する
ファーム更新
WN-AC1167GR用のfactoryファームを選択し、アップデートを実行
完了
Flashへの書き込みが完了後再起動され、OpenWrtで起動してくる

備考とか

  • WN-AC1167GRのFlash内には “NoUsed” と名付けられたパーティションが存在しており、気になって中のデータを調べたところELECOM機用の各種データ(SSID名等)が格納されていた。後にWRC-1167GHBK2-Iをジャンクで入手して筐体を開けたところ基板がWN-AC1167GRと9割方同一であり、恐らくは設計が流用され、かなり近いレベルで製造されていたものと思われる。
  • この機種では、SoCはFE switchを内蔵するのみのMT7620Aでありながら、追加でRGMIIに単体のMT7530を接続することでGbE対応を行っている。
    この場合のDTSの構成方法については同じ構成と思われる機種が既にOpenWrtのramipsに存在しており、当初はEthernet周辺をそのまま流用して対応させた。しかしながら後でよく見直したところ、どうもMT7620Aが持つ2本目のRGMII(port4と排他利用)が中途半端に構成され、pinmuxでEthernetに結び付けられているにもかかわらず肝心のRGMII自体は有効にされていない状態だった。恐らくは、本来は2本目のRGMIIをMT7530のphy一つを利用してWANとして外に出すものと予想。しかし、実態は使用されていないので、その状態で2本目のRGMII周りの構成は削除して1本目のRGMIIのみでMT7530を使用するように構成した。
  • factoryファームの生成に必要な情報を探るのにかなり手間取った。
    Kernel + Rootfs部分がxor処理されていることは比較的早い段階で気づけたものの、先頭に付加されているヘッダの構造が長らく不明だった。
    ふとしたきっかけでメーカーファーム上でFlash内をひっくり返したところ、ヘッダのチェックを行うコマンドが存在しており、そのコマンドによるファーム展開時に吐き出される情報が非常に参考になり構造が判明した。
    ヘッダに必要な情報が少々多く(ベンダID、デバイスID、Kernel + Rootfsのデータサイズ(hex)、xor処理前のMD5sum)生成に複雑なスクリプトが必要になってしまったものの、一応PRではこれでパスした。
    このヘッダ生成スクリプトは、この機種以外にWN-AC733GR3とWNPR2600Gで利用できることを確認済みであり、ほぼ同じヘッダを持つELECOM WRC-2533GHBK-I, WRC-2533GHBK2-Tでも利用できる可能性がある。

色々

今回はfactoryファームの生成方法を見つけるのに手間取り、UARTを接続してインストールするしかないかと当初考えていたものの、最終的に解決でき簡単にインストールできるように仕上げられたので良かった。
NA(P)T速度としてはおよそ640Mbps前後平均して出ており、妥当なものかなという感じ。この辺りの11AC機はサイクルが早い場合そろそろお役御免になってくる頃かなという感じなので、OpenWrtで再度活用してみるのも良さそう。

ELECOM WRC-2533GST

ミドルレンジのWRC-1167GHBK2-Sに続き、偶然5kで安価に入手できたこの機種についてもサポート作業を行い、マージされました。まとめていきます。

仕様

もはや恒例となったMT7621です。最上位に相応しく、デュアルコアのMT7621Aを搭載しています。
無線については、2.4/5GHzそれぞれにMT7615を1つずつ載せて各4×4を実現しています。ただし、WRC-1167GHBK2-Sと同様に現状ではOpenWrt (mt76)でのサポートは無いため、使用することはできません。

  • SoC: MediaTek MT7621A (880MHz, 2C4T)
  • RAM: DDR3 SDRAM 128MB
  • Flash: SPI Flash 16MB
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x4
  • UART: 57600bps(RJ45側からVcc, GND, TX, RX)

その他ハードウェアやKernel等細かい点の詳細については、雑記ブログにメモしてあるのでそちらを参照。

OpenWrt化

WRC-1167GHBK2-Sと同様に、メーカーファームがOpenWrtベースであったこと、”firmware” パーティションにkernelとrootfsを持つ構造であったため、factoryファームをOpenWrtで用意できました。これにより、簡単に導入できます。

  • WRC-2533GSTを起動
    WRC-2533GSTに電源ケーブルを繋ぎ、普通に起動。
  • WebUIにアクセス
    PCとWRC-2533GSTをLANケーブルで繋いで http://192.168.2.1/にアクセス
  • ファームウェア更新ページへアクセス
    管理用アカウントの設定を要求された場合は適当に設定し、ファームウェアの手動更新ページへアクセス
  • ファーム更新
    WRC-2533GSTのfactoryファームを選択し、アップデートを実行
  • 完了
    Flashの書き込みが完了後再起動され、OpenWrtで起動してくる

備考

  • WRC-2533GSTはメーカーファームが前述のとおりOpenWrtベースでであり、構造としてはKernel + Rootfsをfirmwareとしてまとめている、OpenWrtでよく用いられる手法
    • ただし設定保存用のrootfs_dataパーティションがFlash内の最後に別個で存在
    • 今回もrootfs_dataは使用せず、”user_data” にリネームしたうえでread-onlyに設定
  • アップデート用ファームはヘッダが “ELECOM 機種名 バージョン” 、ファーム末尾にヘッダを除いた部分のmd5チェックサムが付き、さらにそのあと “MT7621_ELECOM_WRC-2533GST” の文字列が付く。
    ヘッダ例:
    ELECOM WRC-2533GST v1.02
    末尾につくMT7621~を除くとWRC-1167GHBK2-Sとほぼ同一だが、md5チェックサムの後にWRC-1167GHBK2-Sでは存在していた \n を意味する 0A が無かった。このため、WRC-1167GHBK2-Sのfactory生成コードをそのまま流用できなかった。
  • メーカーファームでアップデートする際、WRC-1167GHBK2-Sと異なりファームウェアのファイル名は見ていないため、OpenWrtのファイル名のまま投入可。
  • メーカーファームへの書き戻しは、バックアップ済みのfirmwareパーティションをOpenWrtでのfirmwareパーティションにmtd writeするか、もしくは未検証ながらアップデートファームからヘッダと末尾のmd5チェックサム、”MT7621_ELECOM_WRC-2533GST” を除去したものをfirmwareパーティションにmtd writeすることで恐らく可能。
  • Power LEDにRGBの三色が搭載されている。デフォルトではWRC-1167GHBK2-Sと同じくgreenを電源やステータスランプとして使用。
  • MT7621ではHW NATが実装されているため、NATのCPU負荷をかなり抑えることが可能。
  • 2.4/5 GHz LEDはGPIOではなくMT7615にぶら下がっているらしく、現状では使用不可。

色々

今回はfactoryファームの作り方で少々議論。個人的にはWRC-1167GHBK2-Sの際に用意したMakefile内の関数で作らせたかったものの、Flagを立てて分岐させるのはメンテナ氏にとってはあまり好ましくないらしく、別途WRC-xxxxGST用のfactory関数を用意することになった。この関数は、恐らくWRC-1750GSとWRC-1900GSTでも使用可。WRC-1750GSV、WRC-1167GST2についてはまだメーカー公式サイトでアップデートファームが公開されていないため、使用できるか不明。
それ以外には特に問題無し。

写真

基板の半分程度を覆うヒートシンクが印象的。
2.4/5GHzそれぞれでMT7615を搭載するため、WRC-1167GHBK2-Sに比べて実装面積はやや大きめ。それでも空き領域も大きい。

  • 筐体を開けたところ
    IMG_20180724_203711.jpg
  • ヒートシンクを取り外した様子
    IMG_20180724_204303.jpg

I-O DATA WN-AX1167GR

下位版のWN-GX300GRに続き、上位版のWN-AX1167GRについてもサポート作業を行い、upstreamへマージされました。この機種についてもまとめます。
なお、先行してWN-AX1167GRのサポート作業を行っていた某氏よりパッチ案やログ等頂き、それを引き継いで完成させたものです。多謝。
なお、この機種についてはまだリリースバージョン用の openwrt-18.06 branch へは取り込まれないそうです。

仕様

これもMT7621です。シングルコアのMT7621Sを搭載するWN-GX300GRに対し、上位モデルという位置づけからかデュアルコアの “MT7621A” が搭載されています。
また、基板自体はWN-GX300GRと共通のため、SoCとFlash、無線周り以外はほぼ共通です。

  • SoC: MediaTek MT7621A (880MHz, 2C4T)
  • RAM: DDR2 SDRAM 64MB
  • Flash: SPI Flash 16MB
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x4
  • UART: 115200bps(RJ45側からVcc, GND, TX, RX)

その他ハードウェアやKernel等細かい点の詳細については、雑記ブログにメモしてあるのでそちらを参照。

OpenWrt化

WN-GX300GRでは制約によりfactoryファームは断念しましたが、WN-AX1167GRでは若干注意は必要なもののfactoryファームを生成できました。

  • アップデートページへアクセス
    PC側のIPアドレスを192.168.0.0/24のいずれかに設定してWN-AX1167GRと接続し、WN-AX1167GRに電源ケーブルを接続して通常起動。
    起動したら、192.168.0.1 へブラウザでアクセスし、ファームウェア更新ページを開く。OpenWrtのfactoryファームを選択してアップデートを実行する。
  • OpenWrt上でsysupgrade
    “1.” の手順でfactoryファームがFlashに書き込まれた後、OpenWrtで起動してくる。
    SSH等でOpenWrtのコンソールに入り、

    mtd erase firmware

    を実行したうえでWN-AX1167GRのsysupgradeファームを使用してsysupgradeを実行する。
    例:

    sysupgrade openwrt-ramips-mt7621-iodata_wn-ax1167gr-squashfs-sysupgrade.bin
  • 完了
    2分前後掛かるものの、Flashへの書き込みが完了して再起動する。

備考

  • WN-GX300GRと同様に、OpenWrtでのシリアルコンソールのBaudrateは115200bpsに設定。
    理由もGX300GRと同じで、U-BootとOpenWrtのbaud rateを合わせるため。
  • WN-GX300GRでは2つあるOS用パーティション(”Kernel”, “app”)それぞれが4MB弱しか確保されておらず、そのためOpenWrtでfactoryファームを作ろうとすると完全に不足してしまった。それに対してWN-AX1167GRでは7.5MBほど確保できるため、ある程度余裕をもってfactoryファームを生成できる。
    ただしこのfactoryファームの実態はinitramfsファームであり、再起動すると設定は消える。このため、factoryファームを投入後sysupgradeでsysupgradeファームを書き込む必要がある。
  • WN-GX300GRと同様に、OpenWrtでは2つあるOSイメージ用パーティションを結合して1つとして扱うようにした。ただし、メーカーファームでは何故か未使用の領域があり(データは00 or FF)、メーカーファームへ戻すバイナリを作成する際はメーカーファームでの “Kernel” の後ろに 0x20000 、”app” の後ろに 0x10000 の空データを追加して OpenWrt における “firmware” のサイズに合わせる。
    firmware (OpenWrt)
    (0xF30000 = 15,552k)
    Kernel (unused) app (unused)
    0x60000
    – 0x7E0000
    0x7E0000
    – 0x800000
    0x800000
    – 0xF80000
    0xF80000
    – 0xF90000
    0x780000
    (7,680k)
    0x20000
    (128k)
    0x780000
    (7,680k)
    0x10000
    (64k)

    上記を firmware.bin などとし、

    mtd write firmware.bin firmware
    

    とすることでメーカーファームに書き戻すことが可能。
    メーカー公式サイトで公開されているアップデート用ファームでもできそうだけど未検証。

  • MT7621ではHW NATが実装されているため、WN-GX300GRでもNATのCPU負荷をかなり抑えることが可能。
  • WN-AX1167GR2がGRとハード構成が同一であるかは未確認。

雑感

今回はfactoryの作り方や、factoryからsysupgradeした後にU-Bootが起動するパーティションとして2番目を指定した場合ブートが止まってしまうのでは、というメンテナ氏の疑問もあり(ごもっとも)、少々議論したうえで、WN-AX1167GRでは上手くfallbackしてくれるということなどをcommit messageに追加することになった。
その他は特に大きな問題は無し。良かった。