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

Orange Pi Zero 3にraspberry-pi-os

ホーム前へ次へ
Orange Piって?

Orange Pi Zero 3にraspberry-pi-os

Orange Pi Zero 3にraspberry-pi-os

2024/05/08

 Orange Pi Zero 3 RAM4GBにOrange PiサードパーティOSの1つraspberry-pi-os(opizero3-raspios-bullseye-arm64-2023-07-16.img)を入れてみた話。

 1台めとなるRAM4GBのOrange Pi Zero 3を買った当初は、Orange Pi Zero 3公式OSの1つDebian Bookwormサーバ版を入れ、事情あってラズパイと入れ替えスマートスピーカー専用機としていたものの、自作中のテレビドアホン用にRAM2GBを買い、もう1台RAM1GBか2GB版がいるかなと思っている中、割り振りを変えることにした次第。

 今回使ったRAM4GB版と入れ替える恰好で既に買った自身2台めとなるRAM2GBのOrange Pi Zero 3をスマートスピーカー用とし運用中、ドアホン親機用モニタとしてHDMIタッチディスプレイを使うべく、RAM4GB版をこれに、追加購入する分をドアホン子機側で使おうかと。

 そんな中、要件を満たすべく、いろいろなOSを試した後、白羽の矢が立ったのが、raspberry-pi-osだったという話。

概要

 Orange Piベンダー版ArmbianとArmbianコミュニティ版は、スピーカーからの音源出力が容易に解決しそうもなく諦めました。(スピーカー出力できる可能性浮上。)

 続いて公式OSの内、Debian Bookwormサーバ版を入れ直すも当初、インストールできたデスクトップが改めてやってみるとリポジトリのIPが見当たらないとかで失敗に終わります。

 当初、kaliもですが、Orange Pi Zero 3でraspberry-pi-osというのは、想定していなかったのですが、デスクトップがラズパイ公式LXDE-piであること、それ以前にラズパイでもLXDE-piデスクトップでは、何もしなくてもタッチディスプレイを使えるという情報を見かけたことがあったことから急浮上した次第。

 そもそも、このページを記事にするつもりはなく、タッチディスプレイとまとめるつもりだったのですが、当該目的に仕立てるべく、検証する内、raspberry-pi-osに関する文量が思いの外、多くなってしまったので分けることに。

Orange Pi Zero 3用サードパーティOS raspberry-pi-os

Orange Pi Zero 3でサードパーティ製raspberry-pi-osを使ってみた

 まず、今回、RAM4GBのOrange Pi Zero 3にraspberry-pi-osを入れたわけですが、公式OSの1つDebian Bookwormベース版と異なり、RAM4GBと言えど何ら追加作業を要することなく、ddしただけでOKでした。

 そんなOrange Pi Zero 3のサードパーティ製OSであるraspberry-pi-osのイメージは、256MBのブートパーティションとシステムパーティションの2つから成り、ラズパイOSと同様でした。

 とは言え、2つに分かれているだけで中身はOrange Pi Zero 3 OS同様。

 Orange Pi Zero 3(Orange Pi系?)においは、有線LANと無線LANが排他で同時に2つ使うことができない上、有線LANがデフォルトで、内蔵は技適がないのでUSBドングルなどで無線LANを使いたい場合、初回起動前に設定をしておかないと起動後にはできそうもありません(できたとして一筋縄ではいかなそうです)。

 この設定を行うには、ブートパーティションとなるfat領域のorangepi_first_run.txt.templateファイルをorangepi_first_run.txtとしてコピーして編集する必要があります。

 リンク先では、一通り設定する例となっていますが、有線で良いなら他は起動後に設定できるのでそれで良ければコピーも編集もする必要はありませんが、技適を考慮する必要のない有線において固定IPを使いたいなら、ここでやっておく方が少しは楽でしょう。

 一方、無線を選択しておくだけで良いなら、最低限、「デフォルトのネットワーク設定を変更するか否か」、「有線・無線何れを有効にするか」の2点、何れも0か1のフラグ(1がON/YES)で前者は1への変更必須、後者については有線を0、無線を1に編集する必要があるので編集点としては3点のみで可(これだけやっておけば、後述の通り、SSIDや固定IP設定は起動後にでも簡単にできるので)。

 このraspberry-pi-os、以降はアップグレードすればという腹づもりなのか、Debianバージョンは一世代前のBullseye、デスクトップ環境はLXDE-pi(ラズパイ公式OSのデスクトップ)、aptリポジトリは、deb.debian.org/debianとarchive.raspberrypi.org/debian。

 *-configコマンドは、ラズパイOSベースらしく、raspi-config、デフォルトの言語設定は、中国語(zh_CN.UTF-8)、ネットワーク管理はdhcpcd。

 そんなraspberry-pi-osも公式OSの1つDebian Bookworm版同様、microSDからUSBデバイスへのチェーンブートは可能です。

 そうする場合、リンク先ではUSBの方をいじりましたが、実は、microSD側をいじった方が遥かに簡単でmicroSD側の第2パーティションをtune2fs -U randomしてUUIDを変更しておけば重複・干渉することなく、同じイメージを焼いていれば、同一UUIDなはずのUSBデバイスの第2パーティションが呼ばれるようになるのですが、2点ほど注意すべきことが。

 1つは、microSD側の第1パーティション、第2パーティション何れか一方でもマウントした状態でtune2fsしてしまった場合。

 もう1つは、USBデバイス側の第2パーティションに何らかの事情で不具合が生じることがあるようでGPartedで言うところの[パーティション] >> [チェック]か、これに相当する方法で修復していない状態(期せずして不具合があるまま)tune2fsした場合。

 何れのケースもtune2fs後に「fcskなんちゃらでチェックしないとダメだよ」とか意味不明に怒られたり、謎の不具合に無駄に悩まされたりすること。

 よって、こうしたことがないよう注意を払う必要があります。

 あとUSBメモリ側のシステムパーティションのサイズは変更しておくのが賢明でしょう。

 というのもイメージをddしたままだと自動拡張してくれるわけではない結果、orange-pi-osを起動後にdf -hした際、期せずしてmicroSD側の第2パーティションもオートマウントされていたりして混乱の種になる可能性もあるので。

 ディスクサイズが同様なため、USBのsd*やmicroSDのmmcblklp*デバイスの違いがありつつも、もしやシステムが混同してしまったのではないか?実はUSBじゃなくてmicroSDの第2パーティションが呼ばれて起動しているんじゃないかなんて本来、要らぬ懸念をしないためにも...。

 適当にサイズ変更しておけば、明確な参考情報が増え、余計な心配をする必要もなくなるので。

raspberry-pi-osの各種初期設定

 microSDカードなり、チェーンブートしてUSBデバイスからなり起動するとデフォルトユーザーopiによるオートログインでLXDE-piデスクトップが表示されます。

 デフォルトユーザーopiのパスワードはopi、rootは違うようでわかりませんでしたが、sudo passwd rootで任意のパスワードに変更可能でした。

 デフォルトユーザーopiも使うつもりはないので新たなユーザーを作って/etc/passwd、/etc/groupのopiを置換して新ユーザーに移行、適宜パスワードも設定。

 ホスト名もそのまま使う気はなく変更したかったので後述の方法(dhcpcdからNetworkManagerに変更してからのnmtui)で変更。

 あと中国語が堪能な人以外が困るのが、デフォルトの言語設定が中国語なこと。

 localectl --list-localesしてもC.UTF-8、en_US.UTF-8とzh_CN.UTF-8しかなく、そのままでは、ja_JP.UTF8を設定することができません。(ラズパイ400で確認してみると日本語環境でもzh_CN.UTF-8がja_JP.UTF-8になるだけで他言語にしたい場合は同様。)

 そこでlocales-allパッケージをapt installして選択肢を増やすとja_JP.UTF-8も含まれており、言語設定でもこれを指定することもできるようになります。

 言語設定含め、sudo raspi-configするのが手っ取り早いですが、言語設定については、en_US.UTF-8とja_JP.UTF8をチェックするだけでなく、同時にデフォルトでチェック済みとなっているzh_CN.UTF-8のチェックを外しておかないと、そこかしこに中国語設定が残るので注意が必要です。

 そこまでしても尚、環境変数LANGUAGEも以前の言語設定のまま、変わらないのでユーザーのみなら~/.profileなどでLANGUAGE=ja_JP.UTF8をexport設定、ログアウト/ログインや再起動などしておく必要があります。

 当初、なんで残るのか、ピンときませんでした。

 また、raspi-configの[Adcvanced Options]の[Network Config]でネットワークの管理をdhcpcdにするかNetworkManagerにするかを選択することができるようになっていました。

 ただ、ssh接続した状態でこれを選択したところ、プロンプトが返ってこなくなり、システムパーティションのあるUSBメモリへのアクセスランプの点滅が止まらず(処理中な模様)、タッチスクリーン側で起動していたデスクトップもタッチ操作自体はできるものの、アプリを起動することも、ログアウトやシャットダウンすることもできなくなりました。

 USBメモリのアクセスランプが消灯したかと思っても、今度は、断続的に点滅する(処理が残っている?もしくは、ネットワーク接続に失敗し続けている?)ようになり、やはり、タッチ操作以外はできない状態に。

 いつまで待っていてもダメそうなのでネットワーク設定を変更したから当然だろうと、電源のOFF/ONで強制的にシャットダウン、起動することに。

 するとデフォルトユーザーopiから新たに作成したユーザーに切り替えたにも関わらず、オートログイン設定のアカウントを設定するのを忘れてCLIでAuthentication Errorとなり、げっと思い少し放置していたら、GUIのログイン画面になったので事なきを得、新規ユーザでログインできました。

 もちろん、ログイン後、raspi-configの[System Options]、[Boot / Auto Login]でオートログイン設定を再設定したことは言うまでもありません。

 ログインしてみると無事、今回、dhcpcdから切り替えたNetworkManagerになっていました。

 前者では、USB Wi-Fiドングル名が出ず、wlan0とwlan1、前者が内蔵、慣習的に後者がUSBドングルという前提で接続していましたが、後者はUSBドングル名が明示されるのでより安心です(Orange Pi Zero 3内蔵Wi-Fiは技適を通っていないので)。

 尚、このままだとデスクトップを表示(起動)する度にネットワーク接続が必要となるので自動接続するよう設定することになるでしょう。

 自身にとって悩ましかったDebianでのネットワーク設定ですが、Orange Pi Zero 3の設定をする内、NetworkMangerならnmtuiを使うと今までの苦労はなんだったんだというほど簡単であることに今更ながら気づくに至りました。

 sudo nmtuiして表示される[接続の編集]で有線LANではなく無線LANでDHCP自動割当ではなく、固定IPにするとか、SSID/PASSPHRASEが未設定であるなど編集が必要なら、(アクセスポイントとしてのWi-Fiルーターの管理画面からステルス設定を無効にしておかないと表示されない)SSIDを選択、タブキーや右矢印キーで画面右に移動して[編集]をクリック・タップし、適宜設定します。

 これで/etc/wpa_supplicant/wpa_supplicant.confも自動作成されるのですが、言語設定を変更しきれていなかったのか、同ファイルにおいて[country=CN]となっていたのでJPに変更しておくと良いでしょう。

 nmtuiした際に中国語が表示され、何で!?と思ったのですが、これに起因していたのでしょうか?

 あ、raspi-configでLocalization OptionsのWLAN Countryを設定し忘れていたかも...。

 また、まだ設定していないなら、前画面に戻って[接続をアクティベートする]からUSBドングルのSSIDを選択しつつ、タブや右矢印キーで移動、[アクティベート]をクリックして終了で完了。

 これで起動(デスクトップ表示)時、自動的にUSBドングル経由でネット接続されるようになります。

 また、前述のホスト名変更もnmtuiを使うと他に何をする必要もなく反映してくれるので簡単です(自端末やssh接続中なら、それぞれ再ログインや再接続は必要)。

備考

 ちなみにmicroSDからのUSBブートですが、最初にイメージをddしてやってみた際は、デスクトップ表示まで速かったものの、何度かイメージを焼き直したりしている内に、それまで表示されなかったスプラッシュ画面が表示されたり、オートログインまで行ってからが長かったりと何れにせよ、起動がかなり遅くなった気がしました。

 たまたま、このタイミングでUSBメモリが経年劣化でヘタりが顕著になったのか、気のせいなのか...。

 当初やけに早いなと思うほど早かったわけですから前者ですかね、確かに買うにしてもSSDばかりで、最近USBメモリを買った記憶は全くないですし、今回使用したUSBメモリ32GBも買ってから4〜5年、いや6年とか平気で経過しててもおかしくないですし。

 というわけでSSD 120GBにddしたら、超爆速、超快適、やっぱり、USBメモリの勇退時期が近かったのが原因でした。

 が、確認し忘れたのか、Armbian同様、スピーカーから音が出ないわ、USBメモリの劣化を引き継いだのか、任意なのかとあるアプリの画面をマウスで(左はいける上下は未確認も)右に拡張すると表示がカラフルな3重くらいになり、フリーズ、電源OFF/ONしないとどうにもならない状況に遭遇。

 手抜きしないっで一からインストールし直すかと思ったのですが、どうせそうするなら、アップグレードできるのか試してからにしようかと。

 すると早々に/tmp/(事後にはないファイル)の処理ができないとかのエラーでダメ...、sudo dpkg --configure aでしのげるか?と思ったら逆効果だったようでfull-upgradeしようとすると情報がなくてできないよといった旨のエラー、apt updateしてみてもこれまたエラー...。

 というわけでアップグレードできなさそうながら、スピーカーが使えない一方、タッチパネルは使えるraspberry-pi-os、もしくは、2度めはサーバ版から各種デスクトップのインストールに失敗、xfceデスクトップ版イメージは起動できずだったスピーカー出力は確認済みながら、タッチパネル未確認なOrange Pi公式Debianに再チャレンジするか、他にするか、何れにせよ、SSDにddしようかと。

 結果、お次は、kali Linuxベース、xfce版がimgが2つに分かれていたりイレギュラーなのでminimalでチャレンジ予定。

2024/05/14

 同じくOrange Pi Zero 3サードパーティOSの1つKali Linux/デスクトップMATEでも起動直後からタッチパネルのタッチ操作ができることを確認しました。

 また、Kaliで試行錯誤していたらスピーカーから音も出力されるようになったので同様にすれば、orange-pi-os含め、他でもいける可能性はありそうです。

ホーム前へ次へ