はじめに
Raspberry Pi だとRaspberry Pi OS(以前はRaspbian)をインストールすることを
最初に考えると思いますが、Ubuntuをインストールすることもできます。
使おうと思っているツールやライブラリによっては、Raspberry Pi OSをサポートしていないけど、
Ubuntuはサポートしているということもあります(例えば kubernetes とか)。
そこで、Raspberry Pi 4 Model B にUbuntu 20.04 LTS(64-bit) for Raspbeery Piをインストールします。
また、ときにはGUI環境も必要になることもあるかと思いますので、GUI環境も構築します。
(例えば Google Colab のインスタンスを維持させたい場合とか。)
1. Ubuntu のインストール
Install Ubuntu Server on a Raspberry Pi 2,3 or 4にRaspberry Piのイメージがあるので、
Ubuntu 20.04 LTS(64-bit) for Raspbeery Piをダウンロードします。
OSイメージのダウンロードが完了したら、解凍しmicroSDカードに書き込みます。
~/Downloads ❯❯❯ xz -dv ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz
ubuntu-20.04-preinstalled-server-arm64+raspi.img.xz (1/1)
100 % 667.0 MiB / 3,054.4 MiB = 0.218 92 MiB/s 0:33
OSイメージの書き込みには、こちらにもある通りに、Raspberry Pi imager というツールがあるそうですが、
私のノートPCはUbuntuなので、dd
コマンドで書き込みます。書き込みツールは何でも構いません。
~/Downloads ❯❯❯ sudo dd if=ubuntu-20.04-preinstalled-server-arm64+raspi.img of=/dev/mmcblk0 status=progress
3201147392 bytes (3.2 GB, 3.0 GiB) copied, 622 s, 5.1 MB/s
6255474+0 records in
6255474+0 records out
3202802688 bytes (3.2 GB, 3.0 GiB) copied, 627.603 s, 5.1 MB/s
2. 事前設定
設定は簡便化のため、ヘッドレス(ディスプレイ・キーボード接続なし)で行います。
その方法はHow to install Ubuntu on your Raspberry Piに記載されているので、簡単です。
また、こちらも参考になります。
OSイメージを書き込んだmicroSDカードを抜き差しすると、以下のパーティションが自動でマウントされます。
~/Downloads ❯❯❯ df -k
...
/dev/mmcblk0p2 2754000 1813920 780472 70% /media/$USER/writable
/dev/mmcblk0p1 258095 62017 196079 25% /media/$USER/system-boot
IPアドレス、DNSサーバの設定をします。
~/Downloads ❯❯❯ cd /media/$USER/system-boot
/m/n/system-boot ❯❯❯ vim network-config
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [<IP-ADDRESS>"/"<PREFIX-LENGTH>]
gateway4: <GATEWAY-IP-ADDRESS>
nameservers:
addresses: [<DNS1-IP-ADDRESS>,<DNS2-IP-ADDRESS>]
optional: true
次にホスト名の設定をします。
/m/n/system-boot ❯❯❯ vim user-data
fqdn: <HOSTNAME>
chpasswd:
expire: false
list:
- ubuntu:ubuntu
ちなみにログインするためのアカウントは以下です。
- user: ubuntu
- pass: ubuntu
3. ログインしたらすること
作成したmicroSDカードをラズパイに挿入し、ラズパイの電源を入れたら
sshでログイン(user:ubuntu,pass:ubuntu)します。
あと、手元のPCで作成したSSHの秘密鍵のパスフレーズを無しにした公開鍵を
ラズパイにコピーして、ログインしやすくしておきます。
~/Downloads ❯❯❯ ssh ubuntu@<IP-ADDRESS>
~/Downloads ❯❯❯ scp ~/.ssh/id_rsa.pub ubuntu@<IP-ADDRESS>:
ubuntu@colab:~$ cat id_rsa.pub >> .ssh/authorized_keys
ubuntu@colab:~$ rm -f id_rsa.pub
接続したら、まずはパッケージを更新しておきます。
ubuntu@colab:~$ sudo apt update && sudo apt upgrade -y
時間の設定もしておきます。
ubuntu@colab:~$ sudo timedatectl set-timezone Asia/Tokyo
ubuntu@colab:~$ timedatectl
Local time: Mon 2020-07-06 22:13:48 JST
Universal time: Mon 2020-07-06 13:13:48 UTC
RTC time: n/a
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
4. GUI環境の構築
こちらを参考にLubuntuをインストールします。
なぜ、Lubuntuかと言うとこちらによると、
Lubuntuが最も軽いデスクトップとのことだからです。
ubuntu@colab:~$ git clone https://github.com/wimpysworld/desktopify.git
ubuntu@colab:~$ cd desktopify/
ubuntu@colab:~/desktopify$ ./desktopify --help
Usage
./desktopify --de <desktop environment>
Available desktop environments are
lubuntu
kubuntu
ubuntu
ubuntu-budgie
ubuntu-kylin
ubuntu-mate
ubuntu-studio
xubuntu
You can also pass the optional --oem option which will run a setup
wizard on the next boot.
ubuntu@colab:~/desktopify$ sudo ./desktopify --de lubuntu
また、ラズパイとデスクトップ共有をするために、
LubuntuにXrdp(リモートデスクトップサーバ)をインストールします。
ubuntu@colab:~$ sudo apt install -y xrdp
さらに、Webブラウザもインストールしておきます。
ubuntu@colab:~$ sudo apt install -y chromium-browser
まとめ
以上で、ラズパイにUbuntuをインストールし、基本的なGUI環境を構築できました。
Google Colabとのセッション維持のためにGUI環境やブラウザをインストールしたラズパイを使えますし、
kubernetesの環境をローカルで試してみたい場合にはGUIなしのラズパイも使えます。
用途に応じて、GUIの有無を自由にできるのも便利です。