OpenWrt用ビルドサーバ更改

台風で特にやること無いので、今更ながらビルドサーバを少し前に更改した詳細について書くことにしました。

旧構成

CPU, MB, RAMは以前メイン機として使っていたものを流用していたもの。

CPU Intel Core i5 3570K
MB GIGABYTE G1.Sniper M3
(Z77, MicroATX)
RAM UMAX DDR3 4GB x2, Corsair DDR3 2GB x2
SSD
(host/system)
Sandisk 120GB
SSD
(VM/system)
A-DATA 250GB
HDD
(VM/data1)
Samsung HD251HJ
(7,200rpm, 250GB)
HDD
(VM/data2)
Samsung HD502HI
(5,400rpm, 500GB)
PSU Abee ZUMAX ZU-500N
(ATX, 500W)

更改理由

ストレージのトラブル解消
1年以上前から、特にHDDにおいて

  • 突然システムから切断される
  • 切断されたHDDが自然には復活せず、再起動しても直らないことが多い
  • 実際のディスクアクセスが全くないにも関わらず突然アクティブな時間が100%になり、ディスクアクセスをしばらく行えない

等の症状が発生しており、限界だった。HDDの個体の問題であることも疑ったが、別のHDDでも同様の問題が発生したため、ハードウェア/ソフトウェアの組み合わせによるものと推測。Mastodonサーバを以前この環境に載せていたため、自インスタンスにおいて頻繁に障害を引き起こした。

省電力化
実家暮らしのため、少しでも消費電力量を削減したかった。
性能向上
Core i5 3570Kは第3世代Core iシリーズであり、現行のIntel/AMD CPUと比べると大きく見劣りすると思われたため。
単純な興味
現行CPU等への単純な興味。AMDもRyzenが登場し、かなり気になっていた。

上記のうち、最大かつ緊急の理由は一つ目のストレージの問題。

検討基準

予算
CPUとMBを最大で4万円までに収めること。ただし、後に電源ユニットも含めてこの予算に収めることになる。
なお、RAMについては旧構成はDDR3であるが、メインのデスクトップ機がDDR4 4GB x2 + 8GB x2という構成になっており4GB x2を流用できるため、購入しない。
コストパフォーマンス
価格を抑えつつ、現行(旧構成)と同等または超える性能を出せること。
ちなみに、この項目によりIntelはすぐに選択肢から消えた。
耐久性
コストは削りつつ、ビルドサーバという性格上耐久性は可能な限り重視し、 “高耐久” を謳う製品を中心に絞る。

新構成

新規購入はCPU, MB, PSUの3点。費用は合計 33,965円也。旧構成のCPU, MB, RAMは当日買取に出して10,700円を確保した。

CPU AMD Ryzen 5 3400G
MB ASUS TUF B450M-PRO GAMING
(B450, MicroATX)
RAM Panram DDR4 4GB x2
SSD
(host/system)
Sandisk 120GB
SSD
(VM/system)
A-DATA 250GB
SSD
(VM/data)
Crucial 500GB
HDD
(VM/data1)
Samsung HD251HJ
(7,200rpm, 250GB)
HDD
(VM/data2)
Samsung HD502HI
(5,400rpm, 500GB)
PSU 玄人志向 KRPW-BK550W/85+
(ATX, 550W)

選定理由

AMD Ryzen 5 3400G
予算, コストパフォーマンスの2点から。Intelで旧構成のクロック/コア(スレッド)数と同程度以上と考える場合高くなりがちであり、検討を始めてすぐに除外。また、AMDの場合Intelとは対照にGPU搭載CPUが少なく、コア(スレッド)数、クロックとGPU内蔵であることを考えると、Ryzen 5 3400Gが妥当という結論になった。
ASUS TUF B450M-PRO GAMING
予算, 耐久性の2点から。高耐久部品の採用を謳っており、期待の意味も込めて採用。
ちなみに当初はB450M-PLUS GAMINGで考えていたが、TSUKUMO eX.店頭にRyzen 3000シリーズ対応UEFI適用済み個体の在庫が無く、諦めて1つ上のPROを購入。
玄人志向 KRPW-BK550W/85+
予算, 耐久性の2点から。あと80+ BRONZE準拠であることによる省電力性と、セミプラグインであることによるケーブル量の低減も少々。ビルドサーバに使用しているExpress5800/GT110bケースは電源ユニット装着部に出っ張りがあり、これにフィットする奥行サイズである必要もあった。
旧環境のZU-500Nがかなり長く使っていることから、ストレージのトラブルに関わっている可能性も無きにしも非ずかと考え、急遽交換を決定。
ちなみに、電源をどれにするかは特に決めずに当日秋葉原へ行き、旧構成から廃止するパーツの買取査定中に何カ所か歩き回って決めた。

運用

運用は旧構成と同じく、Microsoft Hyper-V Serverをホストとして、Jenkinsからアクセスされるslaveをビルド用VMとし搭載する。ホスト環境はメイン機 (Windows 10) などからRSATやRDPを用いて管理する。

Guest VM
(for Build)
Ubuntu Server 18.04 LTS
Host Microsoft Hyper-V Server 2019

実際にビルドに使用した感じでは、旧環境では50分前後掛かっていたOpenWrtのフルビルドが回線状況など良いときは34分程度で終了するなど、良好な様子。このまま、トラブル等無く今後長く頑張ってほしい。

余談: Microsoft Hyper-V Server 2019での使用に関して

Windowsのスリープを有効化できない
AMDの現行GPUドライバ(RADEON含む?)はWindows Server系にインストールできない模様。このため、Hyper-V Server 2019でもRyzen 5 3400GのGPUドライバがインストールできず、Microsoftの標準ドライバが使用されるためスリープが有効にならず、利用できない。
WoL
特に設定しなくてもシャットダウン後も対向のデバイスとリンクし続けていたが、WoLを利用するにはUEFI設定から “Wake On By PCI-E” を有効化する必要があった。

その他

  • AMDのCPUクーラーはソケット周辺のアタッチメントを使用して取り付けるものと思っていたが、Ryzen 5 3400GのリテールクーラーはMB側の部材を取り外してネジ止めする必要があった。
  • リテールクーラーは事前に調べて把握していた通りしっかり冷え、OpenWrtビルド時にCPUが100%到達している状態が続いても最大65℃程度を維持しており、問題なさそう。
  • PCの再起動時にDVI-Dから出力されなくなる事象が発生したものの、UEFIのGPU設定周辺を弄ったら解決。
  • 初期設定で起動したところ、RAMがGPU用で2GB近く取られてしまい、総量8GBからするとかなり厳しい状態に陥った。最低限のグラフィックしか使わないHyper-V Server 2019ではそんなに必要なはずはないので、UEFIの設定から64MB固定に変更し解決。

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

Windows 10 1809 & Intel NIC VLAN

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

2019/05/23 追記: 1903は再びドライバが正式対応していないため、VLANは正常動作しない模様。
2019/06/23 追記: “インテル®イーサネット アダプタ コンプリート ドライバ パック バージョン: 24.0” でWindows 10 1903にて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 互換性確認)やるかもしれません。