ラズベリーパイに Raspberry Pi OS をインストールする場合、多くのケースで Lite 版以外のデスクトップ版やサードパーティアプリまで含まれた拡張デスクトップ版を使うと思っています。この2つであれば初期セットアップの段階からデスクトップ GUI による操作が可能となり、無線LANの設定含めて便利に環境構築ができます。逆に Lite 版を選んだ場合は初期段階では CUI による操作が必要になり、ある程度まではキーボードによるコマンド実行や環境構築が必要になります(正しいキーボード設定をするまではキーボードレイアウトも合っていない可能性もあります)。慣れないと不便ですが、一方で余計なものが含まれていない状態であるとも言え、非常に軽量で動作する環境でもあります。特にラズベリーパイゼロ(以降「ラズパイゼロ」)のようにリソースの限られたハードウェアを使おうとすると、デスクトップ版だと起動の時点でリソースの多くが使われてしまい、初期セットアップ作業もかなり時間をかけて行う必要がでてきてしまいます。そんなラズパイゼロでは作業効率を考えると Lite 版で初期セットアップを行い、必要に応じて後からデスクトップ環境も導入する、という使い方も考慮する必要があります。
さて、この面倒な状況をなんとかならんか・・・と考え、短絡的に「デスクトップ環境をもっと軽量にできないか?」と試みることにしました。自分は 30 年近く UNIX を使っていて、自分が使い始めた当初は "X Window" なるウィンドウシステムが(正確には X11 が)使われ始めていた、という時期でもありました。当時の自分は今ほど CUI に理解はなく(苦笑)、GUI オペレーションが可能な X Window を使いたくて個人の環境でも試行錯誤していた時期でした。
※より正確には当時の Linux(Slackware) でもインストール時に X Window を含める選択をすることは可能でした。が、標準機能で導入される X Window は twm(Tab Window manager) と呼ばれる、見た目も操作感もイマイチ・・・な GUI で、「これじゃなくて大学の研究室で使ってるやつを使いたい」と試行錯誤していたのでした。その「大学の研究室で使ってるやつ」は現在ではオープン化された mwm(Motif Window Manager) で、当時は無料ではなかったと記憶しています。事実、僕はこれを買ってまで使っていました(メディアもまだ持ってます)。思い入れのあるウィンドウマネージャーです:
話を戻すと、要は「ラズパイ(ゼロ)でも X Window だけを入れれば軽量 GUI が実現できるのではないか?」&「今なら mwm も無料で使えるので(折角なので) mwm で使いたい」と考えて、「ラズパイで X Window + mwm を使う方法」を調べたのでこのブログで共有します。なお以下の内容はラズパイゼロでも使えることを確認していますが、普通のラズパイでも動く内容です(普通のラズパイなら普通のデスクトップでもそんなに苦労はしないと思うけど)。
【ラズパイ(ゼロ)に X Window と mwm をインストールする】
まずラズパイ(ゼロ)を Raspberry Pi OS の Lite 版でセットアップします。ある意味、ここが一番大変だと思ってます。ここに書かれた内容を参照するなどして初期セットアップまでを終えておいてください(以下の手順では SSH 接続やシリアルコンソール接続は必須ではありません):
Raspbian Liteの初期設定 令和2年(2020年)3月版
改めて X Window と mwm を利用する上で必要なツール類を追加インストールします。必須ではありませんが、せっかく GUI を使うならウェブブラウザくらいは・・と思って最後に Chromium(chromium-browser) も含めていますが、不要であれば指定しなくても構いません:
ツール類のインストールが完了したらホームディレクトリに .xinitrc という名前のファイルを作成します。X Window 起動時の各種設定をするファイルで自分はとりあえず以下の内容にしました(上記のツール類をすべて導入していれば起動エラーは起こらないと思います):
これで準備は完了。最後に以下のコマンドを実行して X Window を起動します:
成功するとこのような画面が表示されます(この画面で「懐かしい!」と感じる人はアラフィフ以上のオッサンだと思います(笑))。普段見慣れた GUI と比べるとかなりシンプルに感じますが、xterm のタイトル部分でラズパイ環境であることもわかります:
※x11-apps パッケージを導入しているので、xeyes や xclocks 以外に以下のページで紹介されているアプリも使えます:
https://packages.debian.org/stretch/x11-apps
せっかくなので導入した Chromium も起動してみます。xterm の画面から起動コマンドを最後に & を付けるのを忘れずに実行すると、指定したアプリが X Window 内で起動し、xterm も(実行したままにならず)プロンプトが戻って続けてコマンドを実行できる状態になります:
自分の感想ですが、ラズパイゼロだと Chromium を起動すると「さすがにちと厳しいかも・・」という印象の操作感になります(現実的には日本語フォントなども追加でインストールすべきだし・・)。ただ通常のデスクトップ GUI で起動した時と比べると全体的にまだ全然軽いですね。
ちなみに X Window を終了するには背景部分を右クリックして、ポップアップメニューから "Quit" を選択、です。
昔はこの mwm って有料だったんだよなあ。その頃を知っているので、オープン化されて無料で使えるようになった mwm が簡単に使えるようになったのは改めて感慨深いものがあります。
また、.xinitrc ファイルの最後の "exec mwm" 部分で、(足りない場合は apt-get で導入してから)mwm 以外の別のウィンドウマネージャーを指定することもできます。有名どころはデフォルトだった twm や fvwm2 あたりでしょうかね。まあ使い慣れたものがあったら、それを使うのがいいと思っていますが、僕は「買ってでも欲しかった」mwm 一択です。
さて、この面倒な状況をなんとかならんか・・・と考え、短絡的に「デスクトップ環境をもっと軽量にできないか?」と試みることにしました。自分は 30 年近く UNIX を使っていて、自分が使い始めた当初は "X Window" なるウィンドウシステムが(正確には X11 が)使われ始めていた、という時期でもありました。当時の自分は今ほど CUI に理解はなく(苦笑)、GUI オペレーションが可能な X Window を使いたくて個人の環境でも試行錯誤していた時期でした。
※より正確には当時の Linux(Slackware) でもインストール時に X Window を含める選択をすることは可能でした。が、標準機能で導入される X Window は twm(Tab Window manager) と呼ばれる、見た目も操作感もイマイチ・・・な GUI で、「これじゃなくて大学の研究室で使ってるやつを使いたい」と試行錯誤していたのでした。その「大学の研究室で使ってるやつ」は現在ではオープン化された mwm(Motif Window Manager) で、当時は無料ではなかったと記憶しています。事実、僕はこれを買ってまで使っていました(メディアもまだ持ってます)。思い入れのあるウィンドウマネージャーです:
話を戻すと、要は「ラズパイ(ゼロ)でも X Window だけを入れれば軽量 GUI が実現できるのではないか?」&「今なら mwm も無料で使えるので(折角なので) mwm で使いたい」と考えて、「ラズパイで X Window + mwm を使う方法」を調べたのでこのブログで共有します。なお以下の内容はラズパイゼロでも使えることを確認していますが、普通のラズパイでも動く内容です(普通のラズパイなら普通のデスクトップでもそんなに苦労はしないと思うけど)。
【ラズパイ(ゼロ)に X Window と mwm をインストールする】
まずラズパイ(ゼロ)を Raspberry Pi OS の Lite 版でセットアップします。ある意味、ここが一番大変だと思ってます。ここに書かれた内容を参照するなどして初期セットアップまでを終えておいてください(以下の手順では SSH 接続やシリアルコンソール接続は必須ではありません):
Raspbian Liteの初期設定 令和2年(2020年)3月版
改めて X Window と mwm を利用する上で必要なツール類を追加インストールします。必須ではありませんが、せっかく GUI を使うならウェブブラウザくらいは・・と思って最後に Chromium(chromium-browser) も含めていますが、不要であれば指定しなくても構いません:
$ sudo apt-get install libxm4 mwm xserver-xorg xinit x11-xserver-utils xterm x11-apps chromium-browser
ツール類のインストールが完了したらホームディレクトリに .xinitrc という名前のファイルを作成します。X Window 起動時の各種設定をするファイルで自分はとりあえず以下の内容にしました(上記のツール類をすべて導入していれば起動エラーは起こらないと思います):
#!/bin/sh xset s off xset -dpms xset s noblank xsetroot -solid darkslateblue xeyes -geometry 70x70+5+5 & xclock -geometry 70x70+105+5 & xterm -geometry 80x20+100+100 & exec mwm
これで準備は完了。最後に以下のコマンドを実行して X Window を起動します:
$ startx
成功するとこのような画面が表示されます(この画面で「懐かしい!」と感じる人はアラフィフ以上のオッサンだと思います(笑))。普段見慣れた GUI と比べるとかなりシンプルに感じますが、xterm のタイトル部分でラズパイ環境であることもわかります:
※x11-apps パッケージを導入しているので、xeyes や xclocks 以外に以下のページで紹介されているアプリも使えます:
https://packages.debian.org/stretch/x11-apps
せっかくなので導入した Chromium も起動してみます。xterm の画面から起動コマンドを最後に & を付けるのを忘れずに実行すると、指定したアプリが X Window 内で起動し、xterm も(実行したままにならず)プロンプトが戻って続けてコマンドを実行できる状態になります:
$ chromium-browser &
自分の感想ですが、ラズパイゼロだと Chromium を起動すると「さすがにちと厳しいかも・・」という印象の操作感になります(現実的には日本語フォントなども追加でインストールすべきだし・・)。ただ通常のデスクトップ GUI で起動した時と比べると全体的にまだ全然軽いですね。
ちなみに X Window を終了するには背景部分を右クリックして、ポップアップメニューから "Quit" を選択、です。
昔はこの mwm って有料だったんだよなあ。その頃を知っているので、オープン化されて無料で使えるようになった mwm が簡単に使えるようになったのは改めて感慨深いものがあります。
また、.xinitrc ファイルの最後の "exec mwm" 部分で、(足りない場合は apt-get で導入してから)mwm 以外の別のウィンドウマネージャーを指定することもできます。有名どころはデフォルトだった twm や fvwm2 あたりでしょうかね。まあ使い慣れたものがあったら、それを使うのがいいと思っていますが、僕は「買ってでも欲しかった」mwm 一択です。