MT7628搭載ルータ、Xiaomi Mi Wi-Fi Nanoは何色?

Geeklog Site / 2016-01-09 00:34

MediaTek MT7628搭載ルータが登場しました。
(注意:日本では認証通過しているものではないので無線を使用する事はできません。電波暗室、シールドルーム等環境が無い場合は扱いには注意してください。)
Xiaomi MiWiFi Miniが独特なデザインかつ、ファームウェアがOpenWrtそのまんまだったので一部で話題になったので、またXiaomiかという方も居るのではないかと思いますが、今回のXiaomi Mi Wi-Fi Nanoは何色?でしょう。
何色?
いやぁ、本体パッケージの色がね、基板の色がね、ファームウェアの色がね。
色々な色について話ができてしまう一品ではないでしょうか。

OpenWrtを愉しんでいる方なら気になっているSoCなのではないだろうか、MTK MT7628搭載のルータになる訳ですが、日本にはXiaomiのルータの情報がなかなか廻ってこないので、製品でてたんだって人も居るかもしれません。
たぶん昨年末に登場したと思われるXiaomi Mi Wi-Fi Nanoを早速バラシテみましょう。

分厚い説明書なんてありません。
一枚のQuickGuideが付属しているだけです。
中国語なので、僕には読めませんが、そもそも無くても困りません。

本体デザインはXiaomi MiWiFi Miniと同じ。
本当に小さくしたモデルです。
Xiaomi MiWiFi MiniのSoCはMTK MT7620Aだった事から、今回のXiaomi Mi Wi-Fi Nanoは性能に差があまりでると考えられないので、お買い得の可能性が高いです。
USBが無くなっている点が一番大きい変更でしょうか。
付属品としては電源のみですが、この電源を使わないと動作がおかしい可能性があります。
波形等確認していないので理由は解りませんが、普段使っているUSBの電源を使っていると途中で再起動を繰り返す現象が発生しました。
付属品は5V1A仕様で、手持ちの5V2Aを使っている状況で発生したので気になる処ではあります。

裏面はこんな感じ。
Miniと違ってシールを剥がさずに開封できる安心設計です。
しかもドライバーも不要です。

基板のレジスト色は黒色。
Xiaomiは黒色が多いですね。
緑色レジストを見慣れているので新鮮ですね。
SPI Flashはこちら側に配置されてます。リセットボタンはデカいのが付いています。
ボタンスイッチは小さいのを付けている事が多いので、これも新鮮に思えてしまいます。
UARTは、J1の4本になります。
1の記載がある方から、VCC、RX、GND、TXになります。
MTKチップには珍しく速度が、115,200となっているので注意が必要です。(はじめおかしいなぁとか思ってましたw)

金属カバーは付けれる設計になっていますが、カバー無しなので便利ですね。
Xiaomiのルータで気になるのが、なぜかJTAGパターンが無さそうに見える。
これはどうやってデバッグしてるんだ?
OpenWrt載せてる基板なので、JTAGあるだろうという期待は禁物です。

ここまで基板を見て来て、既に出ていたXiaomi MiWiFi Miniとの違いを知りたい処だと思います。
SoCがMT7620AからMT7628に変更されたものの、MT7628がMT7620と同等と考えて良い性能なので、さほど全体としてはUSBが無くなった処以外は廉価版とは思わせない仕様です。

Xiaomi Mi WiFi Mini、Nano比較
Xiaomi MiWiFi Mini Xiaomi Mi WiFi Nano
SoC MT7620A (575MHz) MT7628(575MHz)
RAM 128MB 64MB
SPI Flash 16MB 16MB
Ethernet ports 3(100Mbps) 3(100Mbps)
USB yes none

この記事を読んでいる方は気になっていると思われるファームウェア側。
どうせOpenWrtそのまんまなんでしょ?
を見事に覆してきましたXiaomiってこういう実装もしてるんですね。
OpenWrtだけど、いつものLuci画面ではありません。

既に気が付いた方も居ると思いますが、URLはLuciです。
Luciでテーマを作りこんだ形でしょうか。
コンソールに入って真面目に確認しておきたい処です。
なぜコンソールと言っているかというと、今回はtelnetやsshといった類は起動していない模様でリモートで入れませんでした。







初期設定のウィザードが終わった訳ですが、少しもっさり感があります。少し残念な処。
管理画面は、今風のグラフィカルな感じに仕上がっています。
簡易的な画面に仕上がっており、中国語が解れば簡単に設定できるのではないでしょうか。
中国語以外の英語等は容易されていないので、英語があればいいという割り切りはありません。


驚くのは、QoSとかVPNの画面が用意されている点。
QoSは特に本当に動くのか?と思ってしまいますが、この値段($20程度)でこんなものを出してくるXiaomiはホントびっくりしてしまいます。

起動ログは張り付けておきますが、途中で再起動ループが入ってしまったので最後が切れてる形になります。
シールド環境で再度取る機会があればまた書きます。
起動ログからも解りますが、OpenWrtにも関わらずraethが使用されていたり独自に手を入れている箇所が多数ありそうです。
中国のOpenWrtは独自のリポジトリが存在するとかの話もあるので、そっち仕様の可能性もありますが、openwrt.ccは言語の壁もあり不明です。
コンソールに入ったら、また情報出していければと思います。

 [04050C0B][04050C0E]   DDR Calibration DQS reg = 00008988         U-Boot 1.1.3 (Jul 31 2015 - 19:31:38)      Board: Ralink APSoC DRAM:  64 MB   relocate_code Pointer at: 83fa8000   RT2880_RSTSTAT_REG 0xc0030000   ***************************   Board power on Occurred   ***************************   flash manufacture id: ef, device id 40 18   find flash: W25Q128BV   ============================================    Ralink UBoot Version: 4.3.0.0   --------------------------------------------    ASIC 7628_MP (Port5None)   DRAM component: 512 Mbits DDR, width 16   DRAM bus: 16 bit   Total memory: 64 MBytes   Flash component: SPI Flash   Date:Jul 31 2015  Time:19:31:38   ============================================    icache: sets:512, ways:4, linesz:32 ,total:65536   dcache: sets:256, ways:4, linesz:32 ,total:32768        ##### The CPU freq = 575 MHZ ####     estimate memory size =64 Mbytes   RESET MT7628 PHY!!!!!!   Please choose the operation:       1: Load system code to SDRAM via TFTP.       2: Load system code then write to Flash via TFTP.       3: Boot system code via Flash (default).      4: Entr boot command line interface.      7: Load system code via web.       9: Load Boot Loader code then write to Flash via TFTP.             3: System Boot system code via Flash.   Try to boot OS1   Erasing SPI Flash...   .   Writing to SPI Flash...   .   done   ## Booting image at bc050000 ...      Image Name:   MIPS OpenWrt Linux-3.10.14      Image Type:   MIPS Linux Kernel Image (lzma compressed)      Data Size:    1418927 Bytes =  1.4 MB      Load Address: 80000000      Entry Point:  80000000      Verifying Checksum ... OK      Uncompressing Kernel Image ... OK   fac_flag 0xffffffff   commandline uart_en=0 factory_mode=0 mem=64m   No initrd   ## Transferring control to Linux (at address 80000000) ...   ## Giving linux memsize in MB, 64      Starting kernel ...         LINUX started...       THIS IS ASIC   [    0.000000] Linux version 3.10.14 (builder@xqtest-DailyBuild) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Fri Jul 31 19:34:19 CST 2015   [    0.000000]    [    0.000000]  The CPU feqenuce set to 575 MHz   [    0.000000]    [    0.000000]  MIPS CPU sleep mode enabled.   [    0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)   [    0.000000] Software DMA cache coherency   [    0.000000] Determined physical RAM map:   [    0.000000]  memory: 04000000 @ 00000000 (usable)   [    0.000000] User-defined physical RAM map:   [    0.000000]  memory: 04000000 @ 00000000 (usable)   [    0.000000] Zone ranges:   [    0.000000]   Normal   [mem 0x00000000-0x03ffffff]   [    0.000000] Movable zone start for each node   [    0.000000] Early memory node ranges   [    0.000000]   node   0: [mem 0x00000000-0x03ffffff]   [    0.000000] Primary instruction cache 64kB, 4-way, VIPT, linesize 32 bytes.   [    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes   [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256   [    0.000000] Kernel command line: console=ttyS1,115200n8 root=/dev/mtdblock5 uart_en=0 factory_mode=0 mem=64m   [    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)   [    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)   [    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)   [    0.000000] Writing ErrCtl register=0004e000   [    0.000000] Readback ErrCtl register=0004e000   [    0.000000] Memory: 60692k/65536k available (2895k kernel code, 4844k reserved, 886k data, 184k init, 0k highmem)   [    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1   [    0.000000] NR_IRQS:128   [    0.000000] console [ttyS1] enabled   [    0.092000] Calibrating delay loop... 385.02 BogoMIPS (lpj=770048)   [    0.124000] pid_max: default: 32768 minimum: 301   [    0.128000] Mount-cache hash table entries: 512   [    0.132000] NET: Registered protocol family 16   [    0.136000] RALINK_GPIOMODE = 54054404    [    0.140000] RALINK_GPIOMODE = 54044404    [    0.240000] ***** Xtal 40MHz *****   [    0.244000] start PCIe register access   [    0.744000] RALINK_RSTCTRL = 2400000   [    0.748000] RALINK_CLKCFG1 = fdbfffc0   [    0.748000]    [    0.748000] *************** MT7628 PCIe RC mode *************   [    1.248000] PCIE0 no card, disable it(RST&CLK)   [    1.280000] bio: create slab  at 0   [    1.284000] cfg80211: Calling CRDA to update world regulatory domain   [    1.288000] Switching to clocksource Ralink Systick timer   [    1.292000] NET: Registered protocol family 2   [    1.300000] TCP established hash table entries: 512 (order: 0, 4096 bytes)   [    1.304000] TCP bind hash table entries: 512 (order: -1, 2048 bytes)   [    1.312000] TCP: Hash tables configured (established 512 bind 512)   [    1.320000] TCP: reno registered   [    1.320000] UDP hash table entries: 256 (order: 0, 4096 bytes)   [    1.328000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)   [    1.336000] NET: Registered protocol family 1   [    1.340000] Load Kernel WDG Timer Module   [    1.360000] squashfs: version 4.0 (2009/01/31) Phillip Lougher   [    1.368000] jffs2: version 2.2. (NAND) (SUMMARY)  (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.   [    1.376000] msgmni has been set to 118   [    1.380000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)   [    1.388000] io scheduler noop registered (default)   [    1.404000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled   [    1.408000] serial8250: ttyS0 at MMIO 0x10000d00 (irq = 21) is a 16550A   [    1.416000] serial8250: ttyS1 at MMIO 0x10000c00 (irq = 20) is a 16550A   [    1.424000] led=44, on=4000, off=1, blinks,=1, reset=1, time=4000   [    1.432000] Ralink gpio driver initialized   [    1.448000] brd: module loaded   [    1.452000] flash manufacture id: ef, device id 40 18   [    1.456000] W25Q128BV(ef 40180000) (16384 Kbytes)   [    1.460000] mtd .name = raspi, .size = 0x01000000 (16M) .erasesize = 0x00010000 (64K) .numeraseregions = 0   [    1.472000] Creating 9 MTD partitions on "raspi":   [    1.476000] 0x000000000000-0x000001000000 : "ALL"   [    1.484000] 0x000000000000-0x000000030000 : "Bootloader"   [    1.488000] 0x000000030000-0x000000040000 : "Config"   [    1.496000] 0x000000040000-0x000000050000 : "Factory"   [    1.504000] 0x000000050000-0x000000bf0000 : "OS1"   [    1.508000] mtd: try split OS1 partition   [    1.512000] mtd: split_firmware   [    1.516000] mtd: firmware_partition->size   0xba0000   [    1.520000] mtd: firmware_partition->offset 0x50000   [    1.528000] mtd: uimage_len 1418991   [    1.528000] mtd: uimage_len 1441792   [    1.532000] mtd: rootfs_partition->size   0xa40000   [    1.540000] mtd: rootfs_partition->offset 0x1b0000   [    1.544000] mtd: partition "rootfs" created automatically, ofs=1B0000, len=A40000    [    1.552000] 0x0000001b0000-0x000000bf0000 : "rootfs"   [    1.556000] 0x000000bf0000-0x000000ef0000 : "data"   [    1.564000] 0x000000ef0000-0x000000ff0000 : "overlay"   [    1.572000] 0x000000ff0000-0x000001000000 : "crash"   [    1.576000] 0x000000050000-0x000000bf0000 : "firmware"   [    1.584000] PPP generic driver version 2.4.2   [    1.588000] PPP MPPE Compression module registered   [    1.592000] NET: Registered protocol family 24   [    1.600000] PPTP driver version 0.8.5   [    1.604000] GMAC1_MAC_ADRH -- : 0x0000f0b4   [    1.608000] GMAC1_MAC_ADRL -- : 0x2920e9bc   [    1.612000] Ralink APSoC Ethernet Driver Initilization. v3.1  256 rx/tx descriptors allocated, mtu = 1500!   [    1.620000] GMAC1_MAC_ADRH -- : 0x0000f0b4   [    1.624000] GMAC1_MAC_ADRL -- : 0x2920e9bc   [    1.632000] PROC INIT OK!   [    1.632000] Netfilter messages via NETLINK v0.30.   [    1.636000] nfnl_acct: registering with nfnetlink.   [    1.644000] nf_conntrack version 0.5.0 (948 buckets, 3792 max)   [    1.648000] ip_set: protocol 6   [    1.652000] ipip: IPv4 over IPv4 tunneling driver   [    1.660000] gre: GRE over IPv4 demultiplexor driver   [    1.664000] ip_tables: (C) 2000-2006 Netfilter Core Team   [    1.668000] Type=Restricted Cone   [    1.672000] TCP: cubic registered   [    1.680000] NET: Registered protocol family 10   [    1.684000] NET: Registered protocol family 17   [    1.688000] l2tp_core: L2TP core driver, V2.0   [    1.692000] l2tp_ppp: PPPoL2TP kernel driver, V2.0   [    1.700000] l2tp_netlink: L2TP netlink interface   [    1.704000] 8021q: 802.1Q VLAN Support v1.8   [    1.720000] registered taskstats version 1   [    1.728000] VFS: Mounted root (squashfs filesystem) readonly on device 31:5.   [    1.736000] Freeing unused kernel memory: 184K (803b2000 - 803e0000)   config core 'version'   	# ROM ver   	option ROM '2.0.22'   	# channel   	option CHANNEL 'release'   	# hardware platform R1AC or R1N etc.   	option HARDWARE 'R1CL'   	# CFE ver   	option UBOOT '1.0.0'   	# Linux Kernel ver   	option LINUX '0.0.1'   	# RAMFS ver   	option RAMFS '0.0.1'   	# SQUASHFS ver   	option SQAFS '0.0.1'   	# ROOTFS ver   	option ROOTFS '0.0.1'   	#build time   	option BUILDTIME 'Fri, 31 Jul 2015 19:28:13 +0800'   	#build timestamp   	option BUILDTS '1438342093'   	#build git tag   	option GTAG 'commit f371b5867a2e05f28b1de698e0ca02f512c7e44f'   [    3.696000] Raeth v3.1 (Tasklet)   [    3.700000]    [    3.700000] phy_tx_ring = 0x03f65000, tx_ring = 0xa3f65000   [    3.708000]    [    3.708000] phy_rx_ring0 = 0x03f33000, rx_ring0 = 0xa3f33000   [    3.732000] config 7628 esw as LLLLW   [    3.804000] GMAC1_MAC_ADRH -- : 0x0000f0b4   [    3.808000] GMAC1_MAC_ADRL -- : 0x2920e9bc   [    3.812000] RT305x_ESW: Link Status Changed   - preinit -   Fri Jul 31 19:34:19 UTC 2015   - regular preinit -   mount: mounting /tmp/mnt on /extdisks failed: No such file or directory   85190320   [    4.120000] jffs2: notice: (507) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.   85190320   [    4.448000] jffs2: notice: (528) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.   jffs2 not ready yet; using ramdisk   Unlocking OS1 ...   - init -   [    4.992000] ra2880stop()...Done   [    4.996000] Free TX/RX Ring Memory!   init started: BusyBox v1.19.4 (2015-07-31 19:22:01 CST)      Please press Enter to activate this console. rcS S boot: INFO: rc script run time limit to 65 seconds.   [    7.880000] Mirror/redirect action on   [    7.904000] u32 classifier   [    7.908000]     input device check on   [    7.912000]     Actions configured   [    7.996000] ip_gre: GRE over IPv4 tunneling driver   [    8.088000] xt_time: kernel timezone is -0000   [    9.348000]    [    9.348000]    [    9.348000] === pAd = c052d000, size = 1570408 ===   [    9.348000]    [    9.356000]    [    9.376000] mt7628_init(FW(8a00), HW(8a01), CHIPID(7628))   [    9.384000] e2.bin mt7628_init(1117)::(2), pChipCap->fw_len(63536)   [    9.388000] mt_bcn_buf_init(218): Not support for HIF_MT yet!   [    9.396000] fw_len(63536)   [   17.440000] FW Version:_e2_mp   [   17.444000] FW Build Date:20150625211422   [   17.448000] AndesSendCmdMsg command (1), ext_cmd_type (0), seq(1)   [   17.456000] CmdAddressLenReq:(ret = 0)   [   17.460000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.464000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.472000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.476000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.484000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.488000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.492000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.500000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.504000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.512000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.516000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.520000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.528000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.532000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.540000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.544000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.552000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.556000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.564000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.568000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.576000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.580000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.584000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.592000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.596000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.604000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.608000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.612000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.620000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.624000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.632000] AndesInitCmdMsg:cmd_type:238,ExtCmdType:0   [   17.636000] AndesSendCmdMsg command (ee), ext_cmd_type (0), seq(0)   [   17.644000] CmdFwStartReq: override = 1, address = 1048576   [   17.648000] CmdStartDLRsp: WiFI FW Download Success   [   17.668000] AndesSendCmdMsg command (2), ext_cmd_type (0), seq(2)   [   17.672000] MtAsicDMASchedulerInit(): DMA Scheduler Mode=0(LMAC)   [   17.680000] efuse_probe: efuse = 10000012   [   17.684000] RtmpChipOpsEepromHook::e2p_type=2, inf_Type=4   [   17.688000] RtmpEepromGetDefault::e2p_dafault=2   [   17.692000] RtmpChipOpsEepromHook: E2P type(2), E2pAccessMode = 2, E2P default = 2   [   17.700000] NVM is FLASH mode   [   17.704000] 1. Phy Mode = 14   [   17.720000] rx disable[f0000300][count=0]!!!    [   17.824000] rx disable[f0000300][count=1]!!!    [   17.868000] AndesSendCmdMsg command (ed), ext_cmd_type (21), seq(3)   [   17.872000] Country Region from e2p = ffff   [   17.892000] AndesSendCmdMsg command (ed), ext_cmd_type (e), seq(4)   [   17.896000] tssi_1_target_pwr_g_band = 34   [   17.900000] 2. Phy Mode = 14   [   17.904000] 3. Phy Mode = 14   [   17.908000] NICInitPwrPinCfg(11): Not support for HIF_MT yet!   [   17.912000] NICInitializeAsic(651): Not support rtmp_mac_sys_reset () for HIF_MT yet!   [   17.920000] mt_mac_init()-->   [   17.924000] MtAsicInitMac()-->   [   17.928000] rx disable[f0000300][count=2]!!!    [   17.932000] Reset  rx bit!!!    [   17.932000] AndesSendCmdMsg command (ed), ext_cmd_type (e), seq(5)   [   17.992000] AndesSendCmdMsg command (ed), ext_cmd_type (e), seq(6)   [   17.996000] mt7628_init_mac_cr()-->   [   18.000000] MtAsicSetMacMaxLen(1279): Set the Max RxPktLen=1024!   [   18.008000]