3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Raspberry Pi 4に Ubuntu server 18.04をインストール

Last updated at Posted at 2020-07-10

概要

Rasberry Pi 4にUbuntu server 18.04をインストールする方法について説明します。
他にも説明している記事はありますが、自分に必要な情報がまとまっている記事がなかったため、作成しました。
基本的には、公式のインストールガイドの通りです。

(追記)

  • 2020/12/05
    • Bluetooth, raspi cameraの設定

環境

インストール手順

OSイメージのダウンロード

ここからイメージをダウンロードします。Ubuntu 18.04のDownload 64-bitを選択します。

OSイメージの解凍

$ xz -dv ubuntu-18.04.4-preinstalled-server-arm64+raspi4.img.xz

OSイメージをSDカードに書き込み

公式では、Raspberry Pi Imagerを使っていますが、自分はコマンドで直接書き込みました。
また、書き込みの前にデバイス名をチェックする必要があります。デバイス名を間違えると、HDDのデータ等を上書きしてしまう恐れがあります。

$ df -h # デバイス名のチェック。こちらの環境では/dev/sde1, /dev/sde2でした
$ sudo umount /dev/sde1
$ sudo umount /dev/sde2
$ sudo dd bs=4M if=ubuntu-18.04.4-preinstalled-server-arm64+raspi3.img of=/dev/sde

Raspiの起動

SDカードをRaspiに挿入し、起動します。
起動後、パスワードを変更する必要があります。デフォルトでは、ユーザ名/パスワード共にubuntuです。その後、任意のパスワードを設定してください。

Wifiの設定

自分の環境ではWPA2-PSKかつステルスモードでwifiを使用しているので、この環境の設定を行います。

Network Managerの設定

wifiを使用するためにはNetwork Managerをインストールする必要がります。そのため有線LANを接続し、以下コマンドを実行します。

$ sudo apt update
$ sudo apt install network-manager

netplanの設定

Ubuntu 18.04では、netplanを使ってネットワークの設定を行います。

$ sudo vi /etc/netplan/50-cloud-init.yaml
/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: "{パスワード}"

設定の有効化

$ sudo netplan apply

ネットワークの接続

接続する際に、ネットワークの名前を確認します。

$ sudo nmcli c
NAME                   UUID TYPE DEVICE
netplan-wlan0-{SSID} (略) wifi

ネットワーク接続

$ sudo nmcli c up netplan-wlan0-{SSID}

ステルス機能使用時にデフォルトで接続するための設定

$ sudo nmcli c mod netplan-wlan0-{SSID} 802-11-wireless.hidden true

$ ifconfigで確認し、ネットワークに接続できていれば完了です。
sshはデフォルトで使用できるようになっているため、すぐに使用可能です。

Bluetoothの設定

Bluetoothを使うには、pi-bluetooth bluetooth bluezをインストールすればいいのですが、そのままインストールしようとすると、

$ sudo apt install pi-bluetooth bluetooth bluez
...
dpkg: error processing archive /var/cache/apt/archives/bluez-firmware_1.2-4+rpt1~bionic1.0_all.deb (--unpack):
 trying to overwrite '/lib/firmware/brcm/BCM43430A1.hcd', which is also in package linux-firmware-raspi2 1.20200601+arm64-0ubuntu2~18.04.1
Errors were encountered while processing:
 /var/cache/apt/archives/bluez-firmware_1.2-4+rpt1~bionic1.0_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

というようなエラーが出てしまいます。
解決策を探したところ、こちらのようにすると、問題なくインストールできました。

pi-bluetoothなどのインストール

$ sudo add-apt-repository ppa:ubuntu-pi-flavour-makers/ppa
$ sudo apt update

$ sudo apt -y remove linux-firmware-raspi2
$ sudo apt -y install pi-bluetooth bluetooth bluez
$ cd /
$ sudo tar czf bluez-firmware.tgz lib/firmware usr/share/doc/bluez-firmware
$ list=$(cat << EOS
lib/systemd/system/bthelper@.service
lib/systemd/system/hciuart.service
lib/udev/rules.d/90-pi-bluetooth.rules
usr/bin/bthelper
usr/bin/btuart
usr/share/doc/pi-bluetooth
EOS
)
$ sudo tar czf pi-bluetooth.tgz $list
$ sudo apt -y remove bluez-firmware pi-bluetooth
$ sudo apt -y install linux-firmware-raspi2
$ sudo apt -y install raspberrypi-sys-mods rfkill
$ sudo tar xf pi-bluetooth.tgz
$ sudo tar xf bluez-firmware.tgz
$ sudo systemctl unmask hciuart
$ sudo systemctl enable hciuart
$ sudo reboot

bluetoothの有効化

一般ユーザを使用している場合は、そのユーザでもbluetoothを使えるように権限を付与します

$ sudo usermod -a -G bluetooth {ユーザアカウント}
$ sudo reboot

この後はbluetoothctlコマンドからbluetoothデバイスとのペアリングをすることで使用できます

Raspiカメラの設定

Raspberry Pi専用カメラを使えるように設定します

カメラデバイスの有効化

$ sudo vi /boot/firmware/config.txt
start_x=1
gpu_mem=256

ファイルの最後に上記2行を追加し、リブートします。なお、gpu_memの値は、256でなくてもかまいません。

userlandのビルド

Ubuntu wikiによると、userlandというリポジトリをcloneしビルドすることでvcgencmdコマンドが使用可能になります。
ただし64bit版はオフィシャルにはサポートされていないそうです。

自分がcloneしたのは f73fca015d421b763936667a0b58fe5024d59921 でした。
READMEによると64bit OSの場合は./buildme --aarch64とすればビルド可能とあり、それでビルドができたという記事もありますが、上記バージョンをそのままビルドするとエラーが発生しました。

コミットログを確認したところ、f97b1af1b3e653f9da2c1a3643479bfd469e3b74で64bit用のビルドが設定がRevertされていました。
そのためこのコミットで行われた変更を再度戻し、また、それだけではビルドエラーが出たので修正も行いました。

自分が行った変更はgit hubにあげたので参考にしてください。
ビルド方法は以下になります。

$ sudo apt install build-essential cmake
$ git clone https://github.com/hiro-han/userland.git
$ cd userland
$ ./buildme --aarch64

これで /opt/vc/bin/ にvcgencmd コマンドがインストールされます。
なお、自分の環境ではこれでvcgencmdコマンドが動作しましたが、raspistillコマンドは動作しませんでした。また、他のコマンドについては試していません。

ラズパイカメラを接続した状態で、

$ sudo /opt/vc/bin/vcgencmd get_camera
supported=1 detected=1

となれば成功です。

参考

公式のインストールガイド
Ubuntuのダウンロード
wifiの設定
Ubuntu wiki
bluetoothの設定について

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?