vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

Tinker Board S で遊ぶ

vSphere 無関係な GW 自由研究で買ってみたネタです。

Tinker Board S って?

ASUS が製造、販売している Single Board Computer(SBC) 。
www.asus.com

同じジャンルの製品だと Raspberry pi が圧倒的に有名だったりしますが、
その Raspberry pi をかなりスペックアップさせたものが本製品。
(お値段もそれなりに上がりますが)
細かい比較はどこか適当に検索…ということにして、ポイントをざっくり書くと

  • CPU (4Core/1.4GHz → 4Core/1.8GHz)
  • メモリ (DDR2 1GB → DDR3 2GB)
  • NIC (GbE over USB 2.0(Max300Mbps) → Native GbE(Max1Gbps))

個人的には Raspberry pi はセンサーとか繋げたデバイス制御向けで、
ARM PC サーバとなるとメモリや GbE 的に Tinker Board S の方が良いかなぁと。

外観とか

購入物 今回の購入物

  • Tinker Board S ¥10,756
  • 動作検証済スイッチ付きUSB ACアダプタ ¥1,600
  • クリアケース ¥950
  • microSDHC 32GB ¥470

microSD 以外は秋葉原千石電商で購入。(microSD はあきばお~が安かったので)

基盤
IF は USB 2.0 x4, RJ-45(LAN), HDMI, ステレオミニジャック, 電源用 microUSB に
GPIO, MIPI CSI, MIPI DSI と SBC にはおなじみなものも

基盤背面
背面、銀色の部分が micro SD スロット

SoC
SoC は Rockchip RK3288 で ARM プロセッサとしては Cortex-A17

ヒートシンク
ヒートシンクが同梱

ACアダプタ
基盤の端子は micro USB だが、5V/3.0A なのでよくあるケーブルでは未対応のはず

クリアケース
クリアケース自体は Raspberry pi 対応ケースとして売っていた品物

ケース搭載
IF 搭載位置は Raspberry pi と同じのため、ケースはそのまま使える

OS インストール

手順はほぼ ↓ のサイトの通りに
physical-computing-lab.net
ただ、 OS は新しめの Ubuntu が使いたかったので、
↓ より Armbian Bionic のイメージを利用。
www.armbian.com

OS 書き込み後に起動。 起動中
いつもの感じの起動ダイアログがダラダラと

ログインダイアログ
一通りの起動がログインダイアログ。
初期ユーザ/パスワードはroot/1234で。

パスワード変更
初回 root ログイン時はパスワード変更を求められるので変更

ユーザ作成
また、root 以外のユーザ作成も求められるので作成する

XFCE
ユーザ作成が終わると X Window System として XFCE が上がってくる

OS から色々見てみる

主にハードまわりで思いついたものを羅列

/proc/cpuinfo

root@tinkerboard:~ # cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 1
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 2
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

processor       : 3
model name      : ARMv7 Processor rev 1 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc0d
CPU revision    : 1

Hardware        : Rockchip (Device Tree)
Revision        : 0000
Serial          : 0000000000000000

/proc/meminfo

直前に reboot、daemon も追加してないほぼデフォルト起動状態

root@tinkerboard:~ # cat /proc/meminfo
MemTotal:        2050740 kB
MemFree:         1823476 kB
MemAvailable:    1895960 kB
Buffers:           14652 kB
Cached:           107208 kB
SwapCached:            0 kB
Active:            82560 kB
Inactive:          70772 kB
Active(anon):      31792 kB
Inactive(anon):     5864 kB
Active(file):      50768 kB
Inactive(file):    64908 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:       1310720 kB
HighFree:        1155488 kB
LowTotal:         740020 kB
LowFree:          667988 kB
SwapTotal:       1025368 kB
SwapFree:        1025368 kB
Dirty:               156 kB
Writeback:             0 kB
AnonPages:         31512 kB
Mapped:            30860 kB
Shmem:              6188 kB
Slab:              39492 kB
SReclaimable:      19288 kB
SUnreclaim:        20204 kB
KernelStack:        1168 kB
PageTables:         1156 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2050736 kB
Committed_AS:     163020 kB
VmallocTotal:     245760 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:              480 kB
CmaTotal:              0 kB
CmaFree:               0 kB

lscpu

root@tinkerboard:~ # lscpu
Architecture:        armv7l
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           ARM
Model:               1
Model name:          Cortex-A12
Stepping:            r0p1
CPU max MHz:         1800.0000
CPU min MHz:         126.0000
BogoMIPS:            57.60
Flags:               half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm

スペックシートだと Cortex-A17 と記載あるけど、表示はされない…

lsblk

root@tinkerboard:~ # lsblk
NAME         MAJ:MIN RM    SIZE RO TYPE MOUNTPOINT
mmcblk2      179:0    0   14.7G  0 disk
`-mmcblk2p1  179:1    0   14.5G  0 part /
mmcblk2boot0 179:16   0      4M  1 disk
mmcblk2boot1 179:32   0      4M  1 disk
mmcblk0      179:48   0   28.8G  0 disk
`-mmcblk0p1  179:49   0   28.8G  0 part
zram0        252:0    0     50M  0 disk /var/log
zram1        252:1    0 1001.3M  0 disk [SWAP]

容量から見て mmcblk2が eMMC で、mmcblk0 が microSD

lspci

root@tinkerboard:~ # lspci
pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.

PCI バスなど無いということか

lshw

root@tinkerboard:~ # lshw
tinkerboard
    description: ARMv7 Processor rev 1 (v7l)
    product: Rockchip RK3288 Tinker Board
    width: 32 bits
    capabilities: smp
  *-core
       description: Motherboard
       physical id: 0
     *-cpu:0
          description: CPU
          product: cpu
          physical id: 0
          bus info: cpu@0
          size: 1800MHz
          capacity: 1800MHz
          capabilities: half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq
     *-cpu:1
          description: CPU
          product: cpu
          physical id: 1
          bus info: cpu@1
          size: 1800MHz
          capacity: 1800MHz
          capabilities: half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq
     *-cpu:2
          description: CPU
          product: cpu
          physical id: 2
          bus info: cpu@2
          size: 1800MHz
          capacity: 1800MHz
          capabilities: half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq
     *-cpu:3
          description: CPU
          product: cpu
          physical id: 3
          bus info: cpu@3
          size: 1800MHz
          capacity: 1800MHz
          capabilities: half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm cpufreq
     *-memory
          description: System memory
          physical id: 4
          size: 2002MiB
  *-usbhost:0
       product: DWC OTG Controller
       vendor: Linux 4.19.33-rockchip dwc2_hsotg
       physical id: 2
       bus info: usb@1
       logical name: usb1
       version: 4.19
       capabilities: usb-2.00
       configuration: driver=hub slots=1 speed=480Mbit/s
     *-usb
          description: USB hub
          product: USB2.0 Hub
          vendor: Genesys Logic, Inc.
          physical id: 1
          bus info: usb@1:1
          version: 32.98
          capabilities: usb-2.00
          configuration: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
  *-usbhost:1
       product: DWC OTG Controller
       vendor: Linux 4.19.33-rockchip dwc2_hsotg
       physical id: 3
       bus info: usb@2
       logical name: usb2
       version: 4.19
       capabilities: usb-2.00
       configuration: driver=hub slots=1 speed=480Mbit/s
  *-usbhost:2
       product: EHCI Host Controller
       vendor: Linux 4.19.33-rockchip ehci_hcd
       physical id: 1
       bus info: usb@3
       logical name: usb3
       version: 4.19
       capabilities: usb-2.00
       configuration: driver=hub slots=1 speed=480Mbit/s
     *-usb
          description: Audio device
          product: USB Audio
          vendor: Generic
          physical id: 1
          bus info: usb@3:1
          version: 0.00
          serial: 201405280001
          capabilities: usb-2.00 audio-control
          configuration: driver=usbhid maxpower=100mA speed=480Mbit/s
  *-network:0
       description: Wireless interface
       physical id: 4
       logical name: wlan0
       serial: d0:c5:d3:5a:8b:1f
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtl8723bs multicast=yes wireless=unassociated
  *-network:1 DISABLED
       description: Ethernet interface
       physical id: 5
       logical name: dummy0
       serial: 52:dc:63:ea:af:93
       capabilities: ethernet physical
       configuration: broadcast=yes driver=dummy driverversion=1.0
  *-network:2
       description: Ethernet interface
       physical id: 6
       logical name: eth0
       serial: 0c:9d:92:0c:69:0c
       size: 1Gbit/s
       capacity: 1Gbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=st_gmac driverversion=Jan_2016 duplex=full ip=192.168.0.41 link=yes multicast=yes port=MII speed=1Gbit/s

dmidecode

root@tinkerboard:~ # dmidecode
# dmidecode 3.1
Scanning /dev/mem for entry point.
/dev/mem: Operation not permitted
/dev/mem: Bad file descriptor

SMBIOS なんか対応してないということね…

ethtool eth0

root@tinkerboard:~ # ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Half 1000baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: ug
        Wake-on: d
        Current message level: 0x0000003f (63)
                               drv probe link timer ifdown ifup
        Link detected: yes

inxi -F

root@tinkerboard:~# inxi -F
System:    Host: tinkerboard Kernel: 4.19.33-rockchip armv7l bits: 32 Console: tty 0 Distro: Ubuntu 18.04.2 LTS
Machine:   No /sys/class/dmi; using dmidecode: unknown error occurred
CPU:       Quad core ARMv7 rev 1 (v7l) (-MCP-)  (ARM)
           clock speeds: max: 1800 MHz 1: 1800 MHz 2: 1800 MHz 3: 1800 MHz 4: 1800 MHz
Graphics:  Card: Failed to Detect Video Card!
           Display Server: X.org 1.19.6 drivers: modesetting (unloaded: fbdev)
           tty size: 120x37 Advanced Data: N/A for root out of X
Audio:     Card-1 USB Audio OnBoard driver: USB-Audio Sound: ALSA v: k4.19.33-rockchip
           Card-2 rockchip driver: tinker-codec
           Card-3 Realtek driver: USB Audio
Network:   Card: Failed to Detect Network Card!
Drives:    HDD Total Size: NA (-)
           ID-1: /dev/mmcblk2 model: N/A size: 15.8GB
           ID-2: /dev/mmcblk0 model: N/A size: 31.0GB
Partition: ID-1: / size: 15G used: 1.6G (11%) fs: ext4 dev: /dev/mmcblk2p1
           ID-2: /var/log size: 49M used: 4.7M (11%) fs: ext4 dev: /dev/zram0
           ID-3: swap-1 size: 1.05GB used: 0.00GB (0%) fs: swap dev: /dev/zram1
RAID:      No RAID devices: /proc/mdstat, md_mod kernel module present
Sensors:   None detected - is lm-sensors installed and configured?
Info:      Processes: 123 Uptime: 23 min Memory: 112.2/2002.7MB Init: systemd runlevel: 3
           Client: Shell (bash) inxi: 2.3.56

ハードウェア情報何が取れるかなで調べてたら見つけたコマンドですけど、
めっちゃ便利ですね。。。

dmidecode や lspci が取れないあたり、x86 サーバでは味わえない感覚なのかと。

今後どうしよう

とりあえず ESXi 上の VM で動かしている dnsmasq はこちらに移動させたい。
(vCSA の DNS はそちら向いてて、微妙に鶏卵状態なので)
それとホームラボ用の NTP もこちらに立てておきたい。
USB ディスク挿してファイルサーバとかもいいかも。消費電力低いし。

あとは ARM で何かあればかなぁ。
ESXi on ARM とか出れば入れてみたい…どこまで対応するのかはわからないけど。