気の向くままに辿るIT/ICT/IoT
webzoit.net
ハードウェア

侮れないOrange Pi Zero 3のレビューと検証

ホーム前へ次へ
サイト内検索
カスタム検索
Orange Piって?

侮れないOrange Pi Zero 3のレビューと検証

侮れないOrange Pi Zero 3のレビューと検証

2023/09/18

 Orange Piの内、今夏デビューしたてのOrange Pi Zero 3 RAM4GBOrange Pi Zero 3用オプションセットを買ってみたので早速レビューとちょっとした検証をしてみました。

 技適対応ではないので内蔵Wi-FiとBluetoothは使わず、付属のWi-Fiアンテナを外し、LANケーブルで有線接続します。

 結論から言うとUSBが2.0のみとは言え、Orange Pi Zero 3は、パソコンとしても十分対応でき、なんでも来いな感じ。

 内容について1つだけ先に触れておくとOrange Pi Zero 3でオンボードのSPI FlashメモリからのUSBブートが可能かはともかく、後述の通り、ラズパイ2Bのように起動用としてmicroSDカードを使い、システム用としてUSBデバイスをブートすることはできましたよ。

 ただ、気になることもあって各ボードリリース時は同時期の最新である模様のOrange Pi OS、ベースとなるディストロ同様にマイナーバージョンのアップデート等もなされるのか、そしてOrange Pi専用リポジトリ内のパッケージ群も、何れもどのくらいの期間、更新され続け、フレッシュなものなのか、LTS版とそうじゃないボードの違いとか。

 なんなら、Armbian等サードパーティ製という話もあれど、Armbianも中華っぽく、また、Orange Pi Zero 3が新しいからか、RAM4GB用に対処しても尚、今日時点、起動できなかったので。

  1. Orange Pi Zero 3外観
  2. Orange Pi Zero 3用オプションパーツ
  3. Orange Pi Zero 3のスペック
  4. Orange Pi Zero 3で使うLinuxカーネルとOSを選択
  5. microSDカードにOSイメージを書き込む
  6. Orange Pi Zero 3起動前に可能なネットワーク設定
  7. bashユーザーはchshから
  8. Orange Pi Zero 3の起動と有線LAN
  9. Orange Pi Zero 3にssh接続
  10. 新規ユーザー作成とデフォルトユーザーorangepiの削除
  11. グラフィカル設定ツールorangepi-config
  12. Orange Pi Zero用拡張ボード
  13. Orange Pi Zero 3+拡張ボードでUSBスピーカーを使ってみる
  14. Orange Pi Zero 3でHDD/SSDをストレージとして使ってみる
  15. Orange Pi Zero 3でmicroSDブートからのUSBブートしてみる
  16. サーバ版Bookwormにデスクトップ環境をインストール

Orange Pi Zero 3外観

Orange Pi Zero 3+アルミケース

 アルミケースに入れた(アルミプレートでサンドイッチにした)Orange Pi Zero 3。

 さすがにアルミプレートがあるかないかで結構、触った時の温度の違いを感じます。

 ケースに隠れて見えませんが、オプションセットにあったシリコンパッドもSoCとLPDDR4 RAMに貼ってます。

 一般的なサイズと思われるUSBメモリと並べてみるとUSBメモリの長手方向の方がアルミケース入りのOrange Pi Zero 3の一辺より大きいことがわかります。

 ちなみにOrange Pi Zero 3 H618ユーザーマニュアルにもありますが、micro HDMIポートとType C電源ポートの位置と距離からして100均で売ってるような幅広のmicro HDMI-HDMIアダプタだと思いっきり干渉して使えないので要注意。

Orange Pi Zero 3+アルミケース+13ピン拡張ボード

 アルミケースに入ったOrange Pi Zero 3に13ピン拡張ボードを装着。

 熱くなるUSBドングルとか使わなければ、拡張ボード込みのファン付きケースじゃなくても良いよねと思っての本体用アルミケースと拡張ボード。

 とは言え、筐体兼放熱板でもあるアルミプレート上にあり、温かい熱は上昇することもあって電源投入しているだけで拡張ボードもほんの少し生温かい感じ。

 電源投入後、数時間経過、室内気温33度ほどで日差しの当たる日中の窓を開放した窓際で拡張ボードを装着したOrange Pi Zero 3ボードを手持ちの非接触温度計で計測してみると拡張ボード上が約41度、裏面のアルミプレートが約38度。

 ちなみにsensorsコマンドの出力結果は、CPU:48.9度、GPU:49.1度、DDR(RAM):49.5度、VE:48.1度。

Orange Pi Zero 3用オプションパーツ

 Orange Pi Zero 3用に買ったセットは、次の通り。

Orange Pi Zero用拡張ボード/ACアダプタ5V 3A/アルミケース/microSDカード64GB/SDカードアダプタ/シリコンパッドのオプションセット AliExpress/shenzhen colourful Store 2023/09/12到着分

 Orange Pi Zero 3用でもあるとは言え、Zero 3については、接点が他の機能に使われているとかで拡張ボード上のマイクは使用不可とのこと。

 尚、microSDカードは、パッケージやカード上の印字からするとSanDisk製でした。

 ビス、ナット、スペーサーは、各1個おまけ付き。

Orange Pi Zero 3のスペック

 SoCは、Allwinner H618、CPUは、ARM Quad-core Cortex-A53 1.5GHz。

 GPUとしては、Mali G31 MP2搭載。

 が、ユーザーマニュアルによれば、現在対応中のLinuxカーネル 5.4|6.1では、Mali GPU、Video codec、TV-outについてはドライバ未対応?不適合?なようです。

 RAMは、LPDDR4 1GB/1.5GB/2GB/4GBのラインナップ中、今回は、4GBをチョイス。

 オンボードストレージとして16MB SPI Flashがあり、HDMI対応ディスプレイさえ接続してあれば、電源投入だけでブート確認できるようにとデフォルトでミニマムなLinuxが書き込み済み(ネットワーク接続機能はない模様)。

 仮にこれを書き換えたところでSPIからUSBブートというのは、できるとしてもかなり険しい道のりな気配(前・後述の通り、microSDからUSBデバイスのチェーンブートは可)。

 microSDカードインタフェース。

 10M/100M/1000M有線ギガビットイーサネットと技適なしの無線オンボードWi-Fi 5/Bluetooth 5.0。

 GPIO26ピン、13ピン、デバッグ用UART 3ピン。

 CPU、GPU、RAM、VE用に温度センサー4つ搭載。

 本体にmicro HDMIポート、拡張ボードに3.5mmオーディオジャック、(Zero 3では使えない)マイク。

 本体にUSBポート x1、拡張ボードにUSBポート x2(拡張ボードを使用しない場合、13ピンからUSB出力可)。

 拡張ボードには他に主にAndroid用とされる赤外線受信センサーもあり。

 電源ポートは、5V3A Type-C、PCB(基板)サイズは、50mm x 55mm。

 対応OSは、公式Orange Pi OSとしては、Android 12 TV/Debian11/Debian12/Ubuntu22.04/Ubuntu20.04、他にサードパーティ製もある可能性あり(リリースしたてホヤホヤのZero 3には、まだ対応できていないケースもありそう)。

Orange Pi Zero 3で使うOSを選択

 スペックリストのあるページとは少し異なり、http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-Zero-3.htmlによると、今日時点、公式Orange Pi OSとしては、Orange Pi OS(Arch)、Ubuntu、Debian、Androidの各イメージとAndroidソースコード、Linuxソースコードがあります。

 この記述の仕方からしてArch Linuxベースこそが、公式の中の第一候補という印象を受けます。

 が、別途、サードパーティ製としてArmbian、kali、raspberry-pi-osがあります(が、サードパーティ製への質問は各サードパーティへとのこと)。

 これらは、公式・サードパーティ製共にOrange Piサイドで作ったイメージのようです。

 筆者は、この中から、Debian bookwormのサーバイメージを選択、インストールしました。

 と言うか当初、Armbianのサーバイメージを選択、githubに飛び、RAM1GB|2GB兼用イメージを取得、1.5GBと4GBはブートローダ(ブート手順)が異なるらしく、記述通りに追加作業をして対処するとマウントできなくなり、GPartedなどで修復を図ると成功するも起動に至らず、いち早い起動確認を優先すべく、続いてDebianを選択したという経緯があります。

 公式・サードパーティ共に各OSも同様でリンク先からRAM別に対応するものを選んでダウンロード・展開する必要があります。

 また、全ては確認していませんが、たぶん、それぞれにLinuxカーネル5.4版と6.1版、少なくともDebian/Ubuntuについては、各OSバージョン2通り、更にサーバ版とデスクトップ版(Xfce)などもあるでしょう。

microSDカードにOSイメージを書き込む

 Debian bookwormのサーバイメージをとダウンロードしてみたところ、[The image of the linux6.1 kernel version-20230915T003125Z-001]から002/003/004/005と5つのzipファイルがダウンロードされました。

 更にその中に2つずつ程度、7z圧縮されたものがあります。

 アーカイバで確認すると筆者が必要とするイメージは、[The image of the linux6.1 kernel version-20230915T003125Z-005]にありそう、RAM1GB|2GB用と4GB用があり、それらは更に7z圧縮されており、常用しているEngrampaでは未対応なのでFlatpakで入れてあったPeaZipで4GB用の7zを展開、伸長。

$ time sudo dd if=Orangepizero3_1.0.0_debian_bookworm_server_linux6.1.31.img of=/dev/sdc status=progress

 当該OSイメージをオプションセットにあったSandisk 64GBのmicroSDカードにdd。

 この時、イメージサイズのパーティションとして書き込まれるわけですが、便利なようなそうでもないような、仮に事前にサイズ変更しておいたとしても初回起動時にデバイス容量いっぱいまでファイルシステム共々パーティション自体をも自動で拡張してくれちゃいます。

 ただ、その後、電源OFFしてGPartedなどで縮小することはでき、次回起動時からは、縮小したサイズにはなります。

 ちなみに当初、何度かやったArmbianイメージ書き込みでRaspberry Pi Imagerで[カスタムイメージ]を選択してやってみましたが、簡単で快適でした。

Orange Pi Zero 3起動前に可能なネットワーク設定

 ユーザーマニュアルにある通り、Orange Pi Zero 3起動前にイメージを焼いたmicroSDをマウント、boot/orangepi_first_run.txt.templateをorangepi_first_run.txtとしてコピー、中身を編集することにより、事前に初回起動時のみ有効なネットワーク設定をすることができるようになっています。

 マウントではなくOrange Pi Zero 3起動後に/boot/orangepi_first_run.txt.templateを...もできますが、その場合は、編集保存後、一度、microSDカードを抜いて、再度、microSDカードを挿入して起動させる必要があると明示されています。

 設定可能な内容は、初回起動後、orangepi_first_run.txtファイルを削除するか否か、デフォルトのネットワーク設定を変更するか否か(このファイルを使う時点で設定は1必須)、有線・無線何れを有効にするか、無線を有効にする場合、SSID/PASSPHRASE設定、静的(固定)IPにするか否か、する場合、IPアドレス、ゲートウェイ設定。

 ただ、「初回起動」というのが、最初の1回だけなのか、このファイルを配置した都度1回ということなのか曖昧ですが...と思いましたが、前述のように当該ファイル編集後、明示されていたmicroSDカードの挿抜からしてmicroSDカード挿入都度1回ってことっぽいですね、きっと。

 また、この時、有線・無線の設定については、何れか一択とのこと、理由は、「だって両方使う必要ないもんね...」と書いてあります。

 ちなみに他のページを読むと有線LAN接続していないと配線を噛ましたシリアルデバグはできる一方、HDMIケーブルを介したディスプレイを利用できないとかなんとか。

 仮にそうでもIPアドレスを調べて他のマシンからssh、GUIなデスクトップ環境なら他にもVNCサーバをインストール、サーバをポートを指定して起動しておいて他マシンのVNCクライアントからアクセスという方法もありますが。

bashユーザーはchshから

$ ls -l /bin/sh
... dash
$ chsh -s bash
$

 この後、HDMIディスプレイやsshで他マシンのディスプレイでログインできるようになります。

 が、bashユーザーで端末を使う場合、上下矢印キーで履歴を移動できるのは当たり前、それが上下キーを押したら[[A...みたいに文字化けした!なんてことがないように予めchsh(chANGE shELL)コマンドを実行、再ログインしておきましょう。

 当該ユーザー自身のshellを変更する際は、sudoは不要です。

 これは、Orange Piなのか、Orange Pi Zeroなのか、他でもそうだったか?/bin/shは、bashではなく、dashにシンボリックリンクが張られており、履歴機能がない為です。

 一度、ログアウトして改めてログインしないと変更が反映されないので要注意。

Orange Pi Zero 3の起動と有線LAN

 ユーザーマニュアルによれば、Orange Pi Zero 3のrootのデフォルトのパスワード、そして既に作成されているユーザー名及びパスワードは、[orangepi]です。

 事前設定することなく、デフォルトの状態では、適切で起動可能なイメージが焼かれたmicroSDカードを挿入、電源投入、起動した時点で有線LANが有効になっており、DHCPで配布されたIPアドレスが割り当てられます。

 HDMIケーブルを介したディスプレイ+USBハブ or 拡張ボード+USBキーボード+USBマウスに接続していない場合は、他のマシンがあれば、起動前後にnmapなどでLAN内に増えたIPアドレスを見つけることで確認できます。

Orange Pi Zero 3にssh接続

Orange Pi 1.0.0 Bookworm with Linux 6.1.31-sun50iw9

 LANケーブルを介して有線接続した状態で起動するとデフォルトでsshが有効となっているとのことで他のマシンから即、ssh USER@IP_ADDRESSやユーザーが同一なら、ssh IP_ADDRESSでssh接続できます。

 後々のことを考えるとorangepi-configからもインストールでき、基本、接続先IPアドレスを気にせずに済むavahi(ホスト名.local等でアクセスできるbonjour的なもの)を使ったり、IPを固定したりすると便利でしょう。

$ ssh orangepi@IP_ADDRESS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!   @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:isox9sSX...
Please contact your system administrator.
Add correct host key in /home/USER/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/USER/.ssh/known_hosts:9
 remove with:
 ssh-keygen -f &qout;/home/USER/.ssh/known_hosts&qout; -R &qout;IP_ADDRESS&qout;
ECDSA host key for IP_ADDRESS has changed and you have requested strict checking.
Host key verification failed.
$

 ただ、初回、ssh接続する場合、sshした方の~/.ssh/known_hostsにホストが登録されてないよエラーが出ると思うので、その時は、そこにある通り、ssh-keygen -f ...した後、ssh接続します。

 デフォルトのログインパスワードは、Orange Pi Zero 3の起動と有線LANの通り。

 今回使用したLinuxカーネルとOS(Orange Pi公式OSの1つDebian)であるOrange Pi 1.0.0 Bookworm with Linux 6.1.31-sun50iw9の表記もあります。

 Memory usageに[of 3.84GB]とあるのでRAM4GBバージョンであることがわかります。

 尚、df -hしてみるとイメージ書き込み済みのmicroSDカードは、/dev/mmcblk0p1となっています。

新規ユーザー作成とデフォルトユーザーorangepiの削除

 ここまででHDMIケーブルを介したディスプレイとUSBキーボード・マウスか、ssh接続で他マシンからアクセスできるようになったところでセキュリティ対策の一貫として次の作業を行っておくのが賢明でしょう。

 ただ、新規ユーザーがsudoersファイルに登録されず、新規ユーザーではsuやsudoすら使えない可能性があるのでsudoも使えるorangepiユーザーでという手もありますが、最小限の作業だけは注意しつつ、rootでログインして行なうのが良いでしょう。

# passwd
...
# useradd -m NEW_USER_NAME
...
# passwd NEW_USER_NAME
...
# visudo
...
# usermod -aG tty,sudo,... NEW_USER_NAME
...

 rootでログインした前提でrootパスワードの変更と新規ユーザーの追加とsudo設定、orangepiユーザーの登録グループをNEW_USER_NAMEに引き継ぎ設定。

 usermod -aGの引数の[...]は、もちろんそのままではなく、該当するグループをカンマ区切りで列挙します。

 ただ、後述のように直接/etc/groupを編集、orangepiユーザーの所属グループを新規ユーザーに引き継げば、ログアウト/ログオンでid結果も反映されるのでusermod -aGする必要はありません。

$ sudo vi /etc/passwd
...
$ sudo vi /etc/group
...
$

 これで新規ユーザーNEW_USER_NAMEでログインしても作業できるでしょう。

 新規ユーザーを作成した後、当時のラズパイだと新規ユーザー作成とユーザーorangepi削除と後始末のようにuserdelから始められました。

 が、今どきは、どうやら、systemd --userの関係でそれだとエラーになるので念の為、これらファイルのバックアップをとりつつ、/etc/group、/etc/passwdを直接編集します。

 内容としては、orangepiユーザー/グループのuid=1000/gid=1000をそれぞれ新規ユーザーに割当てつつ、orangepiグループ及び所属グループのorangepi|ユーザーを削除、/home/orangepiを削除。

$ sudo chown -R NEW_USER_GROUP:NEW_USER_NAME /home/NEW_USER_NAME
$

 新規ユーザーNEW_USER_NAMEのホームディレクトリ内ファイルの所有権としてgid/uidが1001となっていたら、1000とすべく、chown。

 前段の/etc/passwdや/etc/group設定が合っていれば、gid/uidでなくNEW_USER_GROUP:NEW_USER_NAMEでいけます。

 orangepiユーザーでしばらく運用した後に新規ユーザーを作成、移行しようと思うと、結構、面倒なので最初にやっておくのが吉。

グラフィカル設定ツールorangepi-config

orangepi-config/Orange Pi Zero 3

 orangepi-configは、一部システム設定やソフトウェア設定ができるキャラクタベースのグラフィカルツールです。

 起動方法の変更やUART設定、ネットワーク設定、タイムゾーンや言語やhostname設定、一部ソフトウェアのインストールなどができます。

Orange Pi Zero用拡張ボード

Orange Pi Zeroシリーズ用13ピン拡張ボード

 Orange Pi Zero/Zero 2/Zero 3用の13ピン拡張ボードには、USBポートが2つ、3.5mmオーディオジャック、赤外線受信センサーと(Zero 3では使えない)マイクが1つずつ搭載されています。

 黒い部分は、やや見づらいですが、写真左からマイク、オーディオジャック、USBポート、USBポートの写真右奥にあるのが、赤外線受信センサ。

Orange Pi Zero 3+拡張ボードでUSBスピーカーを使ってみる

Orange Pi Zero 3+拡張ボードに更にUSBハブを介してUSBスピーカーを接続・再生

 拡張ボードに更になんとなく3ポートドングルタイプUSBハブを介してUSBポートとオーディオジャックに3.5mmオーディオプラグ付きのUSBスピーカー(キャンドゥの500円スピーカー)を接続してみたところ、何ら設定することなく、音源を再生できました。

 ちなみに再生してみた音源は、サンプルとしてよく使う/usr/share/sounds/alsa/Front_Center.wav。

Orange Pi Zero 3でHDD/SSDをストレージとして使ってみる

Orange Pi 1.0.0 Bookworm with Linux 6.1.31-sun50iw9にSSDを接続

 Orange Pi Zero 3に未フォーマットながらSSD 1TBを接続してみました。

 SSDケースは、Groovy model.SSDCASE-U31G1-GM

Orange Pi 1.0.0 Bookworm with Linux 6.1.31-sun50iw9に未フォーマットSSDを接続した際のlsusbとdmesg結果

 結果、lsusbでは、[152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS578 SATA 6Gb/s]として、dmesgではsdaとして認識されました。

 中身の入ったUSBメモリなども挿してみたところ、lsusb、dmesg、fdiskに相応の結果が表示されました。

 当然ながら、ストレージとしてUSB接続のHDDやSSDは使えるようです。

Orange Pi Zero 3でmicroSDブートからのUSBブートしてみる

Orange Pi Zero 3で起動用microSDカードからシステム用USBメモリをチェーンブート

 Orange Pi Zero 3でmicroSDカードからUSBメモリやバスパワーの2.5インチHDDをチェインロードしてUSBブート(要はラズパイ2Bみたいに)してみました。

 ちなみに今回使ってみた2.5インチHDDは、なんと16年前に買った先代dynabookに標準搭載されていたTOSHIBA製80GB、HDDケースは、ストレージとして使った際と同様のGroovy製。

 当然、SSDもいけるでしょう(未フォーマットのSSDも持ってるのに手抜きで試してませんが)。

 microSDカードにシステムまで入れて運用というのは避けたい、せめて、購入から7年以上経過、常時起動じゃないながら各種サーバとして今尚、利用中で、microSDカード共々健在なラズパイ2B v1.1同様にシステムはUSBデバイス(SSD)に入れたいと思ったので。

 そもそも原理的には容易にできるはずなのにOPi Zero 3に限らず、ZeroやZero 2ですら情報がないのが不思議と思いつつ、やってみると想定通り、簡単にできました。

 尚、この場合、orangepi-configなどでブート方法の変更などする必要はありません

 要はイメージを書き込んだmicroSDカードの/boot/orangepiEnv.txtとUSBデバイス側の/etc/fstabのUUIDを書き換えるだけです。

$ time sudo dd if=Orangepizero3_1.0.0_debian_bookworm_server_linux6.1.31.img of=/dev/sdc status=progress
...
$ sudo tune2fs -U random /dev/sda1

 まず、USBメモリ(やSSD、HDD)にddなどでOrange Pi OS(ここではdebian bookworm server)を書き込みます。

 すると先に焼いたmicroSDカードとUSBメモリでUUIDが重複するので(同一イメージだとどれでもそうなるっけ?)USBメモリ側のUUIDを新たに生成すべく、[tune2fs -U random デバイス]。

 ラズパイのように起動用とシステム用とパーティションが2つならmicroSDのシステムパーティションを削除すれば、UUIDが同一なのは好都合なのですが、OPi Zero 3ではパーティションが1つで、そうはいかないので。

 尚、tune2fs前後でblkidしておくと変化を比較できます。

 ちなみにLinuxでは、microSDなどは/dev/mmcblk0p1のようになる一方、1つめのUSB機器は、/dev/sda、2つめは、/dev/sdb、3つめは/dev/sdc、添字の[1]は1つめのパーティションのようになります。

 よって例示の/dev/sda1は、Orange Pi Zero 3で1つめのUSB機器と認識されているケースを想定してsda、少なくとも今日時点でOrange Pi Zero 3のOSイメージにおいてはパーティションは1つのみなので添字は1としています。

 もし、環境が異なるのであれば、それに合わせる必要があります。

$ sudo vi /boot/orangepiEnv.txt
...
rootdev=UUID=...
...
$ sudo mount /dev/sda1 /mnt
$ sudo vi /mnt/etc/fstab
...
UUID=...
...
$

 続いて、今、microSDカードのみで起動していると想定すると/bootにorangepiEnv.txtがあるので[rootdev=UUID=...]行のUUIDを先ほど生成したUSBメモリのUUIDに書き換えて保存します。

 更にUSBメモリをマウントして起動ファイル/etc/fstabのUUIDも同様に変更、保存します。

 そしてOrange Pi Zero 3を一度、poweroffするなどし、電源を落とします。

 これでバッチリ、Orange Pi Zero 3にmicroSDカードとUSBメモリを挿し、電源を入れるとmicroSDカードが起動すると同時にボードの赤いLEDが点灯、USBメモリが起動すると赤のLEDが消灯しつつ、緑のLEDが点滅、USBメモリにもアクセスランプがあれば、同様に点滅し、USB 2.0ポート(とUSBデバイスの性能や劣化があればその具合等)に相応な時間でUSBメモリやUSB接続のHDD、SSDから起動します。

 他マシンから初めてsshする場合は、ssh接続の項で説明した通り、ssh-keygen -f...した後、ssh接続することになるでしょう。

 ここまでの手順を踏んだなら、USBメモリから初めて起動した場合、ユーザーは、rootかorangepiのみ、パスワードは何れもorangepiでないとログインできないデフォルトの状態なのでUSBメモリから起動したことの確認にもなります。

サーバ版Bookwormにデスクトップ環境をインストール

 現時点でOrange Pi Zero 3の使いみちは決まっていない、使うとしても検証くらいということでデスクトップ環境でも入れてみようかと。

 公式Orange Pi OSのデスクトップと言えばXfceですが、デスクトップ環境を一通り入れる癖のある筆者でも利用となると、ご無沙汰感がハンパないので入れるにしてもサーバ版Bookwormから他のデスクトップ環境をと思っていました。

$ sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y && sudo apt clean -y
...
$ sudo apt install -y task-mate-desktop fonts-ipafont
...
$

 というわけで4コアCPUでRAMも4GBあることですし、今回は、最もお気に入りのCinnamonを入れてみることにしました。

 と思いきや、インストール後、VNC接続してみるとデスクトップもメニュー等も表示されるも~/.xsession_errorsによれば、dbus-launchを起動できないという理由で[you are currently running in fallback mode]とポップアップ表示されるので、とりあえず、MATEに変更。

 Debianでは、task-*-desktopの書式で指定すると当該デスクトップ環境一式をインストールしてくれるのでOrange Pi OS版もいけるでしょうと踏んで。

$ cat ~/.vnc/xstartup
...
$ sudo apt install -y task-mate-desktop fonts-ipafont
...
$ vi .vnc/xstartup
...
#/etc/X11/Xsession # <=コメントアウト
LANG=ja_JP.utf8 # <= 追記
exec mate-session # <= 追記
$

 併せて日本語入力についてはともかく、日本語表示できるように任意の日本語対応フォントをインストール。

 環境変数LANGの設定や必要ならVNC接続された時に表示するデスクトップを指定すべく、.vnc/xstartupを編集するなどして対処します。

 例では、MATEを指定しています。

 日本語入力関連についても、このファイルで設定できるはずです。

 デスクトップ環境と併せてVNCサーバをインストール、vncserverを1度起動すれば存在するはずですが、ない場合など雛形として/etc/X11/xinit/xinitrcを~/.vncディレクトリにコピーするのもありでしょう。

 端末上でのインストール状況や/etc/apt/sources.listを見るとbookwormのリポジトリは、かのファーウェイ、huaweicloud.com上、dockerは、かのアリババ系クラウドサービスaliyun.comにある(huaweicloud.comやaliyun.comのサーバを利用している)ようです。

$ sudo apt install -y tightvncserver
...
$ sudo systemctl enable lightdm
...
$ reboot

 今回、HDMIディスプレイは使っておらず、ssh接続しているのでデスクトップは、VNCでというわけで任意のVNCサーバからtightvncserverをインストール。

 Orange Pi OSでは、ディスプレイマネージャはlightdmのようなので次回起動時有効になるようにsystemctl enable。

 でOrange Pi Zero 3を再起動。

$ vncserver :2
...
$

 Orange Pi Zero 3を再起動したら、このようにしてVNCサーバを起動。

$ vncviewer ANY_USER@orangepizero3.local:2
...

 VNCサーバ側マシンでAvahiをインストール済みでかつ、LAN内の別のマシンにVNCクライアントがある前提で、このようにしてVNCサーバに接続。

 もちろん、*.localでなくともIPアドレスでも可、VNCクライアント側のユーザーが同名ならANY_USER@は省略可。

システムポリシーを理由にデスクトップ上でネットワーク権限を要求されたDebian BookwormベースOrange Pi OS/Orange Pi Zero 3

 これで他のマシンからVNC越しに文字化けすることもなく、Orange Pi Zero 3上のMATEデスクトップが表示されました。

 が、なぜか、[システムポリシーにより全ユーザーでネットワーク設定できません]とか、[システムポリシーによりWi-Fiスキャンは阻止されます]などと表示され、rootパスワードを要求されます。

 bullseyeまでは、[/etc/polkit-1/localauthority/50-local.d/*.pkla]と適切に設定された.pklaファイルをおけば、bookwormからはpolkitに変更があり、[/usr/share/polkit-1/rules.d/*.rules]や[/etc/polkit-1/rules.d/*.rules]のように.rulesファイルを置いてaddRuleやaddAdminRuleなどの適切な関数を書けば、対処できる模様。

$ sudo cat /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" &&
    subject.local && subject.active &&
    (subject.isInGroup ("sudo") || subject.isInGroup ("netdev"))) {
    return polkit.Result.YES;
  }
});
$

 ただ、このbookwormにおいては、より参照優先度が高いと思われる[/usr/share/polkit-1/rules.d/]に既に[org.freedesktop.NetworkManager.rules]ファイルがあるのに、こうなる謎に、どハマり。

 というか、その設定は、当該マシン上のユーザーの話で、VNC越しについては、他に設定が必要なんじゃないかと思っていますが、これ如何に。

 さておき、ポップアップが邪魔ながらも操作はできるので適当にいじってみると、さすがCPU4コア/RAM4GB、デスクトップ操作もサクサク、快適です。

備考

 raspi-configよろしく、orangepi-configは、また、orangepiEnv.txtは、Armbianではarmbian-config、armbianEnv.txtです。

 性能もよく、コスパも良いから残念ではあるけど、ハードはもとより、(複数あるリポジトリがどれも中国のクラウドサービスとか、サードパーティ製も結局中華製とか)ソフトも情報を吸い上げる強制力をもつ隣の大国に依存したOrange Pi系、もう買うことはないかな。

ホーム前へ次へ