桜技録

🐈🐈🐈🐈🐘

Raspberry Pi 4Bの有線+固定IP+headlessセットアップ

キーボード/ディスプレイなしでラズパイをセットアップした作業記録。作業PCはmacOS

PC上での作業には💻、リモート接続したラズパイ上での作業には🥧を以下見出しに付ける。

💻 OSインストール

導入するのはGUIレスで軽量なRaspberry Pi OS Lite。

公式のDLページからOSイメージのzipを入手、解凍する。

PCにSDカードを挿す前と後で diskutil list でディスク一覧を表示、使用するSDカードのデバイス・ファイル名を確認する。

dd コマンドでOSイメージをSDカードに焼く。書き込み先には上で確認したデバイス・ファイルを指定すること。

# SDカードをアンマウント
diskutil unmountDisk /dev/disk2

# イメージをコピー
sudo dd bs=1M if=2020-08-20-raspios-buster-armhf-lite.img of=/dev/rdisk2; sync

コピーが終わると /Volumes/boot が見えるようになる。

[参考] https://www.raspberrypi.org/documentation/installation/installing-images/mac.md

💻 SSHを有効化

touch /Volumes/boot/ssh で空ファイルを作る。起動時に /boot/ssh というファイルがあればSSHサービスが有効になる仕組み。

[参考] https://www.raspberrypi.org/documentation/remote-access/ssh/README.md

💻 Bluetooth / Wi-Fiを無効化

無線を使うつもりがないので切った。/boot/config.txt に下を設定する。

# Bluetoothを無効
dtoverlay=disable-bt

# Wi-Fiを無効
dtoverlay=disable-wifi

パラメータの詳細や他に設定可能なパラメータ等は /boot/overlays/README に記載アリ。

💻 起動+SSH接続

SDカードをラズパイに挿し、LANケーブルに繋いで電源を投入する。

緑色LEDの点滅が落ち着き起動し終えたと思われるタイミングでPCからSSH接続する。初期パスワードは raspberry

ssh pi@raspberrypi.local

🥧 aptアップグレード

近場のサイト(ここではJAIST)をミラーサイト一覧から探して /etc/apt/sources.list のURLを置き換える。

すべてのパッケージを最新化する。

sudo apt-get update \
  && sudo apt-get -y upgrade \
  && sudo apt-get -y dist-upgrade \
  && sudo apt-get -y autoremove \
  && sudo apt-get autoclean

🥧 rasp-configアップグレード

Raspberry Pi OSの設定ツールrasp-configを最新化。sudo rasp-config で起動するとメニューが立ち上がるので [Update] を選択する。

🥧 ロケールを設定

rasp-configで設定。[Localisation Options] > [Change Locale] で言語に en_US.UTF-8 を、[Localisation Options] > [Change Time Zone] でタイムゾーンAsia/Tokyo を設定する。

※再起動するまで反映されない。

🥧 ホスト名を変更

rasp-configで設定。[Network Options] > [Hostname] でホスト名を変更する。

※再起動するまで反映されない。

🥧 IPアドレスを固定

/etc/dhcpcd.conf に下を設定する。

interface eth0
static ip_address=192.168.11.2/24        # IPアドレス/サブネットマスク
static routers=192.168.11.1              # デフォルト・ゲートウェイ
static domain_name_servers=192.168.11.1  # DNSサーバ

※再起動するまで反映されない。

LAN内でDHCPを運用している場合はIPアドレスが衝突しないようDHCPの付番範囲外のアドレスを使うこと。

[参考] https://www.raspberrypi.org/documentation/configuration/tcpip/README.md

🥧 再起動+設定確認

sudo reboot でOSを再起動する。

新しいIPアドレスSSH接続出来ることを確認する。

新しいホスト名がプロンプトに表示されていることを確認する。

指定したロケールlocale コマンドで表示されることを確認する。

無線LANインタフェース wlan0ip link コマンドで表示されないことを確認する。

適当なデバイスでそれらしいBluetoothが飛んでいないことを確認する。

💻 known_hostsのゴミを掃除

IP変える前に接続した時のゴミが ~/.ssh/known_hosts に残るので消しておく。

ssh-keygen -R raspberrypi.local