RaspberryPi で Ubuntu をヘッドレス起動する

RaspberryPi

Raspberry Pi 4 で Ubuntu 20.04 LTS をモニターやキーボード無しのヘッドレス起動した時のまとめです.

OS の準備

Raspberry Pi に電源を入れるまでは以下の通りの一般的な手順で行います.

  1. OSイメージ (Ubuntu) をダウンロード
  2. SDカードをSD Card Formatter でフォーマット
  3. balenaEtcher で Ubuntu を SDカードに 焼き込む

起動と接続

PC と Raspberry Pi を有線LANで繋いで,Raspberry Pi を起動します.
Raspberry Pi 用の Ubuntu はホスト名で接続できません
そのため, Raspberry Pi の IPアドレスを調べる必要があります.
今回は ipコマンドを使います.

Mac の場合は以下のコマンドで homebrew を使ってインストールできます.

brew install iproute2mac

次のコマンドで, PC に繋がっている端末のIPアドレスを表示します.

ip neigh

僕の場合は次のような表示が出ました.

Botamochi-MacBook-Pro:~ botamochi$ ip neigh
fe80::1 dev lo0 lladdr (incomplete) REACHABLE
fe80::aede:48ff:fe00:1122 dev en3 lladdr ac:de:48:0:11:22 REACHABLE
fe80::aede:48ff:fe33:4455 dev en3 lladdr ac:de:48:33:44:55 REACHABLE
fe80::10c3:b7a6:833:458c dev en0 lladdr a4:83:e7:6e:cc:96 REACHABLE
fe80::147d:60ff:fea6:193f dev awdl0 lladdr 16:7d:60:a6:19:3f REACHABLE
fe80::7800:a8ff:feb9:a501 dev bridge0 lladdr 7a:0:a8:b9:a5:1 REACHABLE
fe80::412d:8afe:9629:7445 dev utun0 lladdr (incomplete) REACHABLE
fe80::876:1d47:2212:5d2b dev en5 lladdr 48:65:ee:1f:6f:b5 REACHABLE
fe80::acde:48ff:fe00:3364 dev bridge100 lladdr ae:de:48:0:33:64 REACHABLE
fe80::9ac1:e991:3ccf:1319 dev utun1 lladdr (incomplete) REACHABLE
192.168.2.255 dev bridge0 lladdr ff:ff:ff:ff:ff:ff REACHABLE
192.168.3.1 dev en0 lladdr 0:60:b9:aa:5b:c1 REACHABLE
192.168.3.27 dev en0 lladdr 6c:40:8:3a:68:82 REACHABLE
192.168.3.255 dev en0 lladdr ff:ff:ff:ff:ff:ff REACHABLE
192.168.4.2 dev bridge10 lladdr dc:a6:32:70:a0:71 REACHABLE
192.168.4.255 dev bridge10 lladdr ff:ff:ff:ff:ff:ff REACHABLE
224.0.0.251 dev en0 lladdr 1:0:5e:0:0:fb REACHABLE
239.255.255.250 dev en0 lladdr 1:0:5e:7f:ff:fa REACHABLE
255.255.255.255 dev en0 lladdr ff:ff:ff:ff:ff:ff REACHABLE

検索方法がわからなかったので,総当たりつもりでしたが,今回は192.168.3.27がMacだとわかっていたので,残りの192.168.4.2で確定できました.
力業になりますが, PC から Raspberry Pi 以外の端末を外したり, sshを総当たりすれば繋がると思います.

IP アドレスがわかったら,次のように ssh で接続します.

ssh ubuntu@[raspberry pi's ip address]

僕の場合は ssh ubuntu@192.168.4.2 でログインしました (pwはubuntu).
途中でパスワードを変更しろと言われるので変更します (もう一度ubuntuにしようとすると単純すぎると怒られます).

Botamochi-MacBook-Pro:~ botamochi$ ssh ubuntu@192.168.4.2
The authenticity of host '192.168.4.2 (192.168.4.2)' can't be established.
ECDSA key fingerprint is SHA256:rOsItltSanb1Aw+LUtfFWb9DthD2z3CQI5hp0rQ22Wg.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.4.2' (ECDSA) to the list of known hosts.
ubuntu@192.168.4.2's password: 
Warning: No xauth data; using fake authentication data for X11 forwarding.
X11 forwarding request failed on channel 0
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 Mon May 18 10:43:56 UTC 2020

  System load:  0.39              Temperature:           57.9 C
  Usage of /:   6.7% of 29.04GB   Processes:             133
  Memory usage: 7%                Users logged in:       0
  Swap usage:   0%                IPv4 address for eth0: 192.168.4.2

 * MicroK8s passes 9 million downloads. Thank you to all our contributors!

     https://microk8s.io/

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



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.4.2 closed.

パスワードを変えると自動的に再起動するので,再度 ssh でログインします.
これで Raspberry Pi のヘッドレス起動成功です!

ホスト名でログインできるようにする

毎回ipアドレスを検索するのは面倒なので,ホスト名でログインできるようにします.

ssh で Raspberry Pi にログインした状態で,いつも通りライブラリを更新します.

sudo apt-get update
sudo apt-get upgrade

avahi-daemon をインストールします.


sudo apt-get install avahi-daemon
`

これで再起動すれば,次回からホスト名 (デフォルトは ubuntu)でログインできるようになります.

References

macOS SierraにHomebrewでipコマンドをインストールする - Qiita
環境 OS : macOS Sierra version10.12.4 64bit Homebrew 1.2.1 インストール対象 : iproute2mac v1.2.1 1. Homebewを最新化する 最新化(...
Raspberry Pi 4 + ROS2 で、最低限のロボットプログラムを作る準備 - Qiita
(2020/4/28 追記) Raspberry Pi 4 用の Ubuntu 18.04 公式イメージが使用可能になっていました。 しかし、今は 20.04 の陰に隠れているようです...。 おそらく、ここからダウンロードでき...
Raspberry Pi 4にUbuntu Serverをモニター無しでインストールする。 - Qiita
導入 ダウンロード先に軽くインストールガイドが乗っています ubuntu.com/download/raspberry-pi ガイドには必要なものとして A microSD card An Ubuntu Server ima...

コメント