Raspberry Pi 4 Model BにUbuntu 20.04 Serverを導入してMateデスクトップを起動する


用意した物

  1. microSDカード(SDXC) 64GB
  2. Raspberry Pi 4 type B (メモリ4GB)
  3. microSDカード書き込み用PC (Windows10で動作)
  4. インターネットに繋がったWiFiルータ

Ubuntu Server 20.04.2の入ったmicroSDカードの作成

microSDカード書き込み用PCで作業します。

Raspberry Pi Imagerのインストール

Raspberry Pi OSの公式Webサイトにアクセスして、Raspberry Pi Imagerをダウンロード&インストールします。

執筆時点(2021.3.7)では、バージョンは1.5でした。

Raspberry Pi ImagerによるmicroSDカードへのOSイメージの書き込み

メディアリーダー/ライターにmicroSDカードを挿入して、Raspberry Pi Imagerを起動します。

起動したら"Operating System"の下の"CHOOSE OS"を、選択します。

"Operating System"というウィンドウが開くので、"Other general purpose OS"を選択します。

表示が切り替わるので、"Ubuntu"を選択します。

さらに表示が切り替わるので、"Ubuntu Server 20.04.2 LTS(RPi 3/4/400) 64-bit server OS with long-term support for arm64 architectures"を選択します。

見た目が32bit版と紛らわしいので、間違わないように注意しておいたほうが良いと思います。

"Operating System"というウィンドウが消えて、元のウィンドウの"Operating System"欄に"UBUNTU SERVER 20.04.2 LTS (RPI 3/4/400)"と表示されていることを確認します。

そして、"SD Card"の"CHOOSE SD ..."を選択します。

"SD Card"というウィンドウが開くので、書き込み先のmicroSDカードを指しているものを選択します。

"SD Card"ウィンドウが消えて、元のウィンドウの"SD Card"欄に、選択した書き込み先が表示されていることを確認します。

そして、"WRITE"を選択します。

確認のダイアログが表示されるので、問題なければ"YES"を選択します。

OSイメージのダウンロードとmicroSDカードへの書き込みが始まるので、完了するまで待ちます。

完了したらダイアログが表示されるので、microSDカードを取り出して、"CONTINUE"を選択します。

最後に、"X"を選択して、Raspberry Pi Imagerを終了します。

Raspberry Pi上のUbuntu Server 20.04.2へのMateのインストール

初回ログイン時の設定

ここからは、Raspberry Pi 4で作業します。

イメージが書き込まれたmicroSDカードをRaspberry Pi 4に挿入して、起動します。

起動シーケンスが続いたあとに、ログインプロンプトで表示が止まります。

しばらくすると、遅れて起動したサービスの表示が現れて画面表示が乱れますが、適当にキーボードの"Enter"を押すと、クリーンにできます。

ubuntu 20.04.2 LTS ubuntu tty1
ubuntu login:

初期アカウントは"ubuntu"、初期パスワードは"ubuntu"になっています。

ここでは、"ubuntu"を入力します。次にパスワードを聞かれるので、再び"ubuntu"と入力します。

すぐに、パスワード変更の指示が表示されて、現在のパスワードを要求されるので、さらに"ubuntu"と入力します。

そして、新しいパスワードの入力が要求されるので、パスワードに適切な文字列を入力し、確認のためにもう一度、新しいパスワードを入力します。

アカウントの作成と初期アカウントの削除

初期アカウントのままで作業を続けるのは、セキュリティ的に良くないので、初期アカウントと同一のサブグループを持つ新しいアカウントを作成します。

sudo useradd -G $(id -nG | sed -e "s/$(id -ng)//g" -e 's/^\s//g' -e 's/ /,/g') -s /bin/bash -k /etc/skel -m {アカウント名}
sudo passwd {アカウント名}
exit

新しく作成したアカウントでログインできることを確認します。

無事にログインができたら、初期アカウントを削除します。

sudo deluser --remove-home ubuntu

ホスト名の変更

初期ホスト名は"ubuntu"になっているが、これもセキュリティ的に良くないのと、複数台をセットアップするときに面倒になるので、変更します。

sudo hostnamectl set-hostname {ホスト名}

ホスト名の変更を反映させるために、ここで再起動します。

sudo reboot

再起動が完了したら、作業用のアカウントでログインしておきます。

Swap領域の作成

Ubuntu 20.04では、デフォルトではSwap領域が作成されていません。

比較的規模の大きなソフトウェアを動作させる予定がなければ、読み飛ばしてください。

もし、その予定があるなら、メモリが足りなくなった際にフリーズする場合があるので、Swap領域を作成しておきます。

ここでは、大きめの8GBを確保して設定する場合について、以下に示しておきます。

sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo sh -c 'echo "/swapfile\tnone\tswap\tsw\t0\t0" >> /etc/fstab'

WiFi接続の設定

有線LAN接続の場合は、読み飛ばしてください。

Netplanの設定ファイルを、標準で入っているスクリーンエディタ(Vim,Nano)で開きます。

sudo vim /etc/netplan/50-cloud-init.yaml

以下のように、WiFi関連の設定を記述した"wifis"キーを追加します。

/etc/netplan/50-cloud-init.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: true
      optional: true
  wifis:
    wlan0:
      dhcp4: true
      optional: true
      access-points:
        "{アクセスポイントのSSID}":
          auth:
            key-management: psk
            password: "{パスワード}"

Netplanの設定を、反映させます。

sudo netplan apply

うまく設定できていれば、hostnameコマンドでIPアドレスが取得できていることが確認できます。

hostname -I

時刻同期の設定

Raspberry Piでは時刻を常時保持できないため、IPネットワーク経由で時刻同期する設定を行います。

この設定をしておかないと、aptによるパッケージのアップデートができない場合があります。

Systemd-timesyncdの設定ファイルを、スクリーンエディタで開きます。

sudo vim /etc/systemd/timesyncd.conf

そして、以下のように"NTP"の項目に、適切なNTPサーバを記入します。

/etc/systemd/timesyncd.conf
[Time]
NTP=ntp.nict.jp
#NTP=
#FallbackNTP=ntp.ubuntu.com
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

Systemd-timesyncdサービスを再起動し、statusコマンドで"Active: active (running)"になっていることを確認します。

sudo systemctl restart systemd-timesyncd.service
sudo systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-03-07 07:13:18 UTC; 18s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 4883 (systemd-timesyn)
     Status: "Initial synchronization to time server 133.243.238.163:123 (ntp.nict.jp)."
      Tasks: 2 (limit: 4436)
     CGroup: /system.slice/systemd-timesyncd.service
             └─4883 /lib/systemd/systemd-timesyncd

Mar 07 07:13:17 ubuntu systemd[1]: Starting Network Time Synchronization...
Mar 07 07:13:18 ubuntu systemd[1]: Started Network Time Synchronization.
Mar 07 07:13:18 ubuntu systemd-timesyncd[4883]: Initial synchronization to time server 133.243.238.163:123 (ntp.nict.jp).

Mateパッケージのインストール

aptコマンドだけで、インストールできます。

sudo apt update && sudo apt dist-upgrade -y
sudo apt install -y ubuntu-mate-desktop

パッケージのダウンロードに結構時間がかかりますが、途中でディスプレイマネージャの選択で入力待ちになるので、放置する場合には注意が必要です。

ディスプレイマネージャの選択肢は、gdm3とlightdmですが、これは好みの方を選択すれば良いと思います。

手元の環境では、最終的に2時間半程度かかりました。

終了したら、再起動します。

sudo reboot

起動シーケンス後、グラフィカルログインの画面になればOKです。

参考サイト