Ubuntu Weekly Recipe

第624回 Raspberry Pi 4にデスクトップ版Ubuntuをインストール

この記事を読むのに必要な時間:およそ 6 分

Ubuntu Serverの動作確認とアップデート

とりあえずSDカードに書き込んだUbuntu Serverを起動してみましょう。先ほど作成したmicroSDをRaspberry Pi 4に接続してください。原理上はRaspberry Pi 3でも動くはずですが,デスクトップを動かす場合は,性能的に期待する動作にはならないでしょう。4GBモデルか8GBモデルかも特に気にしなくてかまいません。今回は4GBモデルを使用しました。

Raspberry Piでデスクトップ環境を動かすためには次のデバイスが繋がっている必要があります。

  • LANケーブル
  • USB type-Cに対応したUSBケーブル(充電用)
  • 片方がmicroHDMIに対応したHDMIケーブル
  • HDMI対応のディスプレイ
  • マウス
  • キーボード

microHDMIは「HDMI0」と書かれた端子に接続してください。ちなみにUSB type-CとHDMIのかなり近くにあります。通常サイズの端子なら問題はありませんが,変換コネクタによってUSB type AやHDMIのサイズにする場合は干渉する可能性があるので注意してください。

無事に起動したら「黒い画面に白い文字」でログインプロンプトが表示されるはずです。ただし,そのあとにcloud-initによるアカウントの作成などが動きますので,もう少しだけ待ってください。

cloud-initの完了メッセージが表示されたらアカウント名「ubuntu⁠⁠,パスワード「ubuntu」でログインします。初回ログイン時は「You are required to change your password immediately」と表示されパスワードの変更が要求されます。メッセージに従って新しいパスワードを設定してください。SSHサーバーも起動しているので,リモートログインできるかどうかも試しておくと良いでしょう。

デスクトップ化の前に,最新のアップデートを適用しておきます。

$ sudo apt update
$ sudo apt full-upgrade -y

もしくはunattended-upgradeによる自動アップデートが動いているかもしれないので,しばらく放置しておくのも良いかもしれません。

Raspberry Pi上のUbuntu Serverのデスクトップ化ツール「Desktopify」

それではRaspberry Pi上のUbuntuをデスクトップ化していきましょう。実は本質的には次のコマンドさえ実行すればUbuntuデスクトップがインストールされます。

$ sudo apt install ubuntu-desktop

ただし,この方法だと「実際のUbuntuデスクトップ」とは若干異なる状態になります。たとえばUbuntu 20.04 LTSからはアプリケーションストアアプリが,snap版のsnap-storeに変更されました。つまりいくつかのsnapパッケージを追加でインストールする必要があります。

他にもサーバー版ではcloud-init経由で,ネットワークバックエンドとしてsystemd-networkdを使う設定になっています。しかしながらデスクトップ版ではこれをNetworkManagerに変更したほうが便利です。

このあたりの「細かい調整」を担ってくれるのが,今回紹介するDesktopifyです。

Desktopify自体はただのシンプルなシェルスクリプトです。サーバー版のUbuntu 20.04 LTSがインストールされたRaspberry Pi上で実行することで,さまざまなデスクトップ環境をインストールできます。

  • Ubuntu
  • Ubuntu MATE
  • Ubuntu Budgie
  • Ubuntu Kylin
  • Ubuntu Studio
  • Kubuntu
  • Lubuntu
  • Xubuntu

実際のところUbuntu MATEがメインターゲットで,それ以外はオマケのような感じもしますが,それでも最低限必要な処理は行ってくれます。

また,Raspberry Pi固有の設定として,無線LANのパフォーマンスを改善させるためにパワーセーブをオフにするとか,Bluetoothを使うためのpi-bluetoothパッケージや,GPIO関連パッケージもインストールします。

このスクリプトは,もともとUbuntu Desktop Teamのメンバーであり,Ubuntu MATEのインストールイメージのメンテナーでもあるMartin Wimpressが5月頭に自身のYouTubeチャンネルでスクリプトを作る様子をライブ配信していたところから始まります※3⁠。Raspbperry Pi向けのUbuntu系デスクトップイメージとしてはUbuntu MATEが鉄板ですが,他のデスクトップ環境を使いたい際に使えるはずです。

※3
ライブ配信ではGitHubにプロジェクトページを作るところから始まっています。チュートリアルというよりは作業の様子を見せる類の配信で,⁠おそらくシェルスクリプトにはあまり慣れていない)配信者の試行錯誤の様子と視聴者が「そこはそう修正するんじゃないんだ」ともどかしくチャットでコメントしている様が楽しめます。あと,作業の合間に配信機材の紹介も適宜行われているので,Ubuntuで配信する際の参考にもなるでしょう。

Desktopifyはまだパッケージ化されていないため,Raspberry Pi上でGitHubのリポジトリからcloneします。とはいえ,現時点でスクリプトファイルがひとつだけなので,それを直接ダウンロードしても良いでしょう。

$ git clone https://github.com/wimpysworld/desktopify.git
$ cd desktopify

実行には管理者権限が必要です。また--deオプションでインストールするデスクトップ環境を指定します。ちなみに--oemも指定すると,次回起動時にOEMインストールモードになります。つまりインストーラーが行っている初期設定を行えるようになるので,作成したイメージを使いまわしたいならOEMモードで作成することをおすすめします。

$ sudo ./desktopify --de ubuntu
specified ubuntu desktop
[+] Configuring your Raspberry Pi 4 Model B Rev 1.2
[+] Will now install ubuntu-desktop and pi-bluetooth libgpiod-dev python3-libgpiod python3-gpiozero
Reading package lists... Done
Building dependency tree
Reading state information... Done
(中略)
[+] Will now configure network

600MB前後のデータをダウンロード・インストールするためそれなりに時間がかかります。途中で問い合わせが発生することはないはずなので,そのまま放置しておきましょう。電力はそこまで消費しませんが,SoCがそれなりに熱くなることには注意してください。

インストールが完了したらシステムを再起動しましょう。

$ sudo reboot

あとは普通のログイン画面が表示されるはずです。

図7 こうなるともうただのUbuntuデスクトップ

画像

ただしOEMモードを有効化していない場合,ローカライゼーション周りの対応が行われていません。つまり英語環境になります。よって最低でも次の対応は行っておくと良いでしょう。

  • 「システム設定(System Settings⁠⁠」から「地域と言語(Region & Language⁠⁠」を選択し,⁠インストールされている言語の管理(Manage Installed Languages⁠⁠」を起動する
  • 「言語のインストールと削除(Intall/Remove Languages⁠⁠」ボタンを押して,Japaneseにチェックを入れ,⁠適用(Apply⁠⁠」ボタンを押す
  • 追加のパッケージのインストールを問われるので,指示に従ってインストールする
  • 「メニューとウィンドウの言語(Language for menus and windows⁠⁠」にある「日本語」をドラッグアンドドロップで先頭に移動する
  • 一度ログアウトした上で,再度ログインし,⁠システム設定(System Settings⁠⁠」から「地域と言語(Region & Language⁠⁠」を選択する
  • 「言語」「フォーマット」がそれぞれ日本語になっていることを確認し,なっていなければ変更する
  • 日本語キーボードなら入力ソースから「英語」を削除し「日本語」を追加する
  • さらに入力ソースに「日本語(Mozc⁠⁠」を追加する
  • 「Super + Space」「日本語(Mozc⁠⁠」を選択して日本語入力できることを確認する
  • 「日付と時刻」からタイムゾーンを日本(JST)に変更する

手順を詳細に書いているため大変そうに見えますが,実際はほぼ画面の指示通りに操作するだけです。

図8 Japaneseを選択するとフォントなどをインストールするためそれなりに時間がかかる

画像

アプリケーション起動時に若干もたつきますが,これはおそらくストレージI/Oの性能がボトルネックになっていると思われます。一度起動してしまえば,それなりに動くようです。

ただしグラフィックはllvmpipeで描画しているため,少し重めのアニメーションを描画しようとすると一気にかくつく感じはあります。ライトな用途であればそこまで性能は問題ではないものの,本格的に使うとなるとまだまだ修正が必要そうです。

あとGNOME Shell/Mutterの描画のどこかに問題があるようで,たまに画面が暗転したり,ノイズが発生したりします。これはどちらかというとRaspberry Piの問題というよりはGNOME Shell/Mutterとllvmpipeの組み合わせに問題があるように見えます。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。