用意した物
- microSDカード(SDXC) 64GB
- Raspberry Pi 4 type B (メモリ4GB)
- microSDカード書き込み用PC (Windows10で動作)
- インターネットに繋がった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"キーを追加します。
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サーバを記入します。
[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です。
参考サイト