Raspberry Pi 4 Model B 8GB に Ubuntu 20.04 をインストールして Wi-Fi で接続

Raspberry Pi 4 Model B 8GB を購入しました。

考え得る最小の接続構成、電源ケーブルのみで Ubuntu 20.04 を起動し、Wi-Fi で操作してみます。

よって、準備するものは下記のみです。

  • Raspberry Pi 4 Model B 8GB
  • microSD カード 32GB
  • USB Type-C ケーブル

イメージのダウンロード

Install Ubuntu Server on a Raspberry Pi 2, 3 or 4 にアクセスします。

Ubuntu

Ubuntu is an open-source operating system for cross platform…

Download your Ubuntu Pi image で、

  • Raspberry Pi 4
  • Ubuntu 20.04 LTS
  • Download 64-bit

を選択します。

ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz

というファイル名でダウンロードされます。700MB 程度でした。

イメージの microSD への書き込み

How to install Ubuntu on your Raspberry Pi にアクセスします。基本的には、記載されている通りに進めればインストールは完了します。ここでは比較的ミニマムの手順でインストールしてみます。

Ubuntu

Ubuntu is an open source software operating system that runs…

まず、Ubuntu のイメージを書き出すための microSD カードをパソコン (Mac, Linux, Windows) に接続しておきます。

microSD カードに Ubuntu のイメージを書き出すためには Raspberry Pi Imager を使用します。とても便利なソフトウェアです。

https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#2-prepare-the-sd-card

からダウンロードできます。

まず、Operating System を設定します。CHOOSE OS をクリックします。

Raspberry Pi Imager で Ubuntu をダウンロードすることもできるようです。

今回は既に Ubuntu のイメージをダウンロードしているため、Use custom をクリックします。ここで、事前にダウンロードしておいたイメージファイルを選択します。

続いて、CHOOSE SD CARD をクリックし、Ubuntu のイメージを書き出すための microSD カードを選択します。

これで、Operating System と SD Card が設定できました。WRITE ボタンをクリックすると microSD カードへの書き出しが開始されます。

microSD カードへの書き出しは、5, 6 分程度で完了しました。

Wi-Fi の設定を設定を行うために、いったん microSD カードをパソコンから外します。そして、再度 microSD カードをパソコンを接続します。microSD カードの再接続、これ重要です。

Wi-Fi, 無線 LAN の設定

Ubuntu のイメージを microSD カードに書き出した後、microSD カードをパソコンから外し、再度 microSD カードをパソコンに接続します。Mac の場合、Finder に system-boot が表示されるようになります。その中の network-config を編集します。Visual Studio Code 等で開いて編集するのがよいでしょう。

network-config のデフォルトは下記の通りでした。

# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#
# Some additional examples are commented out below

version: 2
ethernets:
  eth0:
    dhcp4: true
    optional: true
#wifis:
#  wlan0:
#    dhcp4: true
#    optional: true
#    access-points:
#      myhomewifi:
#        password: "S3kr1t"
#      myworkwifi:
#        password: "correct battery horse staple"
#      workssid:
#        auth:
#          key-management: eap
#          method: peap
#          identity: "me@example.com"
#          password: "passw0rd"
#          ca-certificate: /etc/my_ca.pem

Wi-Fi 設定の部分がコメント化されているため、# を削除し、Wi-Fi 設定を有効にします。例えば下記のような感じです。access-points の 1 つ下の階層には自分の Wi-Fi の名前を記載します。また、password には自分の Wi-Fi のパスワードを記載します。文字の間にスペースがある場合は ” で囲みます。例えば、”my wifi password” のような感じです。

# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#
# Some additional examples are commented out below

version: 2
ethernets:
  eth0:
    dhcp4: true
    optional: true
wifis:
  wlan0:
    dhcp4: true
    optional: true
    access-points:
      my-accesspoint-name:
        password: my-password
#      myworkwifi:
#        password: "correct battery horse staple"
#      workssid:
#        auth:
#          key-management: eap
#          method: peap
#          identity: "me@example.com"
#          password: "passw0rd"
#          ca-certificate: /etc/my_ca.pem

Ubuntu の起動と SSH での接続

最も最小な構成で、Raspberry Pi 4 で Ubuntu を起動して SSH で接続してみます。

他に準備するものは USB Type-C 1 本のみです。

Raspberry Pi 4 に microSD カードを挿入し、USB Type-C ケーブルを接続して給電します。Raspberry Pi 4 の基板上の赤色 LED が光り始めます。モニタは接続していないですが、Ubuntu が起動し始めているはずです。

3分ほど待った後、いったん USB Type-C ケーブルからの給電を止め、Ubuntu をシャットダウンします。私の環境では、初回の起動では Wi-Fi を認識しませんでした。

その後、再度 USB Type-C ケーブルを接続し直すなどして給電を再開させ、Ubuntu を再起動させます。3分ほど待つと Ubuntu が再起動するはずです。

しかし、Raspberry Pi 4 にはモニタを接続していないため、Ubuntu が起動したとしても、その IP アドレスを知ることができません。そのため、Fing のような Wi-Fi 検出アプリで Raspberry Pi 4 の IP アドレスを確認するのがよいでしょう。

App Store

‎Fingはすでに世界中で4000万人のユーザーを以下のようにサポートしています。 • WiFiに誰が接続しているか •…

Raspberry Pi 4 の IP アドレスを確認した後、SSH で接続してみます。デフォルトのユーザー名とパスワードは共に ubuntu です。ログイン後、すぐにパスワードの変更を求められます。パスワードの変更に成功すると、いったん強制的に切断されます。

% ssh ubuntu@192.168.xxx.yyy

The authenticity of host '192.168.xxx.yyy (192.168.xxx.yyy)' can't be established.
ECDSA key fingerprint is SHA256:xyz.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.xxx.yyy' (ECDSA) to the list of known hosts.
ubuntu@192.168.xxx.yyy's password: 
You are required to change your password immediately (administrator enforced)
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1008-raspi aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Jul 10 08:52:07 UTC 2020

  System load:            1.76
  Usage of /:             6.4% of 29.39GB
  Memory usage:           3%
  Swap usage:             0%
  Temperature:            53.6 C
  Processes:              141
  Users logged in:        0
  IPv4 address for wlan0: xyz
  IPv6 address for wlan0: xyz

 * "If you've been waiting for the perfect Kubernetes dev solution for
   macOS, the wait is over. Learn how to install Microk8s on macOS."

   https://www.techrepublic.com/article/how-to-install-microk8s-on-macos/

0 updates can be installed immediately.
0 of these updates are security updates.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

WARNING: Your password has expired.
You must change your password now and login again!
Changing password for ubuntu.
Current password: 
New password: 
Retype new password: 
passwd: password updated successfully
Connection to 192.168.xxx.yyy closed.

その後、変更したパスワードを使用し、再度 SSH でログインします。

% ssh ubuntu@192.168.xxx.yyy

ubuntu@192.168.xxx.yyy's password: 
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-1008-raspi aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Jul 10 08:52:37 UTC 2020

  System load:            1.54
  Usage of /:             6.3% of 29.39GB
  Memory usage:           3%
  Swap usage:             0%
  Temperature:            55.5 C
  Processes:              141
  Users logged in:        0
  IPv4 address for wlan0: xyz
  IPv6 address for wlan0: xyz

 * "If you've been waiting for the perfect Kubernetes dev solution for
   macOS, the wait is over. Learn how to install Microk8s on macOS."

   https://www.techrepublic.com/article/how-to-install-microk8s-on-macos/

91 updates can be installed immediately.
37 of these updates are security updates.
To see these additional updates run: apt list --upgradable


Last login: Fri Jul 17 08:52:10 2020 from 192.168.xxx.yyy
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Ubuntu 起動後の情報は下記の通りでした。

$ uname -a
Linux ubuntu 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.8G     0  3.8G   0% /dev
tmpfs           782M  3.9M  778M   1% /run
/dev/mmcblk0p2   30G  2.4G   26G   9% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop0       49M   49M     0 100% /snap/core18/1708
/dev/loop1       62M   62M     0 100% /snap/lxd/14808
/dev/loop2       24M   24M     0 100% /snap/snapd/7267
/dev/mmcblk0p1  253M   99M  154M  39% /boot/firmware
/dev/loop3       49M   49M     0 100% /snap/core18/1883
/dev/loop4       26M   26M     0 100% /snap/snapd/8543
/dev/loop5       64M   64M     0 100% /snap/lxd/16104
tmpfs           782M     0  782M   0% /run/user/1000

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"

以上です。