
Raspberry Pi は安価なシングルボードコンピュータで、私はちょっとSPIを喋ってほしい時に使ったり、ArmhfまたはAarch64でプログラムの動作確認をしたかったりするときに使っている。 こういう状況で、簡単なウインドウシステムが使えてターミナルが横に並べて日本語も入力できると便利なので、グラフィカルな環境をインストールしたい気持ちになる。
私のよく使うRaspberry Pi はメモリ1 GBで、元々グラフィカルな環境は少々荷が重かった。 特に、Bullseye 世代でWayland が標準化されてから標準環境ではかなり動作が遅く感じていた。 そんな中、Raspberry Pi OS Trixie がリリースされた。 Raspberry Pi OS はインストール済みのカードを新しいリリースに更新するインプレースアップグレードは非推奨で、リリース更新時はまっさらなカードに新しいイメージを書き込むのがオススメされている。 これを期に、軽量なデスクトップ環境のレシピを確立してRaspberry Pi の旧機種も最大限活用しようというのがこの内容だ。
使うもの
- Raspberry Pi OS Lite (Trixie)
- ハードとのすり合わせで困ったときにインターネットに情報が多くてすぐ解決できるので使っている
- 32-bit (armhf) と64-bit (arm64) の両方のイメージで同じ手順でよい
- JWM [joewing.net]
- 最近流行りの軽量ウインドウマネージャー
- Raspberry Pi OS Trixieでは
apt-get
で利用可能
- Rxvt-unicode
- もう25年くらい使っているお気に入りのターミナルエミュレータ
- なぜこれを使っているのかもう分からない
できること
- X Window Systemを活用。古いやり方だがリソース使用量は小さい。
- 無線LANが便利に使える
- Bluetoothのキーボードとマウスが使える
- 日本語入力ができる
- いろいろな操作でそこまで待たされない。
手順
- 公式サイト [raspberrypi.com]からRaspberry Pi OS Lite のイメージを入手、カードに書き込む。
- 実機で起動。
X Window System を使うために
/boot/firmware/config.txt
からdtoverlay=vc4-kms-v3d
の先頭に#
をつけてコメントアウトして保存。 sudo raspi-config
で以下項目を設定。- keymap
- Locale
- Timezone
- RF country (無線がある機種のみ)
- パッケージのインストール。
apt-get install \ xdm \ xserver-xorg \ x11-apps \ xfonts-100dpi \ xfonts-100dpi-transcoded \ xfonts-75dpi \ xfonts-75dpi-transcoded \ xfonts-a12k12 \ xfonts-base \ xfonts-encodings \ xfonts-intl-asian \ xfonts-intl-japanese \ xfonts-intl-japanese-big \ xfonts-jisx0213 \ xfonts-kaname \ xfonts-kappa20 \ xfonts-marumoji \ xfonts-mplus \ xfonts-naga10 \ xfonts-scalable \ xfonts-shinonome \ xfonts-terminus \ xfonts-terminus-dos \ xfonts-terminus-oblique \ xfonts-unifont \ fonts-xfree86-nonfree \ jwm \ rxvt-unicode \ fcitx5-anthy \ network-manager-applet \ blueman \ emacs-lucid \ git
この中で、blueman はBluetooth搭載機種でのみ必要。 emacs-lucidはGTK+版のemacs よりかなり軽量なのでemacs が必要な人にはおすすめ。 Anthy は最近は使ってる人が少なくて、変換効率も以前と同じ感じになるので、Mozc でもいいかもしれない。
/etc/X11/xdm/Xservers
にて、:0 local /usr/bin/X :0 vt7 -nolisten tcp
となっているところを:0 local /usr/bin/X :0 vt7 -retro -nolisten tcp
に変更。 これでログイン画面の背景が伝統的なX Window Systemのパターンになる。~/.Xsession
を作成。export LANG=ja_JP.UTF-8 fcitx5 & export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx nm-applet & blueman-applet & rxvt-unicode & jwm
~/.Xresources
作成。URxvt.font: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-* URxvt.boldFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-* URxvt.italicFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-* URxvt.boldItalicFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-* URxvt.colorBD: yellow URxvt.colorIT: green URxvt.background: black URxvt.foreground: ivory URxvt.cursorColor: green XTerm*font: -mplus-*-*-r-*-*-12-*-*-*-*-*-*-* XTerm*geometry: 132x40 UXTerm*font: -mplus-*-*-r-*-*-12-*-*-*-*-*-*-*
- 起動時にxdm が動くようにする。
sudo systemctl set-default graphical.target
そして再起動。
得るもの
こうすると、冒頭のスクリーンショットのような地味なものの古いRaspberry Piでも十分グラフィカルな使い方ができる環境が手に入る。 ちゃんとXdm の段階でBluetooth キーボードも使えた。 とくにrxvt の24ドットフォントの表示は雰囲気が結構気に入っている。
スクリーンショットのテキストはw3mで 青空文庫の ワインバウム スタンリー・G, ぬめり海 [aozora.gr.jp]を表示していて、 右下のローグ的なゲームは最近リリースされた conornallyさんのDiabaig [itch.io] だ。