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:/#
広告

NEC Aterm WG1200CR

OpenWrtのAtermに3機種目が加わりました。今回は、コンパクトなこの機種です。
某氏より提供頂き、知識不足等から少々時間が掛かりましたがサポート作業を進めてマージされました。
まとめます。

仕様

既にサポートされているWG800HPと同様、QCA9563を搭載しています。
有線のポート数が2ポートしかない為、switchチップはわずかに異なるものを搭載しています。無線に2.4GHz帯はSoC内蔵の無線機能を、5GHz帯はPCIeで接続されるチップを利用することはWG800HPと同様ですが、MIMOが異なることはもちろんのこと、最新の機種故かWave2対応のQCA9888を搭載しています。
ただし、いずれの無線機能もOpenWrtでの使用は法律の関係上非推奨です

  • SoC: Qualcomm Atheros QCA9563(750MHz, 1C1T)
  • RAM: DDR2 SDRAM 128MB (Winbond W971GG6SB-25)
  • Flash: SPI Flash 8MB (Macronix MX25L6433F)
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x1 (QCA8334)
  • UART: 115200bps(電源コネクタ側からVcc, GND, NC, TX, RX)

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

OpenWrt化

メーカーファームから投入できるファームウェアの形式の特定その他に時間が掛かってしまったものの、factoryを用意できた為簡単にインストールすることができます。

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

既知の問題

“POWER” 以外のLEDが使用できない
WG1200CRでは、搭載するLEDの個数が多すぎるため、”POWER” に存在する緑/赤のLED以外は全て5GHz帯用に搭載されているQCA9888に接続されています。
今回のPRに対応して頂いた方によると、以前はath10k系列チップにおけるGPIOコントロールは実装が存在したものの、既に削除されており現在は利用できないとのこと。
このため、再度実装が追加されない限り、これらのLEDは使用できません。

作業時あれこれ

色々

今回もWG800HPの時と同様、Cのプログラムに絡んでメンテナ氏にいくらか対応して頂いたので、とても感謝。学習していかねば。
“既知の問題” に書いた通りPOWER以外のLEDが使用できないのが残念な点ではあるものの、小型でありながらGbE対応で、なおかつSoCにもある程度パワーがあり、価格もさほど高くないので特化した用途に良いかな、という感じ。
Aterm、搭載LED多すぎて癖のある構成になっている機種が多いのは何なんだろう…無線チップのGPIO利用したり(例: WR8750N, WR9750N)、I2Cエキスパンダを搭載して利用していたり(例: WG1400HP)…。

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で再度活用してみるのも良さそう。

I-O DATA WN-AC1600DGR

WN-AC1600DGR2の存在を把握するのと前後して、同じWN-AC1600DGRx系列として把握していた機種です。5chのOpenWrtスレで無線周りにWN-AC1600DGR2とは差異があると予想できるレスがあり、気になったため確保しました。
一点不明な点があり長らくPRを見送っていましたが、最近になりようやく理解してPRを出し、マージされました。まとめていきます。

仕様

先行してサポートされているWN-AC1600DGR2と同じく、SoCにQCA9557を搭載しています。ハードウェアについてはほぼWN-AC1600DGR2と同一です。その為、雑記には特にこの機種のメモを書いていません。
2.4/5GHz両無線機能の使用は、法律の関係上非推奨です

  • SoC: Qualcomm Atheros QCA9557 (720MHz, 1C1T)
  • RAM: DDR2 SDRAM 128MB (64MB x2)
  • Flash: SPI Flash 16MB
  • WAN/LAN: 1000Mbps x1 / 1000Mbps x4
  • USB: USB 2.0 Type-A x1
  • UART: 115200bps(RJ45側からVcc, GND, TX, RX)

OpenWrt化

WN-AC1600DGR2と全く同じです。factoryファームにより簡単に導入できます。

WN-AC1600DGRを起動
WN-AC1600DGR2に電源ケーブルを繋ぎ、普通に起動。
WebUIにアクセス
PCとWN-AC1600DGR2をLANケーブルで接続し、 http://192.168.0.1/にアクセスしてファームウェア更新ページへ移動する
ファーム更新
WN-AC1600DGR用のfactoryファームを選択し、アップデートを実行
この際、WN-AC1600DGR2用factoryファームでもインストールは可能なものの、OpenWrtでPCIeに接続されている5GHz用無線カードの認識に失敗するので間違えないこと
完了
Flashへの書き込みが完了後再起動され、OpenWrtで起動してくる

DGR2ファームからの書き換え

WN-AC1600DGRにDGR2ファームウェアを使用していた場合、ファームウェアの互換性チェックで弾かれるため、 -F パラメータを付けてsysupgradeを実行してください。
例:
sysupgrade -F openwrt-ath79-generic-iodata_wn-ac1600dgr-squashfs-sysupgrade.bin

備考

  • あくまで “WN-AC1600DGR” のサポート。先行してサポートされているDGR2と合わせてWN-AC1600DGRx系列ではDGR/DGR2がサポート済みとなったものの、残りのDGR3については実機を確保しておらず確認できていないため、未サポート扱い。
  • 5GHz帯用に搭載されているQCA9880のeeprom (calibration data)がWN-AC1600DGR2と異なり、FlashのARTパーティション内に存在していなかった。5chで報告されていた認識エラーはこれが原因であり、他の場所に存在していることが予想された。
    しかしながらFlash内のどこを探しても見つからず、どうすれば良いかわからなくなっていたのがPRを見送っていた理由。
    結果としては、OTP (One Time Programmable) memoryにdataを保持しており、DGR2のようなFlashからのdata切り出しを指定しないことでath10kドライバにより自動的にOTPからの読み出しが行われ、正常に認識された。
  • 2019/02/15 11:40現在、公式Buildbotでのビルドは未実施。そのうちビルドされdownloads.openwrt.orgでのファームウェア提供が開始されると思われる。

色々

今回WN-AC1600DGRのサポートを行うにあたり、まず思ったのが「WN-AC1600DGR2をWN-AC1600DGRx全体のサポートとして追加しなくて良かった(助かった)」ということ。WN-AC1600DGRx系列ではI-O DATAにより提供されるファームウェアは共通であり、ハードウェアが共通であることは容易に想像された。その為DGR2のサポート作業当初は系列全体のサポートとして追加することを考えていたが、しかしながらもし何らかの差異があり完全には動作しない場合厄介な事態になり得る、と考え直し、DGR2単体のサポートとして追加していた。結果的にこれに助けられ、今回DGRのサポートをすんなり追加できたので良かった。
スペックとしてはWN-AC1600DGR2と同一であり、中古での放出状況や価格等から選択肢が若干ながら広がるので良いかな、という感じ。USBポートも搭載しており、色々使えそう。
DGR3については、そのうち確保でき次第対応します。