ROCK Pi Sを設定してみる (NetworkManagerでWi-Fi設定が主)

ROCK Pi S

ROCK Pi Sを購入したので、「armbianで遊ぶぞー」と思っていたのだが、armbianのサイトからダウンロードできるOSイメージは「minimal legacy kernel 4.4.y」と書かれていて、実際にダウンロードできたファイルも Armbian_21.02.1_Rockpi-s_buster_legacy_4.4.247_minimal.img (Debianの場合)だった。レガシーな4.4系しか提供されていないらしい。
しかし、どうせならメインラインである5.10系を使いたい。
そこで、何も考えずにarmbianのビルドを行ったが、ビルドそのものは成功するものの、完成したイメージをmicroSDカードに焼いたところ起動しなかった。これはフルイメージでもミニマルイメージでも同じ。確認のためにレガシーをビルドしたところ、これはフルイメージでもミニマルイメージでも正常に起動した。
どうもメインラインだと起動しないらしい。うちの環境でビルドした場合だけそうなのかと思って調べてみたら見つけた。
Rockpi S doesn't boot mainline kernel
書いてある内容から21.05で対応したって意味かな?と思ったけど、その21.05でビルドして起動しないので未完了っぽい。残念。

ネットワーク

有線LANは特に何もせずにLANケーブルで繋げばIPv6はSLAACで、IPv4はDHCPで自動的につながる。NetworkManagerがデフォルトなのでそれ用の設定を必要に応じて追加で。(有線LANについてはこれだけ)

以下、無線LANについて。ただし、この記事は「ROCK Pi Sを設定」と題しておきながらROCK Pi Sでは確認していないのでスミマセン

$ dmesg
中略
[   10.645051] [WLAN_RFKILL]: get_wifi_addr_vendor: rk_vendor_read wifi mac address failed (-1)
後略

MACアドレスが読み取れないという警告。元々固定されたユニークなMACアドレスが無いタイプかしら?(次へ)

任意のMACアドレスをarmbianEnv.txtで指定する。

/boot/armbianEnv.txt (1行追加 既存のextraargs行があればその次の行にでも)
extraargs=rtl8723ds.rtw_initmac="00:00:00:00:00:00"

もちろん、MACアドレスは00:00:00:00:00:00ではなく何か適切なのを。
適切がわからなければ、例えばそのときのMACアドレスを ip addr などで調べてwlan0のether値を拝借するとか。

これで、次回以降は起動時にMACアドレスが固定で付くので先のエラーは出なくなる。

/etc/NetworkManager/conf.d/10-disable-wifi-random-mac-address.conf (新規)
[connection]
wifi.mac-address-randomization=0

[device]
wifi.scan-rand-mac-address=no

既に同内容のファイルがあるなら不要

一部のボードではWi-Fiの設定(接続プロファイルの作成)をarmbian-configで行うと、そのときはWi-Fiに接続できるがシステムを再起動すると接続されない状態になってしまう筈。設定が足りないなどのバグだと思うのでそのうちに修正されるかもだけど。(armbian-configで接続プロファイルを作る場合も何か特別なことをするわけではなく以下で行うのと同じ設定ファイルを出力する)
とりあえず、armbian-configは信用しないので使わずにWi-Fiの接続プロファイルを作成する。

$ sudo nmcli device wifi connect AP-SSID password AP-PSK

AP-SSIDの部分を自宅のWi-FiルーターなどのSSIDと置換する。
AP-PSKの部分を自宅のWi-Fiルーターなどの所謂パスワードと置換する。

この nmcli device wifi connect・・ を使った「接続設定」は /etc/NetworkManager/system-connections 下の 接続先APのSSID +.nmconnection という名前のファイルに書き込まれる。

Wi-Fiの設定を/etc/network/interfacesに書くというのはやらない。これで設定を作るとnmcliコマンドで「接続」に対する設定ができないから。

登録した接続プロファイルでAPに手動で接続する場合
$ sudo nmcli connection up 接続先APのSSID
切断する場合は up の代わりに down。
登録したAPの接続プロファイルを削除する場合。
$ sudo nmcli connection delete id 削除するAPのSSID

Wi-Fiは、省電力モードが有効になっていると結構ウザい。Wi-Fiの省電力モードは無効化する。

$ nmcli -p connection show 接続先APのSSID
中略
802-11-wireless.powersave:              0 (default)
後略

上の例のように0であるなどとにかく2以外の値であったら省電力モードが有効である可能性が高い。
0は、デフォルト値ということだが、実際は何かわからない。
1は、無視ということだが意味不明。
2は、省電力モードがオフ。
3は、省電力モードがオン。

次のように変更する。
$ sudo nmcli connection modify 接続先APのSSID 802-11-wireless.powersave 2
$ nmcli -p connection show 接続先APのSSID
中略
802-11-wireless.powersave:              2 (disable)
後略
こうなればOK。
この nmcli connection modify を使った設定変更は /etc/NetworkManager/system-connections 下の 接続先APのSSID +.nmconnection という名前のファイルに書き込まれる。

例えば、armbianの一部のボードでは?先のAPの登録方法だと通信に使用するネットワークインターフェースがwlan0ではなくp2p0にWi-Fi接続ができることがある。どちらが良いのかは知らないがwlan0にしたいなど使用するインターフェースを変更する場合。

$ sudo nmcli connection modify 接続先APのSSID connection.interface-name wlan0
上の例ではwlan0というのが変更後に使用されるインターフェース名。

ここまではDHCPの場合。
IPアドレスを固定というかマニュアルで設定したいこともある。IPアドレスの指定メソッドをマニュアルにし、IPアドレスとサブネットマスクを指定する。

$ sudo nmcli connection modify 接続先APのSSID ipv4.method manual ipv4.addresses 192.168.0.10/24

ここでは設定するインターフェイス(Wi-FiならSSID)のIPアドレスを192.168.0.10、サブネットマスクを/24 (255.255.255.0)とする。

DHCPならゲートウエイとネームサーバも自動設定だが、マニュアルではこれらも指定しなければならない。

$ sudo nmcli connection modify 接続先APのSSID ipv4.gateway 192.168.0.1  #デフォルトゲートウェイ
$ sudo nmcli connection modify 接続先APのSSID ipv4.dns  192.168.0.1   #ネームサーバ1つめ
$ sudo nmcli connection modify 接続先APのSSID +ipv4.dns 8.8.8.8    #ネームサーバ2つめ (追加)
$ sudo nmcli connection modify 接続先APのSSID +ipv4.dns 8.8.4.4    #ネームサーバ3つめ (追加)

#上の3つのネームサーバをまとめて指定するなら⬇のようにする
$ nmcli connection modify 接続先APのSSID ipv4.dns 192.168.0.1 +ipv4.dns 8.8.8.8 +ipv4.dns 8.8.4.4

この例ではゲートウェイのIPアドレスを192.168.0.1とする。ネームサーバは192.168.0.1と追加でGoogleのDNS 8.8.8.8と8.8.4.4を指定する。

nmcliコマンドで設定すると即時反映で設定もファイルに書き出されるので次回以降も指定した内容が使われる。ラクだけど何か気に入らない。

ROCK Pi Sを買ってみた

ROCK Pi S

昨年末頃に、ADS-B受信用に使っていたOrange Pi Zero Plusが停止(死亡?)したため新しくOrangePi Zero 2を購入したのだが、これがどうもよろしくない。OSとして利用するつもりだったarmbianはまだ使い物にならない段階でしかもあまり開発が活発ではない。orangepi.orgで提供されているOSは2020年11月から更新がなく、USBの挙動がなんかヘン。そして安定稼働しない。温度が上がったわけでもメモリやストレージを使い果たしたわけでもないのだが暫く動かしてるとハングアップする。そんな感じ。長期稼働を目的としてるのに信用できない。
そこでOrangePi Zero 2とは別のSBCを購入することに。今度はROCK Pi S。理由は安いから。もちろんスペックは低い。こちらはarmbianで「サポート」のステータスなのでOSが使い物にならないということはない(筈)。

2021年5月2日追記: Orange Pi Zero 2でUSBがおかしかったのは接続したUSBデバイスのせいだったみたい。

Rock Pi S 1
ROCK Pi Sについてはこちら。ROCK Pi Sはバリアントが多く、メモリ容量、Wi-Fi/Bluetoothの有り無しの他にPoEの有無、SLC NANDの有無とNANDの容量の違いがある。NANDはSLCということになっている。これは「なんちゃってSLC」かもしれないが不明。
今回の購入はALLNET Chinaから。ROCK Pi S本体はSLC NANDは無しで512MBメモリ+Wi-Fi/Bluetoothのものを選択。これがUS$13.99。専用金属ケースUS$4.99。送料がUS$7.30。安いようでこれだけで3,000円弱なので安くはない印象。China Postの普通便にしては送料が高すぎ。
注文から出荷までは早かった。しかし、深圳から出荷され同じ深圳にある国際交換局に届くまで複数の仕分けセンターを行ったり来たりを2週間。待ちくたびれた頃にようやく深圳の国際交換局に届いたかと思ったらその日の夜には日本に到着。翌朝に通関。通関が日曜だったのでその日の配達はなかったが翌日(今日)配達された。普通は国際交換局に届いてから飛行機に乗るまでが長いので珍しいかなと。仮に、集荷の翌日に国際交換局に行ってたら3泊4日、夜中通関で当日配送だったら2泊3日もありえたかもなので深圳内の無駄な2週間が残念。
で、あっちこっちで仕分けをくぐり抜けた割には潰れもなく無事到着。
上の画像は、左の白いのが届いたパッケージ。右は大きさ比較用のDVD(実際はBD-R)

Rock Pi S 2
白いビニールの中はダンボールで、緩衝材として白い繭のような発泡材が申し訳程度に入っている。スカスカなので潰れなかったのが奇跡。

Rock Pi S 3
ROCK Pi Sの基板本体は樹脂ケースに入っていた。NanoPiやOrangePiは袋だったので「やるなぁ」という感じ。右はROCK Pi S用のケース。

Rock Pi S 4
それぞれ開けてみた。右のケースの方は中にネジなどが入っていた。

Rock Pi S 5
ROCK Pi Sのチップの文字が浮かび上がるように斜めから撮ってみた。
一番大きなチップがSoCでRockchip RK3308。その下のチップがXi'an UniIC Semiconductorsのメモリ。このメモリは変わることがあるみたい。
SoCの左下方向にType-CのUSBポートがあって指紋の一部のようなものが写っているが、これは「がとらぼ」の中の人が触ったのではなく最初から。梱包した人は素手なのかしら?汚いし気持ち悪いのでやめていただきたいところ。

Rock Pi S 6
ケースの内側に基板を置いて四隅をネジ止め。今回はハット類は買ってないのでスペーサーは使わない。黒いネジは7本入ってたけどどういうことかしら?
このケースは全体的に粉体塗装っぽいザラザラ仕上げになっているが、内側のLANコネクタ近くはハケで塗ったみたいにテカってる。

Rock Pi S 7
RK3308はあまり熱が出ない?冷却は一切考慮されていないようで、ヒートシンクは付属しないしオプションも用意されていない。そもそも、ケース内部に空気を流すことも想定されていない造りなのでヒートシンクや冷却ファンを付けても熱をケース外に逃す方法が無い。それでも何も無しはいくらなんでもあんまりですと思ったので大きさがSoCとほぼ同じなヒートシンクを熱伝導テープで貼り付けた。(たぶん意味はない)
IPX-SMAケーブルは付属しないが、余ったのがあったので取り付けた。ケース側にはアンテナ用の穴が開いているのでそこに端子を取り付けた。

Rock Pi S 8
例によってSMA端子にはダミーロードを取り付ける。

Rock Pi S 9
RJ45とUSB Type-Aの端子がある側。端子のツラはぴったり。さすが専用ケース。

Rock Pi S 10
ダミーロードの代わりに2.4GHzのWi-Fi用を取り付けてみた。(使わないけど)
ALLNET Chinaでは2.4GHzと5.8GHz(中国のWi-Fi)のハイブリッド外付けアンテナとIPX-SMAケーブルのセットがUS$3.99で販売されている。IPX-SMAが意外と高いのでこの価格は妥当かと思う。ROCK Pi Sのケースの写真はWi-Fiアンテナが写っているので付属していると勘違いするかもなので注意。ケースはケースだけ。

Rock Pi S 11
OS入りのmicroSDカードを挿してLANと電源用USB Type-Cのケーブルを接続すると起動する。写真では判らないかもだけど青いLEDがどぎつく眩しい。このLEDはちょっと勘弁して欲しいかな。上の画像ではMIC ARRAYと書かれた上の穴から青いのが見えているが、何かのハットが付いていたらここからは光がモレないかも。本来は中央のWi-Fiアンテナ端子用(の穴)の下にある「ACT」の小さい丸穴が青LED用の穴みたい。その左隣に電源のインジケータとして「PWR」の丸穴があってそちらは緑のLEDだがそれは全然目立たない。光もキツくない。上の画像でもACTの左下にPWRの丸穴が写っているが、緑がかき消されて青く光ってるように見えている。(正面からだと緑に見える)

ROCK Pi SでUNIX BENCH

$ cpufreq-info -s
408000:45826, 600000:363, 816000:35, 1008000:158, 1200000:70, 1296000:6563  (144)
$ ./Run -c 1 -c 4

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: rockpi-s: GNU/Linux
   OS: GNU/Linux -- 4.4.247-rockpis -- #11 SMP PREEMPT Sun Feb 14 22:51:47 CET 2021
   Machine: aarch64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   15:00:39 up 9 min,  1 user,  load average: 0.22, 0.11, 0.08; runlevel 5

------------------------------------------------------------------------
Benchmark Run: Mon Mar 08 2021 15:00:39 - 15:28:42
0 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        5065729.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1311.5 MWIPS (9.7 s, 7 samples)
Execl Throughput                                684.0 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        141067.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           41527.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        325098.1 KBps  (30.0 s, 2 samples)
Pipe Throughput                              396605.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  49805.8 lps   (10.0 s, 7 samples)
Process Creation                               1946.3 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1330.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    449.7 lpm   (60.1 s, 2 samples)
System Call Overhead                         636397.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    5065729.5    434.1
Double-Precision Whetstone                       55.0       1311.5    238.5
Execl Throughput                                 43.0        684.0    159.1
File Copy 1024 bufsize 2000 maxblocks          3960.0     141067.4    356.2
File Copy 256 bufsize 500 maxblocks            1655.0      41527.0    250.9
File Copy 4096 bufsize 8000 maxblocks          5800.0     325098.1    560.5
Pipe Throughput                               12440.0     396605.3    318.8
Pipe-based Context Switching                   4000.0      49805.8    124.5
Process Creation                                126.0       1946.3    154.5
Shell Scripts (1 concurrent)                     42.4       1330.8    313.9
Shell Scripts (8 concurrent)                      6.0        449.7    749.5
System Call Overhead                          15000.0     636397.3    424.3
                                                                   ========
System Benchmarks Index Score                                         298.7

------------------------------------------------------------------------
Benchmark Run: Mon Mar 08 2021 15:28:42 - 15:56:55
0 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       20245021.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     5247.3 MWIPS (9.7 s, 7 samples)
Execl Throughput                               2028.7 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        225129.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           61434.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        592134.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1560579.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 229681.6 lps   (10.0 s, 7 samples)
Process Creation                               4016.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   3672.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    496.8 lpm   (60.3 s, 2 samples)
System Call Overhead                        2458935.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   20245021.9   1734.8
Double-Precision Whetstone                       55.0       5247.3    954.1
Execl Throughput                                 43.0       2028.7    471.8
File Copy 1024 bufsize 2000 maxblocks          3960.0     225129.0    568.5
File Copy 256 bufsize 500 maxblocks            1655.0      61434.0    371.2
File Copy 4096 bufsize 8000 maxblocks          5800.0     592134.7   1020.9
Pipe Throughput                               12440.0    1560579.4   1254.5
Pipe-based Context Switching                   4000.0     229681.6    574.2
Process Creation                                126.0       4016.2    318.7
Shell Scripts (1 concurrent)                     42.4       3672.6    866.2
Shell Scripts (8 concurrent)                      6.0        496.8    828.1
System Call Overhead                          15000.0    2458935.9   1639.3
                                                                   ========
System Benchmarks Index Score                                         772.9

$ cpufreq-info -s
408000:70067, 600000:1689, 816000:35, 1008000:158, 1200000:70, 1296000:325078  (580)

使っているOSはArmbian 21.02.2 Buster with Linux 4.4.247-rockpisというもの。
今回はClass2のクソ遅いmicroSDカードを使っているのでファイルコピーなどの性能が低く計測されている可能性があるので念の為。
1.3GHzが最高クロックの状態で測定してシングル・4パラレルの両方でRockchip RK3328のNanoPi NEO3 (1.3GHz)のおよそ90%というインデックススコア。意外と良い値。これで温度が上がらないならRK3308は良いチップかも。

ノートPCにChromium OSじゃなくてChrome OSを入れてみた

Chrome OS

久しぶりにCloud Ready (Chromium OS)を使ってみようと思ってインストールしようとしたのだが、失敗した。USBメモリに書き込んだイメージでCloud Readyを起動して使うことは問題ないのだが、HDDにCloud Readyをインストールしようとするとダメなの。

Chrome OSをインストール 1
Cloud ReadyのHDDへのインストールでは、GPT周りのエラーが出て失敗する。ハードディスクのGPTを全て削除してローレベルフォーマットをしても同じ。インストールしようとしているPC自体が元からEFIかGTPパーティション周りに問題ありでPC-BSD(オワコン)など同様にインストールできないOSがチラホラ。しかし、Cloud Readyは以前の記事の2018年夏頃のバージョンでは正常にインストールできてたのに・・・

以前に触った別のChromium OSのArnoldTheBats World of Whimsyも試してみたが、こちらはUSBメモリで起動できるのはもちろんHDDにインストールすることにも成功した。これは以前ももちろん成功している。

Chromium OSを触りたいという欲求であれば、正常にインストールできたArnoldTheBats World of Whimsyを使い続ければよいのだが、今回はCloud Readyの気分だったので、よりによってCloud Readyの方がインストールできないということで大変気分を害してしまった。

どうするか・・・
「Cloud Readyが使えないならChrome OSを使えば良いじゃない?」これだ。(ヤケクソ)

この記事の内容を行うにはChrome OSをインストールするPC(HDD/SDD)とは別にLinuxの動くPCが1台必要です。また、Chrome OSをインストールするPCによってはこの記事と同じ作業だとUEFI絡み等でChrome OSが起動しない場合があります。(この記事とは違うやり方でないとダメかも)

Brunchの準備

Linux PCでの作業:
Chrome OSをPCにインストールするにはBrunchが必要。GitHubのBrunchの説明を読む。これがほぼ全てのドキュメント。解りやすく書かれているのでそのとおりにするだけ。
https://github.com/sebanc/brunch

Brunchの在り処
https://github.com/sebanc/brunch/releases
バージョン(r)は別途入手するChrome OSのリカバリイメージのバージョンに合わせれば良さそう。

ChromeOSリカバリイメージの入手

これもBrunchのドキュメントに書かれている。

  • 「rammus」は、第4世代IntelCPU以降を搭載したデバイスに推奨されるイメージ
  • 「samus」は、第3世代IntelCPU以降を搭載したデバイスに推奨されるイメージ
  • 「zork」はAMDRyzen3XXXに使用するイメージ
  • 「grunt」は、AMD StoneyRidgeに使用するイメージ

リカバリイメージの在り処
https://cros-updates-serving.appspot.com/
https://cros.tech/

今回インストール予定のノートPCはCeleron B820というSandy Bridge世代CPUを搭載したもの。つまり第2世代のCoreの中でもザコ中のザコ。上の種類を見ると古すぎて対象外。
そうはいっても動くくらいは動くだろうということでダウンロードしたのは「sums」のPinned 87、ファイル名は chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin.zip
このファイルの中にイメージファイルが(1ファイルだけ)入っているので解凍する。(どこか、わかりやすいPathに、できれば新しいディレクトリを作成してその中に)

Brunchのtar.gzファイルもChrome OSのリカバリイメージファイルを置いたのと同じディレクトリに解凍する。(ファイルが4つほど出てくる)

GPTパーティションを触るのでそれ用のパッケージを追加する。下はdebian/ubuntu系の例。

$ sudo apt-get install cgpt
ここまで前準備完了。

ハードディスク/SSDの準備

Chrome OSをインストール 2
Chrome OSをインストールする予定のノートPCのハードディスクを取り外す。20年以上前はノートPCの裏蓋が素人には開けられないような酷い造りの機種もあったけど、最近のノートPCは裏面でメモリやストレージの部分だけフタが外せるようになっていて脱着が簡単なのが多い。作業時は先にバッテリとACアダプタの取り外しを忘れずに。

Chrome OSをインストール 3
上の画像のノートPCの場合はHDDを固定するための保持金具があったのでそれも外した。機種によっては保持金具が無いものも。HDDマウンタに刺さるなら外さなくても問題ない。

Chrome OSをインストール 4
取り外したHDDをUSB接続タイプの外部HDDマウンタに嵌める。画像のHDDマウンタは3.5インチHDDと2.5インチHDD/SSD兼用なので2.5インチHDDを乗せると凹みがスカスカに余っているけどSATAのコネクタと電源の部分は3.5インチも2.5インチも同じ。このHDDマウンタのUSBケーブルをLinux PCに接続する。USB接続タイプならケーブルの抜き差しはあまり考えずに行って良いけど、eSATAの場合は接続先のPCの電源を落として接続、シャットダウンしてから切断の手順。(一部のPnP対応機器を除く)

Chrome OSのリカバリイメージの書き込み

今回はノートPCのHDDを取り外してUSB外付けでLinux PCに接続し、このHDDにChrome OSを書き込む。そこで重要なのはLinux側で外付け状態になっているノートPCのHDDがどういうデバイス名として認識されているか。これを間違うと当然書き込むことができないだけでなく関係ないHDD/SSDのデータを壊してしまうことになるかも。
ハードディスク,SSD,メモリカード等であれば基本的には1台めが/dev/sda、2台めが/dev/sdbのようなデバイス名になる。(debian/ubuntu系Linuxの場合)
今回「がとらぼ」の中の人の環境では、Linuxの動いているPCのシステム用HDDが/dev/sda、USB外付けのノートPCのHDDが/dev/sdb。必ずこのデバイス名であるとは限らず、特にLinuxで動いているPCにOS用のSSDとデータ用のHDDが入っていて、外付けHDDが3つめのストレージであれば/dev/sdcかもしれない。また、デバイスによっては/dev/sdXですらないこともあるので確認大事。

ストレージの確認方法 (/dev/sdaを確認: これはLinuxのOSが入っているストレージを想定)
$ sudo fdisk -l /dev/sda
ディスク /dev/sda: 465.78 GiB, 500107862016 バイト, 976773168 セクタ
Disk model: Hitachi HDS72105
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: EA8B398F-7F4B-7B4E-87DF-A0DA0EAC2858

デバイス    開始位置  最後から    セクタ サイズ タイプ
/dev/sda1       4096    618495    614400   300M EFI システム
/dev/sda2     618496 958313125 957694630 456.7G Linux ファイルシステム
/dev/sda3  958313126 976768064  18454939   8.8G Linux スワップ

2台めのストレージを確認するならsudo fdisk -l /dev/sdb
3台めのストレージを確認するならsudo fdisk -l /dev/sdc
Disk modelや容量やパーティションの種類を見ればある程度は何用のストレージか区別できる筈。

以下のインストール例ではLinuxのユーザーのホームディレクトリに「1」というディレクトリを作成して、そこにBrunchを解凍したものとChrome OSのリカバリイメージを解凍したものを置いたということで。
また、 /dev/sdb にChrome OSのリカバリイメージを書き込むということにする。(以下)

赤字の部分の1つめはChrome OSのリカバリイメージのファイル名、赤字の2つ目は書き込み先のハードディスクのデバイス名。
コマンド入力後「書き込み先のストレージの全てのデータが失われますが良いですか?」の質問が英語であるので yes を入力する。

foobar@neon:~/1$ ls -l
合計 3866636
-rw-rw-r-- 1 foobar foobar  498077789  3月  3 14:04 brunch_r87_stable_20210223.tar.gz   解凍後は不要
-rwxr-xr-x 1 foobar foobar      15021  2月 23 15:07 chromeos-install.sh
-rw-r--r-- 1 foobar foobar 2320468480  1月 20 00:03 chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin
-rw-r--r-- 1 foobar foobar   33554432  2月 23 16:35 efi_legacy.img
-rw-r--r-- 1 foobar foobar   33554432  2月 23 16:35 efi_secure.img
-rw-r--r-- 1 foobar foobar 1073741824  2月 23 16:35 rootc.img
foobar@neon:~/1$ sudo chromeos-install.sh -src chromeos_13505.111.0_samus_recovery_stable-channel_mp-v3.bin -dst /dev/sdb
All data on device /dev/sdb will be lost, are you sure ? (type yes to continue) yes
umount: /dev/sdb: not mounted.
WARNING: Primary GPT header is invalid
WARNING: Secondary GPT header is invalid
B2B85F83-A9C3-9C44-AE62-766884137300
       start        size    part  contents
           0           1          PMBR (Boot GUID: B2B85F83-A9C3-9C44-AE62-766884137300)
           1           1          Pri GPT header
           2          32          Pri GPT table
    19255304   605887096       1  Label: "STATE"
                                  Type: Linux data
                                  UUID: BCD917E2-5ACD-604C-8B32-18711C360657
     2117638       65536       2  Label: "KERN-A"
                                  Type: ChromeOS kernel
                                  UUID: 17DF3785-DCA9-CF45-ACE0-F8F3D64B7C64
                                  Attr: priority=15 tries=15 successful=0 
    10866696     8388608       3  Label: "ROOT-A"
                                  Type: ChromeOS rootfs
                                  UUID: 8F8366E4-90D4-2D47-A25D-63099E546FA7
     2183174       65536       4  Label: "KERN-B"
                                  Type: ChromeOS kernel
                                  UUID: 60BF0B97-AAD7-6B46-BBB2-D78CE81D3020
                                  Attr: priority=0 tries=15 successful=0 
     2478088     8388608       5  Label: "ROOT-B"
                                  Type: ChromeOS rootfs
                                  UUID: 80B6947B-75CF-5345-9483-28357B19E6C1
       16448           1       6  Label: "KERN-C"
                                  Type: ChromeOS kernel
                                  UUID: E063D18E-E440-6842-B2E6-4336BA402558
                                  Attr: priority=0 tries=15 successful=0 
       16456     2097152       7  Label: "ROOT-C"
                                  Type: ChromeOS rootfs
                                  UUID: B60320EC-494C-744D-A377-7DAFD7421C6A
     2248712       32768       8  Label: "OEM"
                                  Type: Linux data
                                  UUID: 38B84FD4-F222-3C4E-AE10-D4ED39B76E95
     2113608           1       9  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 9356B253-1E00-5C4A-B44B-51EDCF9AD264
     2113609           1      10  Label: "reserved"
                                  Type: ChromeOS reserved
                                  UUID: 1C5D2B5A-2825-754F-9218-4081CAC277E8
          64       16384      11  Label: "RWFW"
                                  Type: ChromeOS firmware
                                  UUID: E576912C-B47F-1143-B5A6-2006430AD5FC
     2412552       65536      12  Label: "EFI-SYSTEM"
                                  Type: EFI System Partition
                                  UUID: B2B85F83-A9C3-9C44-AE62-766884137300
   625142415          32          Sec GPT table
   625142447           1          Sec GPT header
Writing partition 1
8.95MiB 0:00:00 [23.1MiB/s] [===========================================================>] 100%            
Writing partition 2
16.0MiB 0:00:00 [ 110MiB/s] [===========================================================>] 100%            
Writing partition 3
2.00GiB 0:01:05 [31.2MiB/s] [===========================================================>] 100%            
Writing partition 4
16.0MiB 0:00:00 [ 108MiB/s] [===========================================================>] 100%            
Writing partition 5
2.00GiB 0:01:04 [31.6MiB/s] [===========================================================>] 100%            
Writing partition 6
 512 B 0:00:00 [1.08MiB/s] [============================================================>] 100%            
Writing partition 7
1.00GiB 0:00:23 [43.8MiB/s] [===========================================================>] 100%            
Writing partition 8
16.0MiB 0:00:00 [ 104MiB/s] [===========================================================>] 100%            
Writing partition 9
 512 B 0:00:00 [1.11MiB/s] [============================================================>] 100%            
Writing partition 10
 512 B 0:00:00 [ 925KiB/s] [============================================================>] 100%            
Writing partition 11
8.00MiB 0:00:00 [ 105MiB/s] [===========================================================>] 100%            
Writing partition 12
32.0MiB 0:00:00 [ 120MiB/s] [===========================================================>] 100%            
ChromeOS installed.
GPT周りのエラーや警告表示が出たとしても無視で、最後の黄色字の部分(実際には黄色ではない)が表示されれば書き込み完了。
USBケーブルを外し、HDDマウンタの電源を切り暫く待ってからHDDをHDDマウンタから取り外してノートPCに戻す。
ノートPCの電源をオンにする。

Chrome OSを起動する

Chrome OSをインストール 5
普通ならOSが起動するハズが、No bootable device ということで、ダメじゃんって思うが、これが古いPCの良くも悪くもある部分。

Chrome OSをインストール 6
電源を入れ直し、[F2]でBIOSを起動する。イマドキはBIOSじゃなくてUEFIだろうけど、このノートPCは古いのでBIOS。
設定のどこかに「ブートデバイスを選択するメニュー」の「表示」「非表示」項目がある(かもな)ので、ブートメニューを表示できるようにする。このノートPCの場合は電源オン直後に[F12]でブートメニューを表示できるようにする項目があるのでそれをEnableにする。
BIOSの設定を変更したらSaveして再起動する。

Chrome OSをインストール 7
電源オンまたは再起動直後に[F12]を押すとブートメニューが表示される。この画面では優先順位が高いのが1で低いのが3。1のDVD/CDにブートメディアが入っていればそれが起動する。なければ2番のハードディスクが起動する。しかし、先程はこの2番のハードディスクを普通に起動しようとしてNo bootable deviceになっていた。
そこで、[↑][↓]で3番のEFI HDD Deviceを選択して[Enter]を押す。このノートPCではこんな感じだけど機種により様々。EFIデバイスの選択項目が無いことも。そしたら違うやり方で。

Chrome OSをインストール 8
今度はNo bootable deviceで止まらずに進んだ。(これもPCによっては必ず進むとは限らないのでスミマセン)
初回起動時はこの画像の画面を含みBrunch Frameworkの画面が幾つか長い時間(10分程度?)待たされる。操作の要求は無いのでひたすら待つだけ。初回以降は古い非力なPCで1分程度。

初回起動時はこの後Androidの初回設定のようなのが出るのでWi-Fiの設定をしたりGoogleのアカウントでログインしたり(確認認証も)幾つかの画面が表示されるので適切に入力する。

Chrome OSをインストール 9
Googleアカウントでログインまで出来た状態。壁紙が緑のぐにゃぐにゃストライプみたいなのになってるけど、これは以前にCloud Readyで設定したものが勝手に反映されている。

Chrome OSをインストール 10
Chromium OSで出来なくてChrome OSでできること。それがAndroidアプリの利用。当然Google Playも最初から入っていてそれが使える。Androidスマートフォンなどで購入したアプリも使える。(だから、スマホと同じGoogleアカウントを使うのがオススメ)

Chrome OSをインストール 11
Chromeの設定の中に「アプリ」という項目があって、その中に「Android設定を管理」という項目がある。どう見てもスマートフォンなどのAndroid設定そのままだけど、これがAndroidアプリで使われる環境設定になるものっぽい。

Chrome OSをインストール 12
Android用のゲーム。窓表示できるアプリもある。画像はR-TYPE Ⅱ。このゲームの場合は窓表示と全画面表示の両方が可能だった。なお、ゲームのコントロールはタッチパネルを想定しているゲームだとキーボードでは操作できない内容もある。このR-TYPE Ⅱ2だと[↑][↓][←][→]で移動が可能で、ポッドの脱着は[0]でできることが確認できたが、「弾を打つ(+波動砲)」はキーボードには割り当てられていないよう。自動連射が選択できるので弾を撃ちまくり続けるのは可能だが、ゲームとして難しい。

Chrome OSをインストール 13
上の画像のピンボールゲームは全画面専用っぽい。このゲームの場合は左右の[Shift]キーでフリップを操作、玉を打ち出すのは[Enter]ということで一応遊べる・・・
かと思いきやフリップは左右の[Shift]同時押しがNGで微妙な操作が要求されるときに片側が押されている判定のせいでその反対側を撥ねさせることができないという大問題。つまり、指を離すのが遅れるとその反対側が操作できなくてボールロストになる。あと、台揺らし(ナッジ)が効かないっぽい。
やはりゲームとして無理。残念。

Chrome OSをインストール 14
Androidでいうところのドロワーの画面。並んでるアイコンがAndroidでお馴染みのものばかり・・・

ほとんどPC版Androidといった感じ。Androidアプリが利用可能なのでChromium OSのようなアプリ不足で途方に暮れる感じはないのだが、ゲーム2つ試してみて「使いものにならない」こともあるということを理解した。

でも、面白いのは間違いない。暫くはいろいろ試してみようと思う。