Armbianの初期設定項目

いつもなんとなくやっちゃってるArmbianの初期設定
忘れないようにメモ書きを作成

その1: rootの初期パスワード
「1234」
初回ログイン時に変更する

その2: とりあえずOSアップデート
Armbian自体の更新+Ubuntu/Debianの更新を実施
「apt-get update」「apt-get upgrade」

その3: NFSクライアントインストール
うちの環境ではOrange Pi Plus2によるNFSサーバがあり、データ共有をしているのでnfs-commonをインストール
「apt-get install nfs-common」

その4: Locale/Timezone設定
言語設定
「dpkg-reconfigure locales」
タイムゾーン設定
「dpkg-reconfigure tzdata」
キーボードの言語設定(キー配列)
「dpkg-reconfigure keyboard-configuration」

その5:動作CPU範囲設定
ファイル「/etc/default/cpufrequtils」にて記載。
機種によって異なり、Orange Pi Oneでは下記の様に、「480MHz~1200MHz」がCPUの動作範囲となる

ENABLE=true
MIN_SPEED=480000
MAX_SPEED=1200000
GOVERNOR=interactive

ファイルを編集した場合は、「service cpufrequtils restart」で適用

Allwinner H5搭載Orange Pi PC2向けにArmbianの開発中版が出た

Allwinner H5搭載のOrange Pi PC2で動くLinux OSは、Orange Pi公式が出しているDebianとUbuntuだけでした。

Orange Pi公式の問題点は1つ。
kernelのアップデート提供実績がほぼ無い。
ある場合はOSイメージまるごと配布。

こんなんじゃ、継続運用に使えないわけです。
Allwinner系を中心にARM SoC向けにDebian/Ubuntuベースのディストリビューションとして「Armbian」というものがあります。
Allwinner H3搭載のOrange Pi向けも各機種出てますが、この度、Orange Pi PC2向けも登場しました。

Armbain for Orange Pi PC2

現状は、まだNightly版ということで開発中のモノしかありません。
「Warning: nightly downloads are automated untested builds and no end user support is provided for them!」とあるように、とりあえず出している、というやつです。

しかしながら、X-Windowが表示されるDesktop版も、しばらく使ってみた感じでは問題無く動いているようですし、一般的な用途では使えそうです。
ただ、ヒートシンクもしくは冷却ファンが必須です。
標準状態ではかなり発熱します。

2017/02/07時点でダウンロード可能な「Armbian_5.24.170202_Orangepipc2_Ubuntu_xenial_dev_4.10.0_desktop.7z」は、Ubuntu 16.04.1で、Linux kernelは4.10.0と、現在開発中の最新Linux kernelをベースとしています。

Windows IoTに対応したOrange Pi Winがリリースされる???

githubのOrange Pi LibraにあるOrange Piボード用のSDKには「Orange Pi H5 SDK」「Orange Pi H2 SDK」「Orange Pi A64 SDK」の3種類がある。

Orange Pi A64 SDKは、H5を採用する前のテストボード用で、製品はリリースされない、と思っていたのですが、build.shをよくよく見てみると気になる記載が・・・

build.shの95行~99行目に「OrangePi Win」と「OrangePi 3(internal version)」の2機種が・・・

内部向けと書かれているOrange Pi 3はともかく、気になるのは、Orange Pi Win

同じくAllwinner A64を採用しているBananaPiのBPI-M64とPINE64は、Windows IoTに対応しています。(参考:Allwinner A64搭載ボードのBPI-M64とPINE64がWindows 10 IoTに対応開始。記事は2016/08/04に書いたものだが、2017/01/06時点でもGet Startedには記載が無いがgithubを見に行くと手順書は存在している)

これは、Orange Piの方でもWindows IoTに対応したボードを出そうという意気込みなのか?と期待してしまいます。


ちなみに、当blogでは記事にしていませんでしたが、2016/12/24にFriendlyARMからAllwinner A64搭載のNanoPi A64の情報も出ています。

FriendlyARMのAllwinner A64 SDK:「https://github.com/friendlyarm/a64_lichee
搭載ボード情報:「NanoPi A64

NanoPi A64の最大のトピックは、Allwinner A64搭載ボードでは最小サイズ、といったところでしょうか

Allwinner H5が登場したとこで、Allwinner A64の出番が減るかと思っていたのですが、PINE64を始めとした製品が出てから1年以上が経過したいまになって、採用製品が増え出す、というのはちょっと意外な感じです。

Allwinner H5搭載のOrangePi Zero Plus2とH3搭載のNanoPi M1 Plus

Orange Pi提供のH5 SDK(https://github.com/orangepi-xunlong/OrangePi_H5SDK)をコンパイルしてみたら、ボードの選択肢に奇妙なものが・・・

内部用という「OrangePi Prima」はいいとして、もう1つの「Orange Pi Zero Plus」
Zero系ってことはHDMIなしなのかな?とfexファイルを見てみると・・・
・100Mb NIC
・WiFiとBluetoothがオンボード
・HDMI関連については記述が特に分からない

まぁ、予想通りな感じのもの。

そして、FriendlyARM提供のH3 SDK(https://github.com/friendlyarm/h3_lichee)の更新ログを見ると、2016/10/21に「board: add a new board nanopi-m1-plus」というものが・・・
M1とM1 Plusのfexファイルを比較すると・・・
・WiFiとBluetoothがオンボード
・1000Mb NIC搭載
・SATAコネクタっぽいものあり?

Orange Pi Plusみたいな立場のボードですね。


Orange Pi PC2とOrange Pi Zero Plus2のfexファイル比較

osakanataro@ubuntu16:/work/h5/OrangePi_H5SDK$ diff -u ./external/sys_config/OrangePiH5_PC2_sys_config.fex ./external/sys_config/OrangePiH5_Zero_Plus2_sys_config.fex
--- ./external/sys_config/OrangePiH5_PC2_sys_config.fex 2016-12-20 10:53:50.176568908 +0900
+++ ./external/sys_config/OrangePiH5_Zero_Plus2_sys_config.fex  2016-12-20 10:55:56.841989102 +0900
@@ -3,7 +3,7 @@
 ; ?明: 脚本中的字符串区分大小写,用?可以修改"="后面的数?,但是不要修改前面的字符串
 ; 描述gpio的形式:Port:端口+?内序号<功能分配><内部?阻状?><??能力><?出?平状?>
 ;---------------------------------------------------------------------------------------------------------
-; Platform: OrangePi PC2
+; Platform: OrangePi Zero Plus2

 [product]
 version = "100"
@@ -197,7 +197,7 @@
 ;   rx-delay    --  receive clock delay:  0~31                                 ;
 ;------------------------------------------------------------------------------;
 [gmac0]
-gmac0_used         = 1
+gmac0_used         = 0
 phy-mode           = "rgmii"
 ;gmac_rxd3          = port:PD00<2><default><3><default>
 ;gmac_rxd2          = port:PD01<2><default><3><default>
@@ -836,7 +836,7 @@


 [sdc1]
-sdc1_used          = 0
+sdc1_used          = 1
 bus-width      = 4
 sdc1_clk           = port:PG00<2><1><3><default>
 sdc1_cmd           = port:PG01<2><1><3><default>
@@ -929,10 +929,10 @@
 gpio_used              = 1
 gpio_num               = 2
 gpio_pin_1             =  port:PL10<1><default><default><0>
-gpio_pin_2             =  port:PA20<1><default><default><1>
+gpio_pin_2             =  port:PL06<1><default><default><1>
 ;gpio_pin_3            =  port:PA13<1><default><default><1>
 normal_led             = "gpio_pin_1"
-standby_led            = "gpio_pin_2"
+;standby_led           = "gpio_pin_2"
 ;network_led           = "gpio_pin_3"

 ;--------------------------------
@@ -1049,15 +1049,15 @@
 ;wlan_hostwake:     wlan to wake-up host
 ;--------------------------------------------------------------------------------
 [wlan]
-wlan_used           = 0
+wlan_used           = 1
 wlan_busnum         = 1
 wlan_usbnum         = 3
 clocks             = "&clk_losc_out"
 wlan_power          = "vcc-wifi"
 wlan_io_regulator   = "vcc-wifi-io"
 ;wlan_en             = port:PC14<1><default><default><0>
-wlan_regon          = port:PC14<1><default><default><0>
-wlan_hostwake       = port:PL07<0><default><default><0>
+wlan_regon          = port:PA09<1><default><default><0>
+wlan_hostwake       = port:PL07<6><default><default><0>

 ;--------------------------------------------------------------------------------
 ;bluetooth configuration
@@ -1068,11 +1068,11 @@
 ;bt_rst_n:          power up/down internal regulators used by BT section
 ;--------------------------------------------------------------------------------
 [bt]
-bt_used             = 0
+bt_used             = 1
 ;clocks             = "&clk_losc_out"
 bt_power            = "vcc-wifi"
 bt_io_regulator     = "vcc-wifi-io"
-bt_rst_n            = port:PC16<1><default><default><0>
+bt_rst_n            = port:PA10<1><default><default><0>

 ;--------------------------------------------------------------------------------
 ;bluetooth lpm configuration
@@ -1082,10 +1082,10 @@
 ;bt_hostwake:       bt device wake-up host
 ;--------------------------------------------------------------------------------
 [btlpm]
-btlpm_used          = 0
+btlpm_used          = 1
 uart_index          = 1
-bt_wake             = port:PC15<1><default><default><1>
-bt_hostwake         = port:PL06<6><default><default><0>
+bt_wake             = port:PA20<1><default><default><1>
+bt_hostwake         = port:PL02<6><default><default><0>

 ;--------------------------------------------------------------------------------
 ;3G configuration
osakanataro@ubuntu16:/work/h5/OrangePi_H5SDK$

NanoPi M1とNanoPi M1 Plusのfexファイル比較

osakanataro@ubuntu16:/work/nanopi/h3_lichee$ ^diff^diff -u
diff -u ./tools/pack/chips/sun8iw7p1/configs/nanopi-h3/boards/sys_config_nanopi_m1.fex ./tools/pack/chips/sun8iw7p1/configs/nanopi-h3/boards/sys_config_nanopi_m1_plus.fex
--- ./tools/pack/chips/sun8iw7p1/configs/nanopi-h3/boards/sys_config_nanopi_m1.fex      2016-12-20 20:27:23.160150836 +0900
+++ ./tools/pack/chips/sun8iw7p1/configs/nanopi-h3/boards/sys_config_nanopi_m1_plus.fex 2016-12-20 20:27:23.180150100 +0900
@@ -22,7 +22,7 @@
 logical_start = 40960
 sprite_work_delay = 500
 sprite_err_delay = 200
-sprite_gpio0 = port:PA15<1><default><default><default>
+;sprite_gpio0 = port:PA15<1><default><default><default>
 next_work = 3

 [box_start_os]
@@ -40,7 +40,7 @@
 gpio1 = port:PG11<1><default><default><1>

 [recovery_para]
-used = 1
+used = 0
 mode = 2
 recovery_key = port:PL04<0><default><default><default>

@@ -176,6 +176,8 @@
 uart_type = 4
 uart_tx = port:PA00<2><1><default><default>
 uart_rx = port:PA01<2><1><default><default>
+uart_rts = port:PA02<2><1><default><default>
+uart_cts = port:PA03<2><1><default><default>

 [uart3]
 uart_used = 1
@@ -183,6 +185,8 @@
 uart_type = 4
 uart_tx = port:PA13<3><1><default><default>
 uart_rx = port:PA14<3><1><default><default>
+uart_rts = port:PA15<1><2><default><default>
+uart_cts = port:PA16<3><2><default><default>

 [spi0]
 spi_used = 1
@@ -339,17 +343,35 @@
 tv_dac_src0 = 0

 [pwm0_para]
-pwm_used = 1
+pwm_used = 0
 pwm_positive = port:PA05<3><0><default><default>
-
-[pwm1_para]
-pwm_used = 1
-pwm_positive = port:PA06<3><0><default><default>
+;       If set gamc_phy to use = 2

 [gmac0]
-gmac_used = 2
+gmac_used = 1
+gmac_rxd3          = port:PD00<2><default><3><default>
+gmac_rxd2          = port:PD01<2><default><3><default>
+gmac_rxd1          = port:PD02<2><default><3><default>
+gmac_rxd0          = port:PD03<2><default><3><default>
+gmac_rxclk         = port:PD04<2><default><3><default>
+gmac_rxdv          = port:PD05<2><default><3><default>
+gmac_rxerr         = port:PD06<2><default><3><default>
+gmac_txd3          = port:PD07<2><default><3><default>
+gmac_txd2          = port:PD08<2><default><3><default>
+gmac_txd1          = port:PD09<2><default><3><default>
+gmac_txd0          = port:PD10<2><default><3><default>
+gmac_crs           = port:PD11<2><default><3><default>
+gmac_txclk         = port:PD12<2><default><3><default>
+gmac_txen          = port:PD13<2><default><3><default>
+gmac_txerr         = port:PD14<2><default><3><default>
+gmac_col           = port:PD15<2><default><3><default>
+gmac_mdc           = port:PD16<2><default><3><default>
+gmac_mdio          = port:PD17<2><default><3><default>
 gmac_power1 =

+[gmac_phy_power]
+gmac_phy_power_en   = port:PD06<1><default><default><0>
+
 [csi0]
 vip_used                 = 1
 vip_mode                 = 0
@@ -414,7 +436,7 @@

 [mmc0_para]
 sdc_used = 1
-sdc_detmode = 3
+sdc_detmode = 1
 sdc_buswidth = 4
 sdc_clk = port:PF02<2><1><2><default>
 sdc_cmd = port:PF03<2><1><2><default>
@@ -430,7 +452,7 @@
 sdc_power_supply = "none"

 [mmc1_para]
-sdc_used = 0
+sdc_used = 1
 sdc_detmode = 4
 sdc_buswidth = 4
 sdc_clk = port:PG00<2><1><3><default>
@@ -449,7 +471,7 @@
 sdc_ddrmode = 1

 [mmc2_para]
-sdc_used = 0
+sdc_used = 1
 sdc_detmode = 3
 sdc_buswidth = 8
 sdc_clk = port:PC05<3><1><2><default>
@@ -549,7 +571,7 @@
 lpo_use_apclk =

 [wifi_para]
-wifi_used = 0
+wifi_used = 1
 wifi_sdc_id = 1
 wifi_usbc_id = 5
 wifi_usbc_type = 1
@@ -558,11 +580,12 @@
 wl_host_wake_invert = 0

 [bt_para]
-bt_used = 0
-bt_uart_id = 1
-bt_rst_n =
-bt_wake =
-bt_host_wake =
+bt_used = 1
+bt_uart_id = 3
+bt_uart_baud = 115200
+bt_rst_n = port:PG13<1><default><default><0>
+bt_wake = port:PA08<1><default><default><0>
+bt_host_wake = port:PA07<0><default><default><0>
 bt_host_wake_invert = 0

 [pcm0]
osakanataro@ubuntu16:/work/nanopi/h3_lichee$

マインクラフトをOrange PiのLinuxで動かすことができるか?

結論から述べると、2016/12/02現在、Orange PiのLinux系では動きません。
Allwinner H3搭載のOrange Pi PC、および、Allwinner H5搭載のOrange Pi PC2共に動きません。

マインクラフトをラズベリーパイで動かす、という話がある。
いまはRaspbianに標準でマインクラフトが入っているので簡単、と書いてある。

このRaspbianにインストールされているマインクラフトは「Minecraft Pi Edition」というものであり、通常のパソコン版とは異なるものとなっている。
タブレットなど用のMinecraft Pocket Editionをベースに開発されているが、3年以上アップデートされていないため、機能差が結構でている。

このMinecraft Pi Editionであるが、公式ページからminecraft-pi-0.1.1.tar.gzをダウンロードすることができる。
バイナリを調べるとARM用で、一見するとOrange Piでも動作するように見えます。

しかし、実行してみるとBroadcomのGPUデバイスにアクセスしようとし、起動に失敗します。
BroadcomのSoCを使用しているラズベリーパイ(Raspberry Pi/Pi2/Pi3)以外では動作しないようです。

さて・・・パソコン版のMinecraftについて、よく見てみると、Windows用、MacOSX用とLinux用と3種類あります。
そしてLinux用は、Javaのパッケージでの提供となっています。
Orange PiにもJavaはインストールできるので、実行できそうな感じに見えるでしょう。

実際、アップデートの実行と、起動の途中までは成功します。
しかし、グラフィック操作関連のライブラリ読み込み時にx86用のバイナリを読み込んでしまい、起動に失敗します。

過去のMinecraftでは、ファイルを強制的に置き換えることで起動に成功していたようなのですが、最近のバージョンでは使えないようです。
jarファイル置き換え&チェックサムファイル置き換えを行っても、起動時に元のファイルをダウンロードしなおしてしまいます。

うまいことやる方法はないものでしょうかねぇ・・・

なお・・・Orange PiのOSをAndroidに書き換えて、Android版のMinecraft Pocket Editionを使う、という手はあります。