RaspberryPi 5 へ Ubuntu をインストールしてホストマシンから操作できるようにするまでのまとめ

## Introduction

筆者が Raspberry Pi 5 を入手したので、振り返りを兼ねてスタートアップ手順についてまとめました。  
今回は、ウェブサーバー化を意図しているため、 Raspberry Pi OS ではなく、Ubuntu をインストールします。  

## Environment

* Host machine
  * Windows 11
  * RaspberryPi Imager v1.8.5
* RaspberryPi
  * RaspberryPi 5 8GB
  * Ubuntu Desktop 24.04 LTS(64-BIT)

## 1. SD カードへ Ubuntu をインストールする

Raspberry Pi へインストールする OS は、Raspberry Pi の起動ドライブである、SD カードへインストールする必要があります。  
(SSD を搭載する場合は本手順と異なる可能性があります)

### Raspberry Pi Imager をインストールする

下記の Raspberry Pi 公式のウェブサイトからインストールしてください。  
https://www.raspberrypi.com/software/

インストール方法については、各 OS ごとの一般的なソフトウェアインストールの手順の範囲に留まるため、本記事では割愛します。  
(記事末 References の (3) へ詳しく解説された記事を記載しておきました)

### Raspberry Pi Image で Ubuntu を SD カードへインストールする

デバイス、OS、ストレージ(SD カードを認識しているドライブ)を選択し、「次へ」を押下します。  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/52a30e9c-72ff-be6e-ffe0-cc8c3ec93ac5.png" width=75%>

書き込み中の画面ではプログレスバーが表示されます。  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/fe6c5466-50a4-012a-fae7-93bccd42367c.png" width=75%>

書き込みが完了すると以下のような表示となります。  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/4463f395-26ac-e60c-ff53-e0a2d2b4c9cc.png" width=75%>

以上で、Raspberry Pi の起動ドライブ(SD カード)への Ubuntu のインストールは完了です。  

## 2. Ubuntu を起動する

では、早速インストールした Ubuntu が起動するかを確認します。  
20.04 LTS のデフォルトのデスクトップは以下のような画面表示となります。  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/b8b3ddd2-5ea9-58dd-d35f-e70d6046373e.jpeg" width=75%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/890433fd-6df1-0e77-1f3f-b5db3db4c82e.jpeg" width=75%>

## 3. ネットワーク環境を設定する

### インターネットへ接続する

こちらは Ubuntu の初回起動時に案内される操作に従って設定してください。  
WiFi の設定ができますが、Raspberry Pi の WiFi は低速のため、可能であれば有線 LAN による接続をおすすめします。  

また、環境設定を進める前に以下のコマンドを実行して各インストールパッケージを更新しておきます。  

```
$ sudo apt update
$ sudo apt upgrade
```

### 固定 IP を設定する

リモートで Raspberry Pi へ接続する際は、DHCP により IP が起動ごとに設定されてしまうと、
接続するための IP がわからなくなってしまうため、任意の IP へ固定するように設定します。  

過去、Raspberry Pi OS で IP を固定する際は `/etc/dhcpd.conf` を編集して実施するなどしていましたが、  
現在の Ubuntu では、 `netplan` という仕組みで DHCP を含むネットワークの設定が実施されているようです。  
そのため、 `netplan` へ設定することで固定 IP を設定します。  

まず、 `netplan` の設定ファイルを**辞書順に後ろになるような名前**でコピーします。  
(netplan ディレクトリ以下の `*.yaml` ファイルは辞書順にロードされて同一の設定は上書きされるためこのようにします  
また、`50-cloud-init.yaml` は直接編集するファイルではないため、別にファイルを作るようにします)

```
$ mv /etc/netplan/50-cloud-init.yaml /etc/netplan/60-cloud-init.yaml
```

次に、コピーして新規に作成したファイルを、下記のように変更します。  
(使用するテキストエディタは vi 以外でも問題ありません)
```
$ sudo vi /etc/netplan/60-cloud-init.yaml
```

```60-cloud-init.yaml
network:
  ethernets:
    eth0:
      dhcp4: false
      addresses: [<Static IP Address>/<Subnet mask>]
      gateway4: <Defalt gateway IP Address>
      nameservers:
        addresses: [<DNS Address>]
  version: 2
```

下記は、設定の一例です。  
DNS Address は Google のものを指定しています。  
(特別に DNS の用意のない環境では Google の DNS を指定することで問題ないと考えます)  

```60-cloud-init.yaml
network:
  ethernets:
    eth0:
      dhcp4: false
      addresses: [192.168.10.100/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [8.8.8.8]
  version: 2
```

ここまで完了したら、再起動して設定を反映します。
```
$ sudo reboot
```

以下のコマンドで、対象のネットワークの IP アドレスが意図した値になっていれば OK です。  

```
$ netplan status
```

## 4. リモート環境を設定する

最後にリモートデスクトップ環境を設定します。  
ラズベリーパイに常に周辺機器を繋いで使用するよりも、ホストマシンからリモート接続する方が、  
使いやすいため設定することをおすすめします。  

### SSH のインストール

まずは SSH をインストールします。

```
$ sudo apt install ssh
```

### SSH 接続

ホストマシンから `ssh` コマンドで接続してログインできれば OK です。

```
$ ssh user@<IP Address>
```

### xrdp のインストール

まず、xrdp をインストールします。  
ファイアウォールも設定します。  
(port 3389 は RDP のデフォルト値ですが、変更する方がベターです)

```
$ sudo apt install xrdp
$ sudo ufw allow 3389
```

別途、 xfce もインストールします。  
なぜならば、Ubuntu デフォルトの GNOME デスクトップでは上手く画面を表示できない場合があるためです。  
Xfce は GNOME よりも軽量のため、ラズベリーパイでのリモートデスクトップ環境に適しています。  

```
$ sudo apt install xfce4
$ echo "xfce4-session" > ~/.xsession
```
ここまで設定できたら、再起動しておきます。

```
$ sudo reboot
```

### リモートデスクトップ接続

Windows の「リモートデスクトップ接続」アプリで接続できたら、OK です。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/fc4f80cf-9a40-aee0-6cbb-e2a468da20ca.png)
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/143910/0817ff7b-05c4-5914-78e7-16e25f588425.png)

## Conclusion

Raspberry Pi のスタートアップ手順について、Ubuntu 準拠でまとめました。  
何度もやり慣れたスタート手順でも、Ubuntu のインストールとなると、手順が異なっていたりしたため、 思っていたよりは時間がかかりました。  

最後までご覧下さりありがとうございます。
拙記事が、これより Raspberry Pi で Ubuntu をインストールして使用される方の参考になりましたら、望外の幸せです。

## References

今回、本記事の執筆のために参照した文献は以下の通りです。  

1. [【第52回】最新のUbuntuをRaspberry Pi 5で使おう！](https://pc.watch.impress.co.jp/docs/column/ubuntu/1594245.html)
1. [備忘録　ラズパイ5 ROS2　①　ハードの用意とUbuntu Desktop 24.04LTS](https://qiita.com/jamjam/items/9ad621bda6ab2e1d325b)
1. [Raspberry Pi Imager のインストールと使い方](https://qiita.com/mmake/items/576a2f60dffcd9291da3)
1. [Canonical Netplan](https://netplan.io/)
1. [Raspberry Pi 4にUbuntu 22.04をインストールしてSSH/RDP接続するまで](https://qiita.com/Olykoek/items/9956e375d06c69de4243)