作れるものはなんでも作ります
Raspberry Piを使ってM8 Headlessを動かす手順をまとめます。基本的にはm8cのREADMEで十分なのですが、細かいつまずきポイントなどを追記しています。
macOSの場合、ファームウェア書き込みに使うTyToolsが古く、TyUploaderは起動してもファイル選択ができません。Issueに、tycmdを使いターミナルから書き込む解決策があります。ただし、tycmdもセキュリティ機能の制限によりブロックされます。一度Finderから起動させ、設定.app→プライバシーとセキュリティ→下のほうの実行許可で起動するようになります。
今回は下記環境で試しています。
Raspberry Pi 4はメモリが少ないものでもいけるかもしれません。Raspberry Pi Zero 2でもできるか試しています。
一番新しいRaspberry Pi OSでも大丈夫でした。なぜかLiteだけ無線LANが無効になっています。rfkillコマンドで解除できますが、設定が済めば不要なので有線LANで対処しました。
m8cのBuilding from source codeの章に沿って実行します。Raspberry Piでもそのままの手順で動きます。
デスクトップ版のRaspberry Pi OSにSSHなどでログインしている場合、画面がないと言われてアプリが止まります。下記のように環境変数を設定すればOKです。
$ DISPLAY=:0 ./m8c
Lite版ではディスプレイ設定の必要なく、m8cを実行するだけでそのまま表示されます。
### マウスポインターを消したい
m8c起動後にFullscreen設定をOnにするとマウスポインターが消えますが、起動時に設定ファイルでフルスクリーンを有効にしていても反映されません。常時フルスクリーン稼働の場合はマウスポインターは表示されなくていいので、下記のようにコードを修正してからビルド・実行します。
# src/render.c
void render_screen(config_params_s *conf) {
# ここを追加
SDL_HideCursor();
if (!dirty && !settings_is_open()) {
PCM5122など、広く使われているDACを指定するときは、下記手順でOKです。
crontabへの指定で十分です(参考)。@reboot としてm8cのフルパスを指定すれば、起動時にフルスクリーンで表示されます。
上記手順で設定したうえで実行すると、下記のようになります。

液晶画面出力は過去の記事を参照ください。