OrangePi-PCを使ってみる

Armbianのインストール

Raspberry Piの大成功以降、類似の製品が多数発表されました。
それら互換ボードの中でも、OrangePiシリーズは成功した部類に入ると思います。

OrangePi-PCのLinuxイメージはいくつか公開されています。
XunlongからもUbuntuとDebianのイメージが提供されていますが、Google Driveの共有フォルダーなので、
滅茶苦茶ダウンロードに時間が掛かります。
Armbianは2015年頃からOrangePiシリーズをサポートし続けています。
そこで、Armbianのインストールを紹介します。

Armbianのイメージファイルはこちらか らダウンロードすることができます。
イメージファイルはxz形式で圧縮されています。
7-Zipなどを使って使って圧縮を解凍し、Win32DiskImagerでイメージをSD-CARDに書き込みます。
Stretch(Linux 5.4)のインストール手順はこちらで紹 介しています。
Stretch(Linux 5.7)/Buster(Linux 5.8)のインストール手順はこちらで紹介し ています。

ArmbianにはDebianとUbuntuのLinuxが存在します。
さらにDebianではStretch、Buster、Bullseyeで同じバージョンのLinuxが存在しています。
時系列に並べるとこの様になります。
・Armbian_20.05.2_Orangepipc_stretch_current_5.4.43.img.xz
・Armbian_20.05.2_Orangepipc_buster_current_5.4.43.img.xz
・Armbian_20.05.2_Orangepipc_bullseye_current_5.4.43.img.xz
・Armbian_20.08_Orangepipc_stretch_current_5.7.15.img.xz
・Armbian_20.08_Orangepipc_buster_current_5.7.15.img.xz
・Armbian_20.08_Orangepipc_bullseye_current_5.7.15.img.xz
・Armbian_20.08.1_Orangepipc_buster_current_5.8.5.img.xz

UbuntuではBionicとFocalで同じバージョンのLinuxが存在しています。
時系列に並べるとこの様になります。
・Armbian_20.05.1_Orangepipc_bionic_current_5.4.43.img.xz
・Armbian_20.05.1_Orangepipc_focal_current_5.4.43.img.xz
・Armbian_20.05.2_Orangepipc_focal_current_5.4.43.img.xz
・Armbian_20.05.4_Orangepipc_focal_current_5.4.45.img.xz
・Armbian_20.08_Orangepipc_bionic_current_5.7.15.img.xz
・Armbian_20.08_Orangepipc_focal_current_5.7.15.img.xz
・Armbian_20.08.1_Orangepipc_focal_current_5.8.5.img.xz

以前は「Armbia_5.xx_Orangepipc_コードネーム_カーネルバージョン」のネーミングルールでしたが、
2019年末から「Armbian_yy.mm[.d]_Orangepipc_コードネーム_カーネルバージョン」のネーミングルールに変わ り、
リリース時期が分かり易くなり ました。

過去のイメージは、こちらにアー カイブされています。



Armbianのログインは幾つか選択肢が有ります。

@HDMIモニターを使ってログインする
JessieではHDMIモニターに正しく表示できない問題が有りましたが、Stretchからは解消されています。
HDMI-DVI変換ケーブル+DVIモニターでも、正しく表示されるようになりました。
また、こちらで紹介している5インチHDMIモニターも使えます。

AUSB-シリアル変換機+TeraTermのシリアルコンソールを使ってログインする
OrangePiシリーズはいずれのモデルでも、デフォルトでオンボード上のコンソールポートが有効になっています。
通信速度は115200bpsです。
USB-シリアル変換機が必要になりますが、ブートシーケンスがずらずら表示されるので、一番確実な方法です。
私はいつもこの方法でインストールしています。

BUSB-OTGコンソールを使ってログインする
ZEROなどのHDMIポートを持たないモデルでは、デフォルトでUSB-OTGコンソールが有効になっていることが有ります。
但し、有効になっているイメージと有効になっていないイメージが有るようで、100%ではありません。
USB-OTGコンソールが有効になっているイメージの場合、WindowsやLinuxなどのホストマシンから給電すると、
いきなり新しいコンソールデバイスが出現します。

CTeraTermのsshを使ってログインする
Armbianは最初からsshによるリモートログインが有効になっていますが、
最初の起動時にはIPアドレスが分からないので、sshでリモートログインすることができません。
別のLinuxマシン(例えばRaspberryなど)が必要になりますが、こちらの 方法でIPアドレスを知ることができます。



Armbianの各種設定はarmbian-configを使って変更することができます。
リリース当初は不安定なところが有りましたが、最近は安定して動きます。
起動すると以下の様にdialogベースの画面が表示されます。
armbian-configの実態は/usr/bin/armbian-configのshellスクリプトで、
こちらに 公式ドキュメントが公開されています。
このツールは結構頻繁に更新されています。


Systemメニューでは以下の設定を行うことができます。


一番よく使うのはHardwareの有効/無効の切り替えです。
i2cやSPIを有効にすることができます。
結果は/boot/config.txtに反映されます。


NetworkメニューでIPアドレスの変更やWiFiの設定を行うことができます。


PersonalメニューでTimezoneやLocaleの設定を行うことができます。


SoftwareメニューでアプリのインストールやKernel Headerのインストールを行うことができます。




Armbianではセッション内で最初にsudoコマンドを実行するときに、パスワードを要求されます。
サービスやcronの中などでシェルスクリプトを実行すると、思わぬところでパスワード待ちなる事が有ります。
こ ちらの手順でsudoコマンドをパスワード無しに設定すること ができます。



Armbian Stretchのviは、Raspbianのviと比べて少し設定が違っていてVISUALモードがデフォルトになっています。
VISUALモードはマウスの操作が反映されてしまうので慣れないと使いにくいです。
以下のコマンドでVISUALモードからTEXTモードに変更することができます。
さらに、タブ幅8文字は広すぎるので、4文字に変更しています。
echo "set mouse-=a" > ~/.vimrc
echo "set encoding=utf-8" >> ~/.vimrc
echo "set clipboard=unnamed,autoselect" >> ~/.vimrc
echo "set tabstop=4" >> ~/.vimrc
echo "set shiftwidth=4" >> ~/.vimrc

sudo sh -c "echo 'set mouse-=a' > /root/.vimrc"
sudo sh -c "echo 'set encoding=utf-8' >> /root/.vimrc"
sudo sh -c "echo 'set clipboard=unnamed,autoselect' >> /root/.vimrc"
sudo sh -c echo "set tabstop=4" >> ~/.vimrc
sudo sh -c echo "set shiftwidth=4" >> ~/.vimrc



マシン起動時のデーモンスタート表示は /boot/armbianEnv.txt の以下の定義で制御することができます。
起動時のメッセージをデバッグポートに出力する
console=serial


起動時のメッセージをデバッグポートに出力しない
console=both



OrangePi ZEROなど、一部のボードではインストール直後からUSB-OTGコンソールを使ったログインができるようになっていますが、
OrangePi PCではなぜかこれができません。
OrangePi PCには、マイクロUSBポートが付いていますが、USB給電ができないので、USBポートの使い道が有りません。
Debian 12(bookworm)では、以下の手順でUSB OTGコンソールを有効にすることができます。
$ uname -a
Linux orangepipc 6.1.47-current-sunxi #1 SMP Wed Aug 23 15:52:42 UTC 2023 armv7l GNU/Linux

$ cat /etc/debian_version
12.1

$ sudo sh -c "echo 'g_serial' >> /etc/modules"

$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
g_serial

$ sudo sh -c "echo 'ttyGS0' >> /etc/securetty"

$ cat /etc/securetty
ttyS0
ttyGS0

$ sudo systemctl enable serial-getty@ttyGS0.service
Created symlink /etc/systemd/system/getty.target.wants/serial-getty@ttyGS0.service → /lib/systemd/system/serial-getty@.service.

$ sudo shutdown -r now

これで2つのagettyが動きます。


こちらがオンボードデバッグポートでのログイン画面です。
オンボードデバッグポートは、/dev/ttyS0のデバイスが使われます。


こちらがUSB OTGでのログイン画面です。
USB OTGポートは、/dev/ttyGS0のデバイスが使われます。


次回はArmbianのOSバージョン番号の調べ方を紹介します。