WN-DX1167R 進捗報告(factory)

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

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

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

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

musashino-build/openwrt – devadd/wn-dx1167r

手順

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

この時、メーカーファーム上でファームアップデート実行時にブートに使用されていたOSイメージとは別の、もう一方のOSイメージ領域にOpenWrtのfactoryイメージが書き込まれ、bootnumをイメージが書き込まれたパーティションに設定されてリブートされる。
Z-Loaderが2番目の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:/#
広告

Windows 10 1809 & Intel NIC VLAN

Windows環境でOpenWrt機のNAT速度を計測する際、普段PC 1台のみで計測を行うためにVLANを用いる。しかし、Windows 10 October 2018 Update (1809)更新後VLANを作成する際にハマったので備忘録。

発端

昨年のWindows 10 October 2018 Update(1809)後、作成済みのVLANが正常に動作しなくなった。
既に存在するVLANは無効になったまま有効にすることができず、一旦全てのVLANを削除するとNIC自体は正常に通信できるものの、再度作成したVLANは無効のまま有効化できず。

その後公開された新しいバージョンのドライバ(バージョン23.4)に更新したところ、NICのプロパティからVLANの管理タブが無くなってしまい、どうにもできなくなってしまった。

Windows 10 1809でVLANを作成する

参考: インテル® イーサネット Forum – Intel® Community Forum
現在Intelでは新しいWindowsのドライバ構造へ切替を行っているため、VLAN管理はGUIの提供が無くなっている模様。このため、PowerShellでの作成/削除が必要になる。

また、VLANのGUIが提供されていた古いバージョンのIntel NICドライバ(バージョン22.10以前)がインストールされたままWindows 10 October 2018 Updateをインストールした場合、以下の手順を行ってもVLANの作成ができなかった。恐らくゴミが残り上手くいかなくなっていると予想してWindowsの再インストールをしてから最新のIntel NICドライバ(バージョン23.5.2)をインストールしたところ、正常にVLANを追加できるようになった。

PowerShellを管理者権限で起動
Windowsキー + Xキー → AキーなどでPowerShellを管理者権限で起動する。VLAN管理機能はPowerShellモジュールとして提供されているため、コマンドプロンプトでは恐らく不可。
モジュールをインポート
Intel NIC関連の機能を提供するモジュールをインポートして使用可能にする。ただ、この手順はやらなくても問題無く使えた気もする。

Import-Module -Name "C:\ProgramFiles\Intel\Wired Networking\IntelNetCmdlets\IntelNetCmdlets"

ネットワークアダプタ名を取得
PC上にあるVLANを作成したいNICの名前を取得する。PowerShell上で

Get-IntelNetAdapter


を実行し、表示されたアダプタの中から目的のアダプタの “Name” 列をコピーする。

VLANを追加
1つ前の手順で得たアダプタ名を使用して、VLANを追加する。

Add-IntelNetVLAN


を実行して対話モードを開始し、 “ParentName[0]: ” にアダプタ名を入力。

PS C:\WINDOWS\system32> Add-IntelNetVLAN

コマンド パイプライン位置 1 のコマンドレット Add-IntelNetVLAN
次のパラメーターに値を指定してください:
ParentName[0]: Intel(R) Ethernet Connection (2) I219-V
ParentName[1]:


次の ParentName[1]: では何も入力せずEnterキーを押下し、VLAN番号への入力へと進む。
VLANID[0]: ” から1行に1つ作成したいVLANのIDを入力していき、入力が終わったら何も入力せずEnterを押下すると、VLANの作成が開始される。

PS C:\WINDOWS\system32> Add-IntelNetVLAN

コマンド パイプライン位置 1 のコマンドレット Add-IntelNetVLAN
次のパラメーターに値を指定してください:
ParentName[0]: Intel(R) Ethernet Connection (2) I219-V
ParentName[1]:
VLANID[0]: 0
VLANID[1]: 1
VLANID[2]: 2
VLANID[3]: 3
VLANID[4]: 4
VLANID[5]: 5
VLANID[6]: (Enter)


この時、タグ無しVLAN (untagged)を作成したい場合は “0” を入力する。また、数字を昇順など順番に入力する必要は無い。要らないVLAN IDは飛ばしても問題ない。

完了
指定したVLANが作成され、完了。この際、物理アダプタが無効にされたままいくら待っても(5~10分程度)VLANが作成されず反応が無い場合、VLAN管理機能が正常に機能していないこともあり得る。

余談: Windows 10 1809でVLANを削除する

Remove-IntelNetVLAN を用い、Addと同じように指定して削除する。

PS C:\WINDOWS\system32> Remove-IntelNetVLAN

コマンド パイプライン位置 1 のコマンドレット Remove-IntelNetVLAN
次のパラメーターに値を指定してください:
ParentName[0]: Intel(R) Ethernet Connection (2) I219-V
ParentName[1]:
VLANID[0]: 0
VLANID[1]: 2
VLANID[2]: 5
VLANID[3]: (Enter)

その他

現在最新のドライバでは、デバイスのプロパティとは別にNICの管理アプリケーションが提供されており、VLANの管理GUIは今後そちらに実装される予定というのをどこかで見たような気がする。
また、手元のIntel 82579V辺りのNICを搭載する環境では、最新ドライバのインストール時にインストーラがアダプタを見つけられず、インストールに失敗することが何度かあった。この場合、Intelのサイトからダウンロードしたインストーラを実行するとファイルが %userprofile%\AppData\Local\Temp\RarSFX0\ 以下に展開されるので、デバイスマネージャからアダプタのドライバ更新をこのディレクトリを指定して先に行い、そのうえでインストーラを進めると問題無くインストールが完了した。

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 互換性確認)やるかもしれません。

OSC 2019 Tokyo/Spring参加してきました

既に木曜日。今更感ありますが書いていきます。

そんなこんなで、ひとつ前の記事の通りOpen Source Conference (OSC) 2019 Tokyo/Springに参加してきました。

どんな感じに

今回も去年のTokyo/Fall同様 “openwrt.jp (仮)” としての参加で、私とsrchack氏 (@SRCHACK)、そしてpuhitaku氏 (@puhitaku)の3人でブース出展という形になりました。

一日目は金曜日と言うこともあり、2日目土曜日と比べると目に見えて少ない感じがありましたが、まったりたまにぼんやりという感じでブースにおり、2日目はいくらか人が増え、ちょくちょく色々と説明したり、展示機の操作をしたりという感じでした。

反省

他のブース見て回ったりセミナー聞きに行ったりがあまり無かった。なんとなく “ブースにいなきゃいけない” というように感じてしまい、ブースから離れるのを躊躇してしまった。

他には、ブース上の面積を自分のデバイスで大きく占有してしまったこと。個人的に小型機より通常の5ポートあるような機種を好むためにある程度の大きさがあるデバイスが多く、それらを並べたためにスペースを取りすぎ、自分以外のお二方の取れる面積が少なくなってしまった。

次回

主に反省点の改善として、ブースに人が不在でも展示機の操作をわかりやすくしたり、OpenWrtについての紹介を何らかの形で来訪者に行えるようにしたい。机に印刷した紙を置く or 貼り付けて提げておく感じ?
そのうえで、他のブースやセミナーに参加して知見を広めていきたい。

2つ目のスペース占有については、2日目の帰り支度辺りでpuhitaku氏から「縦方向にスペースを有効活用できれば」という意見があった。確かに今現在は横に並べるしかないために場所を取ってしまいやすいものの、上下に重ねることができれば横方向の占有スペースは圧縮できそう。
この方向で何かしらの手段を考えてみたい。

余談: 東海道LT

2日目の東海道らぐLT大会の時間をお借りして行ったLTでは、だいぶ巻いて進めたので時間は5分以内に十分収めることができた。しかしながら普段喋り慣れないせいか何度も噛んでしまい、つっかえつっかえで上手く伝えられていたかとても不安。
終了後しばらくして、同じく東海道らぐに参加されているとある方と少し話をした際、「あれだけの内容なら通常のセミナー枠いけるって!」という話になり、自分の方はというと「うーん、どうでしょ…」という感じにお茶を濁してしまった。いけるんだろうか…?

最後に

2日目終了後、なんとか全部まとめて持ち帰り、家に帰着して今回のOSCは終了。
片付けに手間取ったり、スペースを取りすぎたり、挙げればキリがないですが、今回も openwrt.jp (仮) で一緒に参加したお二方、どうもありがとうございました。
また今回全く予期していなかった方がブースにいらっしゃって、色々と面白そうな提案をして頂いたりしました。とても感謝。そちらも焦らず進めていこうと思います。

今後も、OpenWrtやルータなど手軽な機器を弄る楽しさを伝えていければと思います。