Orange Pi 5でChromium OS(openFyde) R108を動かす(仮


Orange Pi 5上で動くChromium OSカスタマイズのopenFydeにR108ベース版が登場した。

商用版のfydeOSの方でもFydeOS for YouとしてOrange Pi 5向けがダウンロードできるようになった。

openFydeではR108版ではAndroidアプリが動作するようになった模様(fydeOS v16.1リリースノート にはAndroidに関する記載はない)

Add Android 11 support implemented by project ARCHERO(Alpha test status).
Upgrade Android 11 subsystem ArcHero.

どういう仕組みで動かしているのかな?と調べてみるとFydeOSの「Chromium OS Archero Developer Guide」というページを発見。

Google Chrome OSでのAndroidアプリはGoogle ARC++(Android Runtime for Chrome)を使って動かしているものを、anboxベースで置き換えた、というものであるようだ。

Orange Pi 5へのインストール

openFyde R102でのインストール手法から変更となっている。

1) orangepi5-openfyde-r108-r1.run をダウンロード
2) orangepi5-openfyde-r108-r1.run をインストール先M.2 SSDに合わせたオプション付きで実行してimgファイルを出力
3) imgファイルをmicroSDに書き込む
4) 書き込んだmicroSDとインストール先のM.2 SSD(NVMe or SATA)をOrange Pi 5に取り付け
5) Orange Pi 5の電源をつないでopenFyde起動してM.2 SSDにインストール
6) インストール完了後、自動的に電源は切れる
7) microSDはさしたままOrange Pi 5の電源を入れるとM.2SSDからopenFydeが起動

最初、Linux環境から直接imgファイルをM.2 SSDに書き込んでみたり、microSDで起動してM.2 SSDにインストールした後はmicroSDを抜くものだと思っていたので、起動してこなくて悩みました。

現状のOrange Pi 5だとオンボードSPIにブートローダ書き込んだ場合の動作調整が面倒なので、どのような設定でも最優先されるmicroSDにブートローダを書き込んでしまうのが確実、ということで、常時microSDをさしたままの状態とする、ということのようです。

現状のAndroid互換レイヤーではストアとして中国CoolAPKのみが登録されているので、中国圏のアプリは簡単にインストールできる状態でした。

原神のアイコンがあったのでインストールしてみたところ、インストールに成功し、ログイン時のあの音楽も流れてきましたが、中国アカウントを求められてそれ以上は進めませんでした。

ドコモのらくらくスマートフォン ユーザについての設定確認でやったこと


まあ、実家から、ドコモのらくらくスマートフォン F-52Bを自宅のWiFi環境に繋いでからメールが取れなくなってる、というレスキュー要請があったので見に行った。

その際に、いまのアカウント情報とか聞いて見たんだが、そういうのは店の人にやってもらった、というのだが、アカウントに関する資料をもらっていなかった模様。

これは積んだかな?と思いつつ調べていったらなんとかなったのでメモ書きとして残しておく

まず、これだけは最低必要なことは以下の2つ

・スマホをドコモのSPモード接続で使うこと(WiFiでは駄目)
・ドコモのネットワーク暗証番号(数字4桁)が分かっていること

この状態であれば、スマホからdメニューをたどっていくことで、以下を調べることができる。

・dアカウント名
・dアカウントのパスワード(画面に表示されます)
・IMAP接続用ユーザ名
・IMAP接続用パスワード

Googleアカウントについては、gmailの画面などからメールアドレスを確認することができるかと思います。

パスワードは、まずは、dアカウントのパスワードと同じものを入力して通るか確認します。

通らなかった場合は、パソコンなどからgmailにアクセスし、Googleのメールアドレスを入力して、「パスワード不明」を選び、パスワードの再設定を行います。

そうすると、スマホ側に確認がくるので、はい、と答えると、パソコン側でパスワードの再設定ができるようになるので、新しいパスワードを設定します。

これでなんとかアカウントに関する情報を調べることができました。

で・・・冒頭のメールが取れない、という件は、SPモードメールはdアカウントの登録がちゃんとされていないとWiFi経由で取得出来ないから、という話だったようでした。

なので、dアカウントに関する設定を行うことで、メールは復旧しました。

Orange Pi 5でAndroid/Linux共にM.2 SATA SSDから起動できるようになった


Orange Pi 5の中国語DownloadページのAndroid镜像リンクをたどってみたところ、SPIFlash-SATA SSDというディレクトリが・・・

え?と思って、ダウンロードしてRKDevToolを使って書き込みを試して見るも「Switch into SATA storage Fail, did not support to switch in」というエラーで成功しない。

改めて中国ページの官方工具にあるマニュアルを確認してみると「OrangePi_5_RK3588S_用户手册_v0.7.pdf」と英語ページにあるマニュアルよりだいぶバージョンが上がっている。

ただ、M.2 SATA SSDからAndroidを起動する場合の書き込み手順について違う点はなく、原因は不明・・・

(注:最終的にはLinux側でSPIFlashを書き換えるとAndroidの書き込みが成功するようになりました。)

LinuxをM.2 SATA SSDから起動

その他にないかマニュアルを読み直すとM.2 SATA SSDからLinuxを起動する手順が掲載されているので、そちらを試行してみた。

マニュアル上の重要なポイントは以下

実際にやってみる。

まずSPIFlashの書き換えに使うファイルを確認

orangepi@orangepi5:~$ ls -ld /usr/share/orangepi*
drwxr-xr-x 2 root root 4096 Dec 22 19:36 /usr/share/orangepi
drwxrwxr-x 2 root root 4096 Dec 12 17:58 /usr/share/orangepi5
orangepi@orangepi5:~$ ls -l /usr/share/orangepi
total 4
-rw-r--r-- 1 root root 3269 Dec 22 19:34 boot.cmd
orangepi@orangepi5:~$ ls -l /usr/share/orangepi5/
total 16384
-rw-rw-r-- 1 root root 16777216 Dec 12 17:58 rkspi_loader_sata.img
orangepi@orangepi5:~$

SPIFlashを書き換えます。

orangepi@orangepi5:~$ sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0
[sudo] password for orangepi:
32768+0 records in
32768+0 records out
16777216 bytes (17 MB, 16 MiB) copied, 244.953 s, 68.5 kB/s
orangepi@orangepi5:~$

現状のM.2 SATA SSD上のブートローダ、パーテーションをddでzeroを書き込んで消します。

orangepi@orangepi5:~$ sudo dd bs=1M if=/dev/zero of=/dev/sda count=2000 status=progress
1754267648 bytes (1.8 GB, 1.6 GiB) copied, 2 s, 877 MB/s
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB, 2.0 GiB) copied, 5.5852 s, 375 MB/s
orangepi@orangepi5:~$
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
orangepi@orangepi5:~$

次にmicroSD上にコピーしておいたLinuxイメージをM.2 SATA SSDに書き込みます。

orangepi@orangepi5:~$ sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress
8129609728 bytes (8.1 GB, 7.6 GiB) copied, 119 s, 68.3 MB/s
7800+0 records in
7800+0 records out
8178892800 bytes (8.2 GB, 7.6 GiB) copied, 121.861 s, 67.1 MB/s
orangepi@orangepi5:~$

書き込み完了後のパーテーションはこのようになります

orangepi@orangepi5:~$ sudo sync
orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
GPT PMBR size mismatch (15974399 != 1000215215) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start      End  Sectors  Size Type
/dev/sda1   61440   585727   524288  256M Linux extended boot
/dev/sda2  585728 15974366 15388639  7.3G Linux filesystem
orangepi@orangepi5:~$

書き込んだM.2 SATA SSDの/dev/sda1 にあるorangepiEnv.txtを書き換えるためにマウントします。

orangepi@orangepi5:~$ sudo mount /dev/sda1 /mnt
orangepi@orangepi5:~$ df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       256M   95M  162M  37% /mnt
orangepi@orangepi5:~$ ls -l /mnt
total 96104
-rwxr-xr-x 1 root root   230456 Dec 22 19:39 boot.bmp
-rwxr-xr-x 1 root root     3269 Dec 22 19:34 boot.cmd
-rwxr-xr-x 1 root root     3341 Dec 22 19:51 boot.scr
-rwxr-xr-x 1 root root   215221 Dec 22 18:24 config-5.10.110-rockchip-rk3588
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb
drwxr-xr-x 3 root root     4096 Dec 22 19:36 dtb-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 Image
-rwxr-xr-x 1 root root 11119990 Dec 22 19:54 initrd.img-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root      154 Dec 22 19:51 orangepiEnv.txt
-rwxr-xr-x 1 root root     1542 Dec 22 19:48 orangepi_first_run.txt.template
-rwxr-xr-x 1 root root  7853912 Dec 22 18:24 System.map-5.10.110-rockchip-rk3588
-rwxr-xr-x 1 root root 11120054 Dec 22 19:54 uInitrd
-rwxr-xr-x 1 root root 33915392 Dec 22 18:24 vmlinuz-5.10.110-rockchip-rk3588
orangepi@orangepi5:~$

orangepiEnv.txtの最後に「overlays=ssd-sata」を追加します。

orangepi@orangepi5:~$ sudo cp /mnt/orangepiEnv.txt /mnt/orangepiEnv.txt.org
orangepi@orangepi5:~$ sudo vi /mnt/orangepiEnv.txt
orangepi@orangepi5:~$ cat /mnt/orangepiEnv.txt
verbosity=1
bootlogo=true
overlay_prefix=rk3588
fdtfile=rockchip/rk3588s-orangepi-5.dtb
rootdev=UUID=5ead0754-b05b-4f29-8170-b0620e7ae6d2
rootfstype=ext4
overlays=ssd-sata
orangepi@orangepi5:~$

書き込んだらumount

orangepi@orangepi5:~$ sudo umount /mnt
orangepi@orangepi5:~$

このあと、microSDを抜いて、M.2 SATA SSDのみで電源を入れると、M.2 SATA SSDから起動しました。

orangepi@orangepi5:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: WT M.2 512G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 58FCCC02-859A-5041-ADA7-14802AADF341

Device      Start       End   Sectors   Size Type
/dev/sda1   61440    585727    524288   256M Linux extended boot
/dev/sda2  585728 990183423 989597696 471.9G Linux filesystem
orangepi@orangepi5:~$

Android再挑戦

Linux側でSPIFlashを書き換えたあとであれば成功するかな?と試してみたところ、これまで失敗していたところは問題無く終了し、書き込みが実行されるようになりました。

(microSDをさしっぱなしにしていると途中で失敗するので注意)

Androidの書き込み完了後は自動的に再起動されAndroidが起動します。

なお、起動したAndroidは、WiringOPアプリが追加されている以外はあまり違いがないような感じでした。


2023/01/12追記

新しいM.2 SATA SSDが届いたので、Androidイメージを書き込むべく、とりあえず「sudo dd if=/usr/share/orangepi5/rkspi_loader_sata.img of=/dev/mtdblock0」を行ったあとに、RKDevToolで書き込みを実施してみましたが、書き込みはfailしました。

「sudo dd if=Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img of=/dev/sda bs=1M status=progress」でLinuxイメージを書き込み、一度起動させたあとで、RKDevTool書き込みを試すと、成功しました。

(このとき、Linuxを書き込んだあとのorangepiEnv.txt 修正を忘れたので、Linux起動が途中で失敗してinitramfsで止まりましたが、電源強制オフのあと、Android書き込みには問題ありませんでした。)

Orange Pi 5のまとめ 2023/01/13版


Orange Pi 5 が届いた」を始めにいろいろOrange Pi 5に関する記事をいろいろ書いていったら探しにくくなってしまっているので、まとめ記事を作成しました。

この記事の更新履歴

2023/01/07: 作成
2023/01/13: Chromium OS(openFyde)について追加。microSDとM.2 SSDの優先順位について修正。M.2 SATA SSDの入れ替えに関して追加

仕様について

M.2スロットで使用できるもの

・M.2 NVMe SSD(M-key)

M.2 M-keyで使えるSSDには、M.2 NVMe SSDとM.2 SATA SSDの2種類があります。

Orange Pi 5の公式仕様としてはM.2 NVMe SSDが使用できる、ということになっています。

Orange Pi 5ではM.2 NVMe SSDの2242が適切なサイズですが、日本で買うと高いです。

aliexpressでは日本の半額程度で買え、2週間程度で届きます。

私はKingSpecというメーカの512GBを買いました。詳細は「aliexpressでM.2 2242サイズのSATAとNVMeを買ってみた

・コンバーターボード経由でM.2のA/E-keyのWiFiカード

本来はA/E-keyのM.2はM-keyにさすことが出来ませんが、コンバーターボードを使うことでさすことができます。

詳細については TechnicaLifeさん「Orange Pi 5 で Intel AX200 Wi-Fi を使う」にて

・限定的にM.2 SATA SSD(M-key)

2023/01/07時点ではOrange Pi 純正Ubuntu/Debianで使える手法ですが、microSDからLinuxを起動したあと、ssd-sataというkernelモジュールを読み込むことでM.2 SATA SSDを利用することができるようになります。

詳細「Orange Pi 5でデータディスクとしてならM.2 SATAも使える

2022/12/23に中国サイトでのみリリースされてたAndroidイメージではM.2 SATAから起動できるイメージなるものがありました。(いま気がついたのでダウンロード中です)

中国サイトのマニュアルにLinux/AndroidでM.2 SATA SSDから起動するための手順が書かれていました。
詳細「Orange Pi 5でAndroid/Linux共にM.2 SATA SSDから起動できるようになった

microSD起動とM.2 SSD起動の切り替え

microSDとM.2 SSDを両方入れている場合にどちらを優先するか、というあたりはnand領域に書き込んで設定しているようです。 基本的には起動できるmicroSDがあればそちらから起動するようです。

どちらかしかさしていない状態であれば、さしているデバイスから起動するようになっているようです。

このため、うちではM.2 NVMe SSDから起動するように設定した後、他のOS環境を試す際は、一度M.2にさしたSSDを取り外して、microSDのみにして起動しています。

M.2 NVMe SSD起動とM.2 SATA SSD起動の切り替え

「Androidを書き込んだM.2 NVMe SSD」と「Androidを書き込んだM.2 SATA SSD」をさしなおして環境をかえられるかな?とやってみましたが、無理でした。

SPIFlashの内容を書き換えないと駄目なようですが、RKDevToolで自動化されている作業を手動でできるのかが不明です。

なお、RKDevToolを使って、M.2 SSDをフォーマット/書き換えすれば切り替え自体はできました。

M.2 SATA SSDのLinuxとM.2 SATA SSDのAndroidの切り替え

M.2 SATA SSDを2枚用意して、差し替えることで起動を切り替えられるか試してみましたが上手くいきませんでした。どうやらLinux起動用の設定とAndroid起動用の設定は違うようです。

Linuxについて

Orange Pi純正のUbuntu/Debianの他に、2022年末にarmbianのベータ版公開が始まりました。

Orange Pi純正は2023年1月にも更新されてv1.0.8(年末はv1.0.6だった)になっていますが、v1.0.6からv1.0.8相当にアップデートする手法がわからない、というのが難点です。

GPUドライバがない件

2023/01/07時点ではOrange Pi純正もarmbianも初期設定では、ソフトウェア処理となっていて、SoCに含まれているGPUが有効活用されていません。

Panfrost GPU driverを適用するとSoCのGPUが活用できます。

Orange Pi 5純正のUbuntuのGPU表示を高速化できるのか?」で試したのですが、確かに数値としては速くなったものの全体的な動きに問題がありました。

armbianの方は、armbianのページにかかれている解説の通りに実行するこで組み込み正常動作はするのですが、あまり変化がなく微妙でした・・・

また、2023/01/03リリースの Orangepi5_1.0.8_ubuntu_jammy_desktop_xfce_linux5.10.110.img で起動した際、初期状態の /etc/chromium-browser/default に対して「CHROMIUM_FLAGS=”-use-gl=egl”」という変更を加えたところ、それだけで、chromiumブラウザ上でのWebアクアリウムがfps:3からfps:60に改善されるという状況に・・・

2023/01/07時点ではGPU周りはまだ混沌としている感じです。

Androidについて

2023/01/07時点で公式から配布されているAndroidイメージにはGoogle Playは含まれていません。
→「Orange Pi 5をAndroid 12で動かす

中国サイトにあるOrange Pi OS(Droid)にも含まれていませんでした。
→「Orange Piの中国サイトからだとOrange Pi OS(Droid)が入手できる

じゃあ、Google Playが使えないか、というとそうでもなくて、Androidの開発者向けオプションにあるDSU Loader機能を使うとなんとか使えるようになる、というのを発見しました。
→「Orange Pi 5用Android 12からGSIイメージの汎用Androidを起動する

また、Orange Piの中国サイトで2022/12/23にリリースされたAndroidイメージはM.2 SATA SSDから起動できるものがあるようです。(いま気がついたのでダウンロード中です…)

ためした限りではAndroid部分はWiringOPというGPIO関連のテストを行うアプリが追加されていましたが、それ以外はあまり差がないようでした。

Chromium OSについて

ChromeBookなどで使われているChromeOSには、オープンソースのみで構成されているChromium OSというものがあります。

このChromium OSをベースとしていろんな機種で動作させるようにするプロジェクトがいくつかあり、その1つのFydeOSという商業ベースのものがあります。

このFydeOSのオープンソース版は以前からあったのですが2022年になってからopenFydeという名称を付けて展開を始めています。このopenFydeで2023/01/07からOrange Pi 5向けの開発と提供が始まっていました。

さっそく導入してみました→「Orange Pi 5でChromium OS(openFyde)を動かす

ChromeアプリやLinuxについては特に問題無く動いています。音声出力にも問題はありません。

Orange Pi 5用Android 12からGSIイメージの汎用Androidを起動する


Orange Pi 5用として公式で出ているAndroid 12とOrange Pi OS (Droid)のどちらにもGoogle Playは入っていなかった。

しかし、開発者向けオプションを有効にしてみると、DSU Loaderが使えることがわかった。

また、root権限が使える状態であるため、DSU Sideloader を使うと好きなGSI イメージを使って起動させることができそうです。

(注: LCD用Androidイメージ+Type-Cディスプレイの場合、GSIイメージで起動すると最初はHDMI出力のみで、初期セットアップ完了後じゃないとType-Cディスプレイが使えませんでした)

phhussonさんとこのGeneric System Image (GSI) List からAOSP 12.1 v416を使って見ました。

(なお、GSIイメージによっては黒画面のまま起動してきません)

まず、起動したAndroid上の検索枠で「dsu loader github」と検索すると出てくるDSU Sideloaderのgithubページにある apkファイルをAndroidにインストールして、DSU Sideloaderアプリの設定で「Build-in installer」を有効にしてから、GSIイメージを選択してインストールします。

Userdate sizeを30GB以上に設定しないと原神はインストールできないと思います。(22GBだと駄目だったので、とりあえず50GBで設定した)

インストールに使用するGSIイメージは system-squeak-arm64-ab-gapps.img.xz を使いました。Androidブラウザでダウンロードするとファイル名が system-squeak-arm64-ab-gapps.bin で保存されてしまうので、保存完了後ファイル名を system-squeak-arm64-ab-gapps.img.xz に変更する必要があります。

正常に導入が終わると「Reboot into DSU」というボタンが現れるので、それをクリックすると、GSIイメージのAndroidが起動します。

正常に動作するGSIイメージであればAndroidの初期画面が表示されるでしょう

Google Playストアがありますね

で・・・原神も動きました。

ただ、Orange Pi 5のAndroidだとHDMI/Type-Cディスプレイで音が出るんですが、GSIイメージから起動すると、Orange Pi 5オンボードのイヤフォン端子からのみ音が出る、という状態でした。

原神は、初期設定だとグラフィック設定:低いとちょっと荒い表示ですが、設定で「最高」を選んでも問題無く動きました。

その際の消費電力は5V1.8Aぐらいを上限として1.1A~1.8Aを動いている感じでした。


Lenovo/ワコム液晶をType-Cコネクタ1本でつないだ場合の使い勝手について

OrangePi5_RK3588S_Android12_spi-nvme_lcd_v1.0.0.img
→ いまいち。タッチ動作がおかしくなったり、GSIイメージで起動した場合のディスプレイ出力が怪しかったりする
  なぜかGSIイメージで原神を起動するとすぐに落ちる
  ブート画面はType-C側に出力される

OrangePi5_RK3588S_Android12_spi-nvme_v1.0.0.img
→ 問題無し? 液晶側から音もなるが、GSIイメージ起動の場合はOrange Pi本体のイヤフォン端子からのみ音が出る
  GSIイメージで原神は問題無く動いた
  ブート画面はHDMI側に出力され、Type-Cディスプレイしかつないでない場合、起動が完了するころまで黒画面のままとなる

OrangePi-OS_Droid_orangepi5_spi-nvme_v0.0.2_beta.img
→ OrangePi5_RK3588S_Android12_spi-nvme_v1.0.0.imgとだいたい同じような感じ。
  v0.0.3へのアップデートがふってくることと来ないことがあるのが謎
  GSIイメージで原神は問題無く動いた
  ブート画面はHDMI側に出力され、Type-Cディスプレイしかつないでない場合、起動が完了するころまで黒画面のままとなる