らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

macOS で Raspberry Pi を初期セットアップする

久しぶりに macOSRaspberry Pi のセットアップをしたので手順をメモしておきます。

Step.1

Raspbian から OS をダウンロードしておきます。

f:id:sig9:20191229040348p:plain

Step.2

マイクロ SD カードを macOS へ接続して認識させたら、diskutil list でデバイス名を確認します。 下記の例では /dev/disk2 として認識しています。

$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:          Apple_CoreStorage                         749.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           *748.9 GB   disk1
                                 Logical Volume on disk0s2
                                 33656199-1C39-4C86-8C14-9547ACDC60F4
                                 Unencrypted
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.5 GB    disk2
   1:                 DOS_FAT_32                         15.5 GB    disk2s1

Step.3

SD カードへ dd でイメージを書き込む下準備として、SD カードをアンマウントしておきます。

diskutil unmountDisk /dev/disk2

Step.4

SD カードへ dd でイメージを書き込みます。 disk への書き込みはランダムアクセスが可能な代わりにバッファ経由のアクセスになります。 今回は「dd でイメージを書き込む」という、シーケンシャルアクセスとなる為、(シーケンシャルアクセスしか出来ない代わりに) バッファを経由しない rdisk として書き込みした方が速く書き込め、作業時間が短縮出来ます。

sudo dd bs=1m if=/Path/To/Raspbian.img of=/dev/rdisk2

Step.5

最近の Raspbian OS は「/ssh ファイルが存在しないと外部からの SSH アクセスを受け付けない」仕様へ変更されています。 初期状態から SSH アクセス出来る方が便利ですので、予め macOS 上から SD カードのルートディレクトリ位置に ssh という名前の空ファイルを作成しておきます。

touch /Volumes/boot/ssh

Step.6

ここまで用意出来たら macOS から SD カードを取り出し、Raspbery Pi に挿入し、ネットワークケーブルを挿します。 初期状態で Raspberry PiDHCP でアドレスを取得しに行く為、Raspberry Pi の電源を入れる前 / 入れた後で DHCP のリース状態の差分をとり、Raspberry Pi のアドレスを特定すると外付けモニタやキーボードが無くても作業が出来ます。

Step.7

Raspbian OS の初期ユーザ情報は下記の通りです。 Raspberry PiSSH ログインします。

ユーザ名 パスワード
pi raspberry

Step.8

Raspberry Pi を固定アドレス化します。 /etc/dhcpcd.conf を以下のように書き換えます。 アドレスは任意に読み替えます。

interface eth0
static ip_address=10.0.0.1/24
static routers=10.0.0.254
static domain_name_servers=1.1.1.1

設定出来たら一度 OS を再起動し、意図したアドレスへ変更されていることを確認します。

sudo reboot

Step.9

システムをアップデートしておきます。

sudo apt update
sudo apt -y upgrade
sudo apt -y autoclean
sudo reboot

rpi-update は使わないのが推奨

rpi-update でアップデートする手順をガイドしている記事を見かけますが、Raspberry Piファームウェアは安定版になれば標準リポジトリからインストール可能だそうです。 rpi-update では安定版では無いファームウェアがインストールされる可能性がある為、推奨されない手順 なんだそうです。

タイムゾーンを設定する

timedatectl statusタイムゾーンを確認すると、デフォルトでは Europe/London になっていました。

# timedatectl status
               Local time: Sun 2019-12-29 09:01:23 GMT
           Universal time: Sun 2019-12-29 09:01:23 UTC
                 RTC time: n/a
                Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

タイムゾーンAsia/Tokyo へ変更します。

sudo timedatectl set-timezone Asia/Tokyo

タイムゾーンが変更されたことを確認します。

# timedatectl status
               Local time: Sun 2019-12-29 18:03:21 JST
           Universal time: Sun 2019-12-29 09:03:21 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no