Allwinner H2+搭載のOrange Pi Zeroが来た!

Allwinner H2+搭載のOrange Pi Zeroが、2016/11/02の発注からわずか8日で到着。

zero-4

箱はOrange Pi One/Lite共通箱を流用している模様(・・・とはいっても、うちでOrange Pi Oneを買った時はこの箱じゃなかったんですけどね)

早速開梱!
zero-1

まぁ、いつもの梱包物、といった感じです。
zero-3

改めて見てみると・・・ヒートシンク、どうつけよう?と悩みます。
もうちょっとつけやすいレイアウト考えてくれないかなぁ・・・

そして、「H2+」というチップ上のロゴ。
Allwinner H2とH2+にどのような違いがあるのか・・・これは非常に謎なところです。

で・・・Orange Pi Zeroはシリアルコンソールのみなのですが・・・うっかりしてUSBシリアルを用意するのを忘れていました。
とりあえず、microSDにOSを書き込んで起動テストしてみるか・・・と思ったら、うっかり間違えてAndroidイメージをダウンロードしていました。

Orange Pi Zero用のLinux系イメージを公式からダウンロードしようかと思ったのですが、どれも遅いBaiduのリンクのみ。
Google Driveのアイコンはあってもリンクは無いのです。
Debian ServerについてはGoogle Driveでリンクが設定されているものの飛ぶ先はOrange Pi 2/Orange Pi mini 2向けのイメージという始末。
Baiduからダウンロードをしてみているものの、残り3時間~7時間を行ったり来たりという非常に速度が安定しない感じです。

armbianのOrange Pi Zero向けページに、「check daily beta / preview images」というリンクがあり、そこから開発中のOrange Pi Zero向けイメージがダウンロードして起動試験

2016/11/14追記:正式版がリリースされました。 「Jessie server(Debian)」もしくは「Xenial server(Ubuntu)」をダウンロードします。

なお、rootパスワードは「Getting Started」にあるよう1234です。

正常にOSが書き込まれており、起動が開始したのであれば下記の赤枠部分にあるLEDの上側が緑に点灯します。
状況によっては緑点滅だったり、下側の赤LEDも点滅したりします
zero-6

緑LEDも赤LEDも付かず、RJ45コネクタのLEDのみがついているようであれば、microSDからOSが読み込めていません。

DHCPサーバで該当する時間にIPが払い出されているものを確認して、TeraTermからsshログインを実行
zero-5

正常にログイン完了です。

有線LANは特に問題無し

2016/11/14追記
無線LANも正式版では普通に対応しました。
後述の無線LANのfirmwareを置く作業とかが不要になりました。

無線LANは初物のAllwinner XR819を使っています。
cnx-softwareに記事が出ています
Allwinner H2 Linux & Android SDK, and Allwinner XR819 WiFi Driver Released

root@orangepizero:~# lsmod
Module                  Size  Used by
dhd                   666855  1
pcf8591                 3363  0
bmp085                  3487  0
root@orangepizero:~#
root@orangepizero:~# echo blacklist dhd > /etc/modprobe.d/dhd.conf
root@orangepizero:~# reboot

再起動後

root@orangepizero:~# lsmod
Module                  Size  Used by
bmp085                  3487  0
pcf8591                 3363  0
root@orangepizero:~#
root@orangepizero:~# modprobe xradio_wlan
modprobe: ERROR: could not insert 'xradio_wlan': Operation not permitted
root@orangepizero:~# dmesg
<略>
[  337.756884] mmc1: new high speed SDIO card at address 0001
[  337.757361] [SBUS] XRadio Device:sdio clk=50000000
[  337.763911] [XRADIO] XRADIO_HW_REV 1.0 detected.
[  337.769390] [XRADIO_ERR] filp_open failed(-2)
[  337.774473] [XRADIO_ERR] xr_request_file:xr_fileopen failed!
[  337.780967] [XRADIO_ERR] xradio_parse_sdd: can't load sdd file /system/etc/firmware/sdd_xr819.bin.
[  337.860139] [XRADIO_ERR] filp_open failed(-2)
[  337.865110] [XRADIO_ERR] xr_request_file:xr_fileopen failed!
[  337.871583] [XRADIO_ERR] xradio_bootloader: can't load bootloader file /system/etc/firmware/boot_xr819.bin.
[  337.882721] [XRADIO_ERR] xradio_load_firmware: can't download bootloader.
[  337.890490] [XRADIO_ERR] xradio_load_firmware failed(-1).
[  337.897099] xradio wlan power off
[  337.901158] gpio wl_reg_on set val 0, act val 0
[  337.951205] [XRADIO] Remove SDIO card 1
[  337.951451] mmc1: card 0001 removed
[  337.951708] [mmc]: sdc1 power_supply is null
root@orangepizero:~#

XR819のドライバである「xradio_wlan」が読み込めない。
理由は /system/etc/firmware/ ディレクトリにfriwmareファイルが無いから、というのだけど、どこから入手するのか書かれていない・・・
H2-V1.2.tar.gz の中から持ってこい、ってことなんだろうか?

とりあえず無線LANについては放置です。

2016/11/11追記

やはりH2-V1.2.tar.gzの中にfirmwareファイルがあった。

./android/hardware/broadcom/wlan/bcmdhd/firmware/xr819/boot_xr819.bin
./android/hardware/broadcom/wlan/bcmdhd/firmware/xr819/fw_xr819.bin
./android/hardware/broadcom/wlan/bcmdhd/firmware/xr819/sdd_xr819.bin
./lichee/buildroot/target/dragonboard/src/testcases/wifitester/xr819/boot_xr819.bin
./lichee/buildroot/target/dragonboard/src/testcases/wifitester/xr819/fw_xr819.bin
./lichee/buildroot/target/dragonboard/src/testcases/wifitester/xr819/sdd_xr819.bin

どちらも同じなようなので好きな方のファイルをOrange Pi Zero上の「/system/etc/firmware」ディレクトリにコピーすればokでした。

root@orangepizero:/# mkdir -p /system/etc/firmware/
<firmwareファイルを配置>
root@orangepizero:/# ls -l /system/etc/firmware/
total 132
-rwxr-xr-x 1 root root   2308 Nov 11 14:11 boot_xr819.bin
-rwxr-xr-x 1 root root 126416 Nov 11 14:11 fw_xr819.bin
-rwxr-xr-x 1 root root    744 Nov 11 14:11 sdd_xr819.bin
root@orangepizero:/#

ドライバの読み込み

root@orangepizero:/# modprobe xradio_wlan
root@orangepizero:/# lsmod
Module                  Size  Used by
xradio_wlan           210610  0
mac80211              358445  1 xradio_wlan
pcf8591                 3363  0
bmp085                  3487  0
root@orangepizero:/# dmesg
<中略>
[ 6679.777461] [SBUS] XRadio Device:sdio clk=50000000
[ 6679.788126] [XRADIO] XRADIO_HW_REV 1.0 detected.
[ 6679.894661] [XRADIO] Bootloader complete
[ 6679.983907] [XRADIO] Firmware completed.
[ 6679.994377] [WSM] Firmware Label:XR_C01.08.0043 Jun  6 2016 20:41:04
[ 6680.005641] [XRADIO] Firmware Startup Done.
[ 6680.015551] ieee80211 phy1: Selected rate control algorithm 'minstrel_ht'
[ 6680.220459] [STA] !!!xradio_vif_setup: id=0, type=2, p2p=0
[ 6680.272331] ADDRCONF(NETDEV_UP): wlan0: link is not ready
root@orangepizero:/#

root@orangepizero:/# iwconfig
lo        no wireless extensions.

tunl0     no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

eth0      no wireless extensions.

root@orangepizero:/#

root@orangepizero:/# nmcli dev wifi list
*  SSID                MODE   CHAN  RATE       SIGNAL  BARS  SECURITY
   00xxxxxxxxx4        Infra  4     54 Mbit/s  80      ???_  WPA1 WPA2
   RT200NE-xxxxxx      Infra  7     54 Mbit/s  60      ???_  WEP
   RT200NE-xxxxxx-1    Infra  7     54 Mbit/s  60      ???_  WPA1
   xxxxxparty_ap-2.4G  Infra  6     54 Mbit/s  39      ??__  WPA1 WPA2
   URoad-xxxxxx        Infra  6     54 Mbit/s  35      ??__  WPA1 WPA2
root@orangepizero:/#
root@orangepizero:/# iwconfig
lo        no wireless extensions.

tunl0     no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

eth0      no wireless extensions.

root@orangepizero:/# nmcli dev wifi connect 00xxxxxxxxx4 password <パスワード>
Device 'wlan0' successfully activated with '7d39892d-ea9d-442d-bc9b-1dfxxxx4d9da'.
root@orangepizero:/# iwconfig
lo        no wireless extensions.

tunl0     no wireless extensions.

wlan0     IEEE 802.11bgn  ESSID:"00xxxxxxxxx4"
          Mode:Managed  Frequency:2.427 GHz  Access Point: 74:03:BD:xx:xx:1C
          Bit Rate=65 Mb/s   Tx-Power=20 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=51/70  Signal level=-59 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

root@orangepizero:/#

下記にいろいろな出力サンプル置いときます

root@orangepizero:~# uname -a
Linux orangepizero 3.4.113-sun8i #309 SMP PREEMPT Wed Nov 9 22:05:23 CET 2016 armv7l armv7l armv7l GNU/Linux
root@orangepizero:~# cat /proc/cpuinfo
Processor       : ARMv7 Processor rev 5 (v7l)
processor       : 0
BogoMIPS        : 2400.00

processor       : 1
BogoMIPS        : 2400.00

processor       : 2
BogoMIPS        : 2400.00

processor       : 3
BogoMIPS        : 2400.00

Features        : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : sun8i
Revision        : 0000
Serial          : 34355042074e54000080
root@orangepizero:~# cat /proc/meminfo
MemTotal:         247068 kB
MemFree:          151436 kB
Buffers:             624 kB
Cached:            49408 kB
SwapCached:            0 kB
Active:            39996 kB
Inactive:          27388 kB
Active(anon):       2152 kB
Inactive(anon):    16220 kB
Active(file):      37844 kB
Inactive(file):    11168 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         247068 kB
LowFree:          151436 kB
SwapTotal:        131068 kB
SwapFree:         131068 kB
Dirty:                28 kB
Writeback:             0 kB
AnonPages:         17352 kB
Mapped:             8320 kB
Shmem:              1020 kB
Slab:              13968 kB
SReclaimable:       5588 kB
SUnreclaim:         8380 kB
KernelStack:         816 kB
PageTables:          988 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      254600 kB
Committed_AS:     142908 kB
VmallocTotal:     761856 kB
VmallocUsed:       16716 kB
VmallocChunk:     515988 kB
root@orangepizero:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             39M     0   39M   0% /dev
tmpfs            25M 1012K   24M   5% /run
/dev/mmcblk0p1   15G  1.2G   13G   8% /
tmpfs           121M     0  121M   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           121M     0  121M   0% /sys/fs/cgroup
tmpfs           121M     0  121M   0% /tmp
tmpfs            25M     0   25M   0% /run/user/0
root@orangepizero:~# lsmod
Module                  Size  Used by
dhd                   666855  1
pcf8591                 3363  0
bmp085                  3487  0
root@orangepizero:~#
root@orangepizero:~# ifconfig -a
eth0      Link encap:Ethernet  HWaddr be:a7:9b:10:00:4b
          inet addr:192.168.1.219  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2001:c90:8221:ac16:bca7:9bff:fe10:4b/64 Scope:Global
          inet6 addr: fe80::bca7:9bff:fe10:4b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3285 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2915 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1506719 (1.5 MB)  TX bytes:651284 (651.2 KB)
          Interrupt:114

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:49 (49.0 B)  TX bytes:49 (49.0 B)

tunl0     Link encap:IPIP Tunnel  HWaddr
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@orangepizero:~#
root@orangepizero:~# dmesg
[    0.000000]    9.900676] systemd[1]: Mounting /tmp...
[   10.041494] systemd[1]: Starting udev Kernel Device Manager...
[   10.060572] systemd[1]: Reached target Swap.
[   10.140548] systemd[1]: Mounted /tmp.
[   10.251323] systemd[1]: Started Entropy daemon using the HAVEGE algorithm.
[   10.351473] systemd[1]: Starting Journal Service...
[   10.370731] systemd[1]: Reached target Local File Systems.
[   10.491521] systemd[1]: Starting Set console font and keymap...
[   10.621108] systemd[1]: Starting Raise network interfaces...
[   10.661400] systemd[1]: Started udev Kernel Device Manager.
[   10.731757] sunxi_i2c_do_xfer()985 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x77)
[   10.731848] bmp085: probe of 0-0077 failed with error -70
[   10.749129] systemd[1]: Started Journal Service.
[   10.762541] sunxi_i2c_do_xfer()985 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x48)
[   10.762846] sunxi_i2c_do_xfer()985 - [i2c0] incomplete xfer (status: 0x48, dev addr: 0x48)
[   10.784258] dhd_module_init: in
[   10.784303] ======== bcm_wlan_set_plat_data ========
[   10.784333] bcm_wlan_get_oob_irq enter.
[   10.784486] gpio [202] map to virq [10] ok
[   10.784502] host_oob_irq: 10
[   10.784517] host_oob_irq_flags=0x414
[   10.784536] dhd_wifi_platform_load: Enter
[   10.784613] Power-up adapter 'DHD generic adapter'
[   10.784635] wifi_platform_set_power = 1
[   10.784652] ======== PULL WL_REG_ON HIGH! ========
[   10.784671] [wifi_pm]: set wl_reg_on 0 !
[   10.894421] vmouse_input_dev_open
[   10.950506] vmouse_input_dev_close
[   11.128862] [wifi_pm]: set wl_reg_on 1 !
[   11.872851] gmac0: probed
[   11.873300] gmac0 gmac0: eth0: eth0: PHY ID 00441400 at 0 IRQ poll (gmac0-0:00)
[   11.958810] systemd-journald[208]: Received request to flush runtime journal from PID 1
[   12.160173] wifi_platform_bus_enumerate device present 1
[   12.160202] ======== Card detection to detect SDIO card! ========
[   14.160185] failed to power up DHD generic adapter, 3 retry left
[   14.176472] wifi_platform_set_power = 0
[   14.176495] ======== PULL WL_REG_ON LOW! ========
[   14.176514] wifi_platform_bus_enumerate device present 0
[   14.176532] ======== Card detection to remove SDIO card! ========
[   14.176584] wifi_platform_set_power = 1
[   14.176600] ======== PULL WL_REG_ON HIGH! ========
[   14.176619] [wifi_pm]: set wl_reg_on 0 !
[   14.176907] mmc1: card 0001 removed
[   14.177369] [mmc]: sdc1 power_supply is null
[   14.376831] [wifi_pm]: set wl_reg_on 1 !
[   14.880175] wifi_platform_bus_enumerate device present 1
[   14.880207] ======== Card detection to detect SDIO card! ========
[   14.881854] [mmc]: sdc1 power_supply is null
[   14.939607] mmc1: new high speed SDIO card at address 0001
[   15.870311] PHY: gmac0-0:00 - Link is Up - 100/Full
[   16.880093] failed to power up DHD generic adapter, 2 retry left
[   16.896390] wifi_platform_set_power = 0
[   16.896416] ======== PULL WL_REG_ON LOW! ========
[   16.896435] wifi_platform_bus_enumerate device present 0
[   16.896453] ======== Card detection to remove SDIO card! ========
[   16.896501] wifi_platform_set_power = 1
[   16.896516] ======== PULL WL_REG_ON HIGH! ========
[   16.896534] [wifi_pm]: set wl_reg_on 0 !
[   16.896839] mmc1: card 0001 removed
[   16.897317] [mmc]: sdc1 power_supply is null
[   17.096852] [wifi_pm]: set wl_reg_on 1 !
[   17.610154] wifi_platform_bus_enumerate device present 1
[   17.610184] ======== Card detection to detect SDIO card! ========
[   17.611853] [mmc]: sdc1 power_supply is null
[   17.675289] mmc1: new high speed SDIO card at address 0001
[   19.610134] failed to power up DHD generic adapter, 1 retry left
[   19.626463] wifi_platform_set_power = 0
[   19.626487] ======== PULL WL_REG_ON LOW! ========
[   19.626507] wifi_platform_bus_enumerate device present 0
[   19.626525] ======== Card detection to remove SDIO card! ========
[   19.626588] wifi_platform_set_power = 1
[   19.626604] ======== PULL WL_REG_ON HIGH! ========
[   19.626622] [wifi_pm]: set wl_reg_on 0 !
[   19.626948] mmc1: card 0001 removed
[   19.627431] [mmc]: sdc1 power_supply is null
[   19.827429] [wifi_pm]: set wl_reg_on 1 !
[   20.330112] wifi_platform_bus_enumerate device present 1
[   20.330140] ======== Card detection to detect SDIO card! ========
[   20.331782] [mmc]: sdc1 power_supply is null
[   20.389585] mmc1: new high speed SDIO card at address 0001
[   22.330166] failed to power up DHD generic adapter, 0 retry left
[   22.347850] wifi_platform_set_power = 0
[   22.347875] ======== PULL WL_REG_ON LOW! ========
[   22.347886] wifi_platform_bus_enumerate device present 0
[   22.347895] ======== Card detection to remove SDIO card! ========
[   22.347936] failed to power up DHD generic adapter, max retry reached**
[   22.348005] unregister wifi platform drivers
[   22.348015] wifi_platform_bus_enumerate device present 0
[   22.348023] ======== Card detection to remove SDIO card! ========
[   22.348048] dhd_module_init: Failed to load the driver, try cnt 3
[   22.348091] ======== bcm_wlan_set_plat_data ========
[   22.348109] bcm_wlan_get_oob_irq enter.
[   22.348128] gpio [202] map to virq [10] ok
[   22.348137] host_oob_irq: 10
[   22.348144] host_oob_irq_flags=0x414
[   22.348152] dhd_wifi_platform_load: Enter
[   22.348190] mmc1: card 0001 removed
[   22.348199] Power-up adapter 'DHD generic adapter'
[   22.348207] wifi_platform_set_power = 1
[   22.348213] ======== PULL WL_REG_ON HIGH! ========
[   22.348221] [wifi_pm]: set wl_reg_on 0 !
[   22.348503] [mmc]: sdc1 power_supply is null
[   22.552147] [wifi_pm]: set wl_reg_on 1 !
[   23.060126] wifi_platform_bus_enumerate device present 1
[   23.060147] ======== Card detection to detect SDIO card! ========
[   23.061605] [mmc]: sdc1 power_supply is null
[   23.120867] mmc1: new high speed SDIO card at address 0001
[   25.060154] failed to power up DHD generic adapter, 3 retry left
[   25.076390] wifi_platform_set_power = 0
[   25.076411] ======== PULL WL_REG_ON LOW! ========
[   25.076420] wifi_platform_bus_enumerate device present 0
[   25.076428] ======== Card detection to remove SDIO card! ========
[   25.076465] wifi_platform_set_power = 1
[   25.076473] ======== PULL WL_REG_ON HIGH! ========
[   25.076483] [wifi_pm]: set wl_reg_on 0 !
[   25.076704] mmc1: card 0001 removed
[   25.076975] [mmc]: sdc1 power_supply is null
[   25.276559] [wifi_pm]: set wl_reg_on 1 !
[   25.780059] wifi_platform_bus_enumerate device present 1
[   25.780077] ======== Card detection to detect SDIO card! ========
[   25.781706] [mmc]: sdc1 power_supply is null
[   25.836802] mmc1: new high speed SDIO card at address 0001
[   27.780063] failed to power up DHD generic adapter, 2 retry left
[   27.796278] wifi_platform_set_power = 0
[   27.796295] ======== PULL WL_REG_ON LOW! ========
[   27.796304] wifi_platform_bus_enumerate device present 0
[   27.796313] ======== Card detection to remove SDIO card! ========
[   27.796348] wifi_platform_set_power = 1
[   27.796356] ======== PULL WL_REG_ON HIGH! ========
[   27.796365] [wifi_pm]: set wl_reg_on 0 !
[   27.796561] mmc1: card 0001 removed
[   27.796830] [mmc]: sdc1 power_supply is null
[   27.996405] [wifi_pm]: set wl_reg_on 1 !
[   28.500123] wifi_platform_bus_enumerate device present 1
[   28.500145] ======== Card detection to detect SDIO card! ========
[   28.501787] [mmc]: sdc1 power_supply is null
[   28.557609] mmc1: new high speed SDIO card at address 0001
[   30.500114] failed to power up DHD generic adapter, 1 retry left
[   30.516327] wifi_platform_set_power = 0
[   30.516342] ======== PULL WL_REG_ON LOW! ========
[   30.516353] wifi_platform_bus_enumerate device present 0
[   30.516363] ======== Card detection to remove SDIO card! ========
[   30.516404] wifi_platform_set_power = 1
[   30.516414] ======== PULL WL_REG_ON HIGH! ========
[   30.516426] [wifi_pm]: set wl_reg_on 0 !
[   30.516639] mmc1: card 0001 removed
[   30.516917] [mmc]: sdc1 power_supply is null
[   30.716467] [wifi_pm]: set wl_reg_on 1 !
[   31.220109] wifi_platform_bus_enumerate device present 1
[   31.220126] ======== Card detection to detect SDIO card! ========
[   31.221830] [mmc]: sdc1 power_supply is null
[   31.281296] mmc1: new high speed SDIO card at address 0001
[   33.220268] failed to power up DHD generic adapter, 0 retry left
[   33.236792] wifi_platform_set_power = 0
[   33.236832] ======== PULL WL_REG_ON LOW! ========
[   33.236870] wifi_platform_bus_enumerate device present 0
[   33.236905] ======== Card detection to remove SDIO card! ========
[   33.237005] failed to power up DHD generic adapter, max retry reached**
[   33.237117] unregister wifi platform drivers
[   33.237155] wifi_platform_bus_enumerate device present 0
[   33.237189] ======== Card detection to remove SDIO card! ========
[   33.237281] dhd_module_init: Failed to load the driver, try cnt 2
[   33.237431] ======== bcm_wlan_set_plat_data ========
[   33.237478] bcm_wlan_get_oob_irq enter.
[   33.237527] gpio [202] map to virq [10] ok
[   33.237558] host_oob_irq: 10
[   33.237585] host_oob_irq_flags=0x414
[   33.237614] dhd_wifi_platform_load: Enter
[   33.237680] mmc1: card 0001 removed
[   33.237710] Power-up adapter 'DHD generic adapter'
[   33.237742] wifi_platform_set_power = 1
[   33.237766] ======== PULL WL_REG_ON HIGH! ========
[   33.237795] [wifi_pm]: set wl_reg_on 0 !
[   33.238725] [mmc]: sdc1 power_supply is null
[   33.437880] [wifi_pm]: set wl_reg_on 1 !
[   33.940091] wifi_platform_bus_enumerate device present 1
[   33.940107] ======== Card detection to detect SDIO card! ========
[   33.941811] [mmc]: sdc1 power_supply is null
[   34.001290] mmc1: new high speed SDIO card at address 0001
[   35.940256] failed to power up DHD generic adapter, 3 retry left
[   35.956758] wifi_platform_set_power = 0
[   35.956799] ======== PULL WL_REG_ON LOW! ========
[   35.956838] wifi_platform_bus_enumerate device present 0
[   35.956873] ======== Card detection to remove SDIO card! ========
[   35.956967] wifi_platform_set_power = 1
[   35.956998] ======== PULL WL_REG_ON HIGH! ========
[   35.957035] [wifi_pm]: set wl_reg_on 0 !
[   35.957593] mmc1: card 0001 removed
[   35.958514] [mmc]: sdc1 power_supply is null
[   36.157264] [wifi_pm]: set wl_reg_on 1 !
[   36.660105] wifi_platform_bus_enumerate device present 1
[   36.660128] ======== Card detection to detect SDIO card! ========
[   36.661788] [mmc]: sdc1 power_supply is null
[   36.717523] mmc1: new high speed SDIO card at address 0001
[   38.660161] failed to power up DHD generic adapter, 2 retry left
[   38.676678] wifi_platform_set_power = 0
[   38.676719] ======== PULL WL_REG_ON LOW! ========
[   38.676757] wifi_platform_bus_enumerate device present 0
[   38.676792] ======== Card detection to remove SDIO card! ========
[   38.676882] wifi_platform_set_power = 1
[   38.676913] ======== PULL WL_REG_ON HIGH! ========
[   38.676949] [wifi_pm]: set wl_reg_on 0 !
[   38.677493] mmc1: card 0001 removed
[   38.678404] [mmc]: sdc1 power_supply is null
[   38.877173] [wifi_pm]: set wl_reg_on 1 !
[   39.380092] wifi_platform_bus_enumerate device present 1
[   39.380108] ======== Card detection to detect SDIO card! ========
[   39.381789] [mmc]: sdc1 power_supply is null
[   39.445070] mmc1: new high speed SDIO card at address 0001
[   41.380266] failed to power up DHD generic adapter, 1 retry left
[   41.396802] wifi_platform_set_power = 0
[   41.396843] ======== PULL WL_REG_ON LOW! ========
[   41.396880] wifi_platform_bus_enumerate device present 0
[   41.396915] ======== Card detection to remove SDIO card! ========
[   41.397011] wifi_platform_set_power = 1
[   41.397042] ======== PULL WL_REG_ON HIGH! ========
[   41.397078] [wifi_pm]: set wl_reg_on 0 !
[   41.397646] mmc1: card 0001 removed
[   41.398576] [mmc]: sdc1 power_supply is null
[   41.599291] [wifi_pm]: set wl_reg_on 1 !
[   42.100118] wifi_platform_bus_enumerate device present 1
[   42.100134] ======== Card detection to detect SDIO card! ========
[   42.101858] [mmc]: sdc1 power_supply is null
[   42.161920] mmc1: new high speed SDIO card at address 0001
[   44.100289] failed to power up DHD generic adapter, 0 retry left
[   44.116815] wifi_platform_set_power = 0
[   44.116857] ======== PULL WL_REG_ON LOW! ========
[   44.116897] wifi_platform_bus_enumerate device present 0
[   44.116931] ======== Card detection to remove SDIO card! ========
[   44.117031] failed to power up DHD generic adapter, max retry reached**
[   44.117146] unregister wifi platform drivers
[   44.117185] wifi_platform_bus_enumerate device present 0
[   44.117219] ======== Card detection to remove SDIO card! ========
[   44.117310] dhd_module_init: Failed to load the driver, try cnt 1
[   44.117460] ======== bcm_wlan_set_plat_data ========
[   44.117507] bcm_wlan_get_oob_irq enter.
[   44.117557] gpio [202] map to virq [10] ok
[   44.117588] host_oob_irq: 10
[   44.117615] host_oob_irq_flags=0x414
[   44.117644] dhd_wifi_platform_load: Enter
[   44.117679] mmc1: card 0001 removed
[   44.117763] Power-up adapter 'DHD generic adapter'
[   44.117800] wifi_platform_set_power = 1
[   44.117829] ======== PULL WL_REG_ON HIGH! ========
[   44.117864] [wifi_pm]: set wl_reg_on 0 !
[   44.118600] [mmc]: sdc1 power_supply is null
[   44.317960] [wifi_pm]: set wl_reg_on 1 !
[   44.820096] wifi_platform_bus_enumerate device present 1
[   44.820110] ======== Card detection to detect SDIO card! ========
[   44.821782] [mmc]: sdc1 power_supply is null
[   44.881709] mmc1: new high speed SDIO card at address 0001
[   46.820251] failed to power up DHD generic adapter, 3 retry left
[   46.836772] wifi_platform_set_power = 0
[   46.836815] ======== PULL WL_REG_ON LOW! ========
[   46.836853] wifi_platform_bus_enumerate device present 0
[   46.836888] ======== Card detection to remove SDIO card! ========
[   46.836969] wifi_platform_set_power = 1
[   46.837001] ======== PULL WL_REG_ON HIGH! ========
[   46.837037] [wifi_pm]: set wl_reg_on 0 !
[   46.837629] mmc1: card 0001 removed
[   46.838537] [mmc]: sdc1 power_supply is null
[   47.037272] [wifi_pm]: set wl_reg_on 1 !
[   47.540085] wifi_platform_bus_enumerate device present 1
[   47.540100] ======== Card detection to detect SDIO card! ========
[   47.541768] [mmc]: sdc1 power_supply is null
[   47.601418] mmc1: new high speed SDIO card at address 0001
[   49.540274] failed to power up DHD generic adapter, 2 retry left
[   49.556823] wifi_platform_set_power = 0
[   49.556864] ======== PULL WL_REG_ON LOW! ========
[   49.556902] wifi_platform_bus_enumerate device present 0
[   49.556937] ======== Card detection to remove SDIO card! ========
[   49.557023] wifi_platform_set_power = 1
[   49.557054] ======== PULL WL_REG_ON HIGH! ========
[   49.557090] [wifi_pm]: set wl_reg_on 0 !
[   49.557687] mmc1: card 0001 removed
[   49.558607] [mmc]: sdc1 power_supply is null
[   49.757222] [wifi_pm]: set wl_reg_on 1 !
[   50.260188] wifi_platform_bus_enumerate device present 1
[   50.260235] ======== Card detection to detect SDIO card! ========
[   50.261993] [mmc]: sdc1 power_supply is null
[   50.322017] mmc1: new high speed SDIO card at address 0001
[   52.260202] failed to power up DHD generic adapter, 1 retry left
[   52.276714] wifi_platform_set_power = 0
[   52.276755] ======== PULL WL_REG_ON LOW! ========
[   52.276793] wifi_platform_bus_enumerate device present 0
[   52.276828] ======== Card detection to remove SDIO card! ========
[   52.276914] wifi_platform_set_power = 1
[   52.276944] ======== PULL WL_REG_ON HIGH! ========
[   52.276980] [wifi_pm]: set wl_reg_on 0 !
[   52.277541] mmc1: card 0001 removed
[   52.278455] [mmc]: sdc1 power_supply is null
[   52.478307] [wifi_pm]: set wl_reg_on 1 !
[   52.980211] wifi_platform_bus_enumerate device present 1
[   52.980260] ======== Card detection to detect SDIO card! ========
[   52.982024] [mmc]: sdc1 power_supply is null
[   53.042133] mmc1: new high speed SDIO card at address 0001
[   54.980212] failed to power up DHD generic adapter, 0 retry left
[   54.996713] wifi_platform_set_power = 0
[   54.996756] ======== PULL WL_REG_ON LOW! ========
[   54.996794] wifi_platform_bus_enumerate device present 0
[   54.996829] ======== Card detection to remove SDIO card! ========
[   54.996915] failed to power up DHD generic adapter, max retry reached**
[   54.997025] unregister wifi platform drivers
[   54.997063] wifi_platform_bus_enumerate device present 0
[   54.997098] ======== Card detection to remove SDIO card! ========
[   54.997193] dhd_module_init: Failed to load the driver, try cnt 0
[   54.997338] dhd_module_init: Failed to load driver max retry reached**
[   54.997379] dhd_module_init: Exit err=-19
[   54.997547] mmc1: card 0001 removed
[   54.998431] [mmc]: sdc1 power_supply is null
[   55.093672] dhd_module_init: in
[   55.093694] ======== bcm_wlan_set_plat_data ========
[   55.093712] bcm_wlan_get_oob_irq enter.
[   55.093728] gpio [202] map to virq [10] ok
[   55.093735] host_oob_irq: 10
[   55.093742] host_oob_irq_flags=0x414
[   55.093750] dhd_wifi_platform_load: Enter
[   55.093796] Power-up adapter 'DHD generic adapter'
[   55.093808] wifi_platform_set_power = 1
[   55.093815] ======== PULL WL_REG_ON HIGH! ========
[   55.093825] [wifi_pm]: set wl_reg_on 0 !
[   55.293864] [wifi_pm]: set wl_reg_on 1 !
[   55.800079] wifi_platform_bus_enumerate device present 1
[   55.800095] ======== Card detection to detect SDIO card! ========
[   55.801766] [mmc]: sdc1 power_supply is null
[   55.862623] mmc1: new high speed SDIO card at address 0001
[   57.800333] failed to power up DHD generic adapter, 3 retry left
[   57.816844] wifi_platform_set_power = 0
[   57.816886] ======== PULL WL_REG_ON LOW! ========
[   57.816924] wifi_platform_bus_enumerate device present 0
[   57.816959] ======== Card detection to remove SDIO card! ========
[   57.817042] wifi_platform_set_power = 1
[   57.817073] ======== PULL WL_REG_ON HIGH! ========
[   57.817108] [wifi_pm]: set wl_reg_on 0 !
[   57.817634] mmc1: card 0001 removed
[   57.818522] [mmc]: sdc1 power_supply is null
[   58.021371] [wifi_pm]: set wl_reg_on 1 !
[   58.530068] wifi_platform_bus_enumerate device present 1
[   58.530088] ======== Card detection to detect SDIO card! ========
[   58.531689] [mmc]: sdc1 power_supply is null
[   58.586807] mmc1: new high speed SDIO card at address 0001
[   60.530192] failed to power up DHD generic adapter, 2 retry left
[   60.546674] wifi_platform_set_power = 0
[   60.546717] ======== PULL WL_REG_ON LOW! ========
[   60.546755] wifi_platform_bus_enumerate device present 0
[   60.546790] ======== Card detection to remove SDIO card! ========
[   60.546880] wifi_platform_set_power = 1
[   60.546912] ======== PULL WL_REG_ON HIGH! ========
[   60.546948] [wifi_pm]: set wl_reg_on 0 !
[   60.547465] mmc1: card 0001 removed
[   60.548375] [mmc]: sdc1 power_supply is null
[   60.751289] [wifi_pm]: set wl_reg_on 1 !
[   61.260051] wifi_platform_bus_enumerate device present 1
[   61.260066] ======== Card detection to detect SDIO card! ========
[   61.261678] [mmc]: sdc1 power_supply is null
[   61.326151] mmc1: new high speed SDIO card at address 0001
[   63.260066] failed to power up DHD generic adapter, 1 retry left
[   63.276541] wifi_platform_set_power = 0
[   63.276583] ======== PULL WL_REG_ON LOW! ========
[   63.276621] wifi_platform_bus_enumerate device present 0
[   63.276655] ======== Card detection to remove SDIO card! ========
[   63.276742] wifi_platform_set_power = 1
[   63.276774] ======== PULL WL_REG_ON HIGH! ========
[   63.276810] [wifi_pm]: set wl_reg_on 0 !
[   63.277339] mmc1: card 0001 removed
[   63.278224] [mmc]: sdc1 power_supply is null
[   63.481294] [wifi_pm]: set wl_reg_on 1 !
[   63.990052] wifi_platform_bus_enumerate device present 1
<略>
[  356.596718] ======== PULL WL_REG_ON LOW! ========
[  356.596755] wifi_platform_bus_enumerate device present 0
[  356.596790] ======== Card detection to remove SDIO card! ========
[  356.596881] wifi_platform_set_power = 1
[  356.596912] ======== PULL WL_REG_ON HIGH! ========
[  356.596948] [wifi_pm]: set wl_reg_on 0 !
[  356.597508] mmc1: card 0001 removed
[  356.598394] [mmc]: sdc1 power_supply is null
[  356.801336] [wifi_pm]: set wl_reg_on 1 !
[  357.310094] wifi_platform_bus_enumerate device present 1
[  357.310108] ======== Card detection to detect SDIO card! ========
[  357.311794] [mmc]: sdc1 power_supply is null
[  357.371976] mmc1: new high speed SDIO card at address 0001
root@orangepizero:~#

Orange Pi PCなどAllwinner H3向けのOpenELECについて(2016/11/08版)

Linuxをメディアプレイヤーとして使う方法として、「OpenELEC」というメディアプレイヤーに特化したディストリビューションがあります。
(2016年に分裂騒動があり「LibreELEC」が派生しています)

これをOrange Pi PCなどのAllwinner H3向けに移植したものについて、去年「Orange Pi PCをメディアプレイヤー(OpenELEC)にする」にて紹介しました。

公式スレッド「Openelec Build for OPI PC and 2 now with HW decoding
各機種用イメージ配布場所「Latest prebuilt images
初心者向けQ&A「[FAQ] Openelec OPi for beginners

あれから約1年。
久しぶりに使ってみました。
今回はOrange Pi Oneで実験です。

・初回起動は時間がかかる
 ロゴ画面がずっと変わらず表示されるが、正常動作中です。
 とりあえず5分待ちましょう

・ヒートシンクは必須。ファン付けるの推奨
 フォーラムに「heatsink strongly recomended」と書かれていますが
 ヒートシンクを付けていてもめちゃくちゃ発熱しています。
 ちゃんと冷やさないと熱で死にそうです。

・起動直後の設定は英語表示
 日本語表示にするためには「Linux(ラズパイ/OrangePiなど)のKodiで日本語を表示させる方法」で設定すること

・起動直後の設定だとHDMI経由で音が鳴らない
 初期設定では、音声出力がアナログオーディオとなっているためHDMI接続していても音声が出てこない。
 Kodiの「設定」-「システム」-「オーディオハードウェア」にて
 「オーディオ出力デバイス」を「HDMI」に変更することで、HDMI経由で音声出力される。

・動画再生の一部が変?
 DVDサイズの動画を出力したところ、本来の画質から落ちた状態のものを引き延ばした感じで表示される
 設定変更箇所があるのか分からなかった。

・HDMI経由のリモコン操作が怪しい
 2016/08/16以降のバージョンからHDMI CEC対応になっているのだが動きが怪しい
 今回、試した際は、初回ブートし、途中までは動いていたものの、突如動作しなくなり
 それ以後は電源入れ直しても動いていない状態となりました。
 自動アップデート関連でなにかあったのだろうか?
 FAQにも書いてありますが、動く環境と動かない環境があるようで、作者の方ではお手上げなようです。

 なお、HDMIのリモコンが動かない場合は、マウスで操作するしかありません。
 もしくは、赤外線リモコンを登録して使う、という方法もあります。

Allwinner H5搭載のOrange Pi PC2が$23.13で発売開始

2016/11/07追記

なんか有名どこでOrange Pi PC2がテキトーな解説付きで紹介されているので、警告文を追加しておきます。

Orange Pi PC2のOSは、ラズパイのものとは別です。ラズパイ用のものがそのまま使えるわけではありません。
「Raspberry Piのイメージが使用可能だ」とか書いてる記事ありますが、嘘が混じっています。
Raspberry Pi公式が出しているものを流用しつつKernelを含むドライバ周りを入れ替えたものを使っています。つまり、同じではありません。
ハードウェアを触らないソフトウェアならだいたい動きますが、GPIO接続で外部機器を動かすなんていうと、いろんな障害が出てきます。
まず、kernelが異なるので、バイナリ配布のドライバは使えません。
ソース配布のドライバをコンパイルすれば使える可能性がありますが、kernelのバージョンが異なることでうまく動かない可能性があります。
また、大抵そういうドライバは、ドキュメント類もラズパイ公式向けにカスタマイズされていて、それ以外の環境で使うための手順がわかりにくいような記述になっていることが多いです。
このため、初心者にはとても厳しいです。

Orange Pi PC2で使っているAllwinner H5は、元となるAllwinner A64としてはメインカーネルへの対応が始まったばかりです。
Allwinner H5に至っては、まだ対応も始まっていません。
Linux-sunxi.orgのAllwinner系SoCのメインラインカーネルへの対応状況表)
このため、Linux kernelにバグやセキュリティの問題が発覚した場合に、それがすぐに反映される体制になっていません。
インターネット上にそのまま置くには適しません。

Orange Pi PC2で使っているAllwinner H5は、Allwinner社のSoCで始めてMali-450MPを採用した機種です。元となるAllwinner A64ではMali-400MPを使っていたものがバージョンアップされており、性能面では上がっているはずなのですが、GPUドライバがこなれているかどうかが、現時点ではまったく不明です。性能が発揮されない可能性もあることを留意する必要があります。
(なお、1年ぐらい先行してAmlogic社のS805というSoCでMali-450MPは採用されていますので、ドライバが動かない、ということはないとは思います)

マインクラフトは動きません。
マインクラフト Pi EditionはBroadcomのGPU特化で作られているため、Mali-400機種では動作しません。
マインクラフト Java(Linux版とかいてあるやつ)は、ログインし、アップデートのダウンロードまでは成功しますが、その後のゲーム画面の起動プロセスでIntelアーキテクチャ用のバイナリを読み込み起動できません。(ライブラリのバイナリを差し替えて起動させるスクリプト例や、lwjglライブラリを差し替える例、がありますが、バイナリ差し替えは成功せず、また指定の場所にファイルを置いても自動ダウンロードのファイルを読み込むため起動に成功していません)

以上を考慮した上で、導入を検討してください。


Allwinner H2+搭載のOrange Pi Zeroが発売されたばかりですが、64bitのCortex-A53コアを使ったAllwinner H5を搭載したOrange Pi PC2が販売開始です。

New! Orange Pi PC2 H5 64bit Support the Lubuntu linux and android mini PC Beyond Raspberry Pi 2 Wholesale is available

orangepipc2-1
・Cortex-A53を4コア積んだ「Allwinner H5」を使用
  Pine64で使用しているAllwinner A64の類型
  Jide Remix miniで使っているAllwinner H64との関係性が不明。名称変更されただけ?
・GPUはA64のMali400MP2(2コア)から、Mali450(6コア)にアップグレード
  4K出力向けに強化
・RAM 1GB
・ストレージはmicroSD(オンボードで8MBのSPI Flashがあるが、8MB8Mbitなので・・・)
・1000Mb NIC搭載
・電源はいつものようにEIAJ#2コネクタ(PSPと同じ形状のもの)
・基板のコネクタ配置はOrange Pi PC / Orange Pi PC Plusとほぼ同じ

とりあえず、1個発注してみました。


2016/11/07追記

Orange Pi PC2の角度が異なる斜め配列のチップがあることについて話題のようです。

いろいろ考察してる人がいるようですが、実際のところは、旧機種であるOrange Pi PCと比較すれば一目瞭然。
基板サイズとコネクタ配置をそのままに、SoC変更と追加要素のSPI FlashとNIC PHYチップRTL8211Eを載せるために最小限の変更を行った結果、というやつですね。

Orange Pi PC Orange Pi PC2
Allwinner H3 (Cortex-A7*4コア) Allwinner H5 (Cortex-A53*4コア)
orangepipc-2 orangepipc2-2

2016/11/14追記
届いたので記事を書きました→「Orange Pi PC2が届いたのでAndroidイメージで動かしてみた
現時点ではLinuxイメージはリリースされていません。


Allwinner H5搭載ボード系のリスト

(表へのリンク)

Allwinner H2搭載のOrange Pi Zeroが送料込み$10.10で登場

2016/11/07追記

なんか有名どこでOrange Pi Zeroがテキトーな解説付きで紹介されているので、警告文を追加しておきます。

Orange Pi Zeroは、ラズパイZeroの変わりに使えるモノではありません。

Orange Pi Zeroは、HDMI端子がないのでディスプレイ出力が出来ません。

Orange Pi ZeroのOSは、ラズパイのものとは別です。ラズパイ用のものがそのまま使えるわけではありません。
kernelが異なるので、バイナリ配布のドライバは使えません。
ソース配布のドライバをコンパイルすれば使える可能性がありますが、kernelのバージョンが異なることでうまく動かない可能性があります。

Orange Pi Zeroで使っているAllwinner H3は、Linux kernelのメインラインで完全対応していません。
(徐々に取り入れられていますが、Linux kernel 4.8でもまだ完全ではありません。Linux-sunxi.orgのAllwinner系SoCのメインラインカーネルへの対応状況表)
このため、Linux kernelにバグやセキュリティの問題が発覚した場合に、それがすぐに反映される体制になっていません。
インターネット上にそのまま置くには適しません。

以上を考慮した上で、導入を検討してください。


Orange Piの新製品、Orange Pi Zeroが販売開始です。
New Orange Pi Zero H2 Quad Core Open-source development board beyond Raspberry Pi
orangepizero-1

いままでのOrange Piシリーズからの差分は・・・
・SoCがAllwinner H3Allwinner H2 (より廉価モデルへ)
HDMI削除(シリアルコンソールかコンポジットビデオ出力)
・電源コネクタ廃止。microUSBでの電源供給に変更
・GPIOが26ピンに
・無線LANにAllwinner XR819という初物チップを採用
・PoEに対応。ただし標準設定ではoff

・標準モデル(Standard)はメモリ256MBで、512MBもある、ということなのだが、今回販売されたのはどちらのモデルなのか明記はなし。は+2ドルとなりました。

とりあえず、1個購入してみました。
いつ届くかな・・・そして、メモリは256MB or 512MBどちらかな?
  → 出荷しました連絡があってから、512MB版が販売開始されました・・・クソ

ということで、256MB版は$10.10512MB版は$12.10、ということになりました。

2016/11/11追記:発注から8日で到着し、起動試験などを行いました→「Allwinner H2+搭載のOrange Pi Zeroが来た!


Allwinner H3搭載ボード系のリスト

(表へのリンク)


Orange Pi i96というCortex-A5搭載のボードが$9.99で登場予定

昨日から始まったLinaro Connect Las Vegas 2016 (LAS16)のカンファレンスの冒頭「LAS16-100K1 Welcome Keynote」にて、新しいOrange Piシリーズの話が出た模様。

(ネタ元は、今回もcnxsoftware:Orange Pi Zero and Orange Pi i96 96Boards IoT Edition Boards Coming Soon)

問題のプレゼンは↓

96Boards IoT Editionとして「Orange Pi i96」が登場する模様。
今回は、Allwinnerではなく、RDA Micro社Cortex-A5搭載のSoCを使用
cnxsoftwareによれば「RDA8810PL」ではないかとのこと。
RAMを2GB2Gbits(256MB)つんで、ストレージは4GB4Gbits(512MB)と、Orange Pi Oneと一部拡充した内容。
おそらくHDMIは積んでないと想定される。
電源について「VBAT」とあるのでバッテリーへの充電制御部分も付いているのだとすると面白い感じで・・・

はたして、登場はいつになることやら???

なお、同じcnxsoftwareで取り上げられているAllwinner H2搭載のOrange Pi Zeroの方は、あんまり興味はないかなぁ・・・