ラーメンの話じゃないよ
はじめに
- GW前にラズパイ5に触り始めて、最初はヘッドレスに取り組んでみたけど、arduino村からやってきた身としては、「ラズパイも電子パーツを動かしてなんぼでしょ」と途中で目が覚めた。
- つか、環境構築ってプログラムを書く楽しさはなく、延々とネットで調べて試行錯誤する苦行だったよ。まぁ、ラズパイ自体をパーツと捉えて、ラズパイを動かす楽しさもちょっぴりあったけどね。
- で、反省した後、パーツを取り付けやすいzero2wを買ったけど、今どきmicroUSBとか終わってると思ったので、速攻でradxa_zero3w(以下、zero3)を注文した。
- eMMCを装備していて、sdカードがなくても使える。もちろんsdカードスロットもあるから、eMMCをないものとして運用も可能だけど。
- 今回は、zero3のeMMCにdebianをインストールして見たので、紹介する。
手順(eMMCインストール)
- eMMCインストールは面倒だから、別にsdカードでいいやと思ったら、こちらへどうぞ。インストールの楽さや、バックアップの容易さを考えたら、eMMCを使うメリットってあまり思い浮かばない...それでも、eMMC運用にロマンを感じる人は次に進んでみたらいいよ。
- まあ、このページの手順通りにやるだけなんだけどね。
- ubuntuやmac使いの人は、コマンドベースで、rkdeveloptoolを使ってeMMCに書き込むことになる。windowsの場合は、アプリがあるから、もう少し楽みたいだけどね。
- まずは、ubuntuやmacにrkdeveloptoolをインストールすることから始める。
- debian(ubuntu)での手順は次の通りとされている。今回は、parallels上のubuntu24.04で作業を行った。
sudo apt-get update
sudo apt-get install -y libudev-dev libusb-1.0-0-dev dh-autoreconf pkg-config libusb-1.0 build-essential git wget
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
wget https://patch-diff.githubusercontent.com/raw/rockchip-linux/rkdeveloptool/pull/73.patch
wget https://patch-diff.githubusercontent.com/raw/rockchip-linux/rkdeveloptool/pull/85.patch
git am *.patch
autoreconf -i
./configure
make -j $(nproc)
sudo cp rkdeveloptool /usr/local/sbin/
- 上記手順通りにやって、rkdeveloptoolを無事にインストールできた人はお疲れ様でした。僕はうまくいきませんでした。
- 途中の
git am *.patch
で、下記メッセージが出て止まったよ。
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got '*****@***.(none)')
- でね、調べると、emailと名前を登録できてないのが原因ということで、メッセージに従って、
git config --global user.email "メアド"
とgit config --global user.name "なまえ"
をしたわけですよ... - で、エラー回避できず。なんでだよ。
- 結構、調べたら、「--global」を「--local」にしたらOKという情報を見つけて、うまくいった........ふぅ.......こういうとこだよ、linuxの作業で本当に本当にイライラするのは...画面の通りに作業して、ネットで調べても、うまく行く人とうまく行かない人がいて、その解決策も膨大な試行錯誤で知るしかないという、壮大な無駄な時間。糞みたいな時間だよ。
- で、rkdeveloptoolを無事にインストールできたので、-hオプションで機能を見ると、次の通り。
---------------------Tool Usage ---------------------
Help: -h or --help
Version: -v or --version
ListDevice: ld
DownloadBoot: db <Loader>
UpgradeLoader: ul <Loader>
ReadLBA: rl <BeginSec> <SectorLen> <File>
WriteLBA: wl <BeginSec> <File>
WriteLBA: wlx <PartitionName> <File>
WriteGPT: gpt <gpt partition table>
WriteParameter: prm <parameter>
PrintPartition: ppt
EraseFlash: ef
TestDevice: td
ResetDevice: rd [subcode]
ReadFlashID: rid
ReadFlashInfo: rfi
ReadChipInfo: rci
ReadCapability: rcb
PackBootLoader: pack
UnpackBootLoader: unpack <boot loader>
TagSPL: tagspl <tag> <U-Boot SPL>
-------------------------------------------------------
- 使うのは、①
-db
と②-wl
と③-rd
と④-ef
と⑤-ld
だけ。 - osを書き込むときの順番は、①⇒②⇒③
- 書き込んだosを削除するときは、①⇒④⇒③
- macがzero3を認識しているかどうかを確認するのが⑤。認識されていれば、こんな感じで返ってくる。macにzero3を接続するときは、裏面の小さなボタンを押しながら刺すこと。
- osはここから選ぶけど、説明を見るとこれ一択みたいなので、素直にこれにした。
- ちなみに、書き込んだosを削除してからsdを差し込んで起動しても、sdからbootしてくれないから、再度、eMMCにosを書き込むしかない。
- sdからbootさせるための方法もありそうだけど、調べる苦労が果てしなさそうだから、調べるのをやめた。
osインストール後
- 起動するとこんな感じ
- 実は、最初、軽量と噂のdietpiがzero3用のosイメージを配布してたからインストールしたんだけど、bluetoothが使えなかったから諦めた。
- その点、radxa純正のosイメージはちゃんとbluetoothが使えたよ。それだけで感動できちゃうね、ラズパイ界隈は。本当にくだらないことで感動できちゃうよ。
- で、まずは、ちっこいキーボードを使ってbluetooth設定して、いんちきヘッドレス(自作キャプチャアプリ版)が可能となりました。めでたしめでたし。
- そうだ、重要なことを伝えるの忘れてた。
- インストールした後に、「よーし、パパ、upgradeしちゃうぞ〜」とつぶやきつつ
sudo apt upgrade
をしたらアウト。bluetoothが使えなくなります。 - upgradeした後、rebootとすると、画面右上のアイコン(赤矢印)が消えます。
- そして、こんな感じになります。
-
sudo apt update
するのはいいけど、upgradeは慎重にね。
終わりに
- upgradeしちゃった愚かな僕の場合、なんとかbluetoothを回復できないか調べるため、1時間ほど潰して分からず、じゃあとりあえずsdカードで起動させようかと思って、sdカードを起動ドライブにする方法を調べるために1時間ほど潰して分からず、しょうがないからeMMCをクリアすれば強制的にsdカードで起動するだろうと思って、eMMCをクリアする方法を調べるのに30分ほど費やし(これは判明した。)、eMMCをクリアしてもsdから起動しないことが判明し、結局、eMMCに再インストールした、と....
- この過程で、外国人も苦労して見つけられていない現状を知ったよ。みんな、無駄な時間を過ごしてるなぁ。
- プログラムを書くための知識を得るために費やした時間は、努力を積み上げた気がするけど、たかが環境構築のために無駄な時間を過ごすのは、本当に糞。時間をドブに捨ててる気がする。
- そういえば、スマホ操作用の言語として学習するのにswiftを選んだのは、AndroidStudioが環境由来のエラーしまくったから、それに嫌気がさしたからなんだよなぁ。
- 結局、○○インスパイア系を食した結果、playgrounds最高!ってことが再確認できたよ。ありがとう!そして、ありがとう!