久しぶりに Raspberry Pi を扱う機会があったので、思い出しがてら書いておく。
使った環境は次の通り。
$ sw_vers ProductName: macOS ProductVersion: 14.2.1 BuildVersion: 23C71
使ったカードリーダーはこちら。 特にドライバなどをインストールしなくても認識してくれる。
Raspberry Pi と SD カードは相性問題があるので、起動するかはレビューを確認したり以下のサイトで調べておくと良い。
書き込むイメージファイルを用意する
まずは公式サイトからイメージファイルをダウンロードしてくる。
$ wget --trust-server-names https://downloads.raspberrypi.org/raspios_arm64_latest
念のためファイルのハッシュが一致することを確認する。
$ shasum -a 256 2023-12-05-raspios-bookworm-arm64.img.xz 5c54f0572d61e443a32dfa80aa8d918049814bfc70ab977f2d545eef45f1658e 2023-12-05-raspios-bookworm-arm64.img.xz
確認できたらファイルを展開する。
$ unxz 2023-12-05-raspios-bookworm-arm64.img.xz $ file 2023-12-05-raspios-bookworm-arm64.img 2023-12-05-raspios-bookworm-arm64.img: DOS/MBR boot sector; partition 1 : ID=0xc, start-CHS (0x40,0,1), end-CHS (0x3ff,3,32), startsector 8192, 1048576 sectors; partition 2 : ID=0x83, start-CHS (0x3ff,3,32), end-CHS (0x3ff,3,32), startsector 1056768, 10346496 sectors
書き込み先を確認する
カードリーダーに SD カードを挿入したら Mac につなげる。
自動で認識するはずなので diskutil
を使ってデバイスを確認する。
$ diskutil list /dev/disk0 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *1.0 TB disk0 1: Apple_APFS_ISC Container disk1 524.3 MB disk0s1 2: Apple_APFS Container disk3 994.7 GB disk0s2 3: Apple_APFS_Recovery Container disk2 5.4 GB disk0s3 ... /dev/disk6 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *15.9 GB disk6 1: Windows_FAT_32 boot 46.0 MB disk6s1 2: Linux 15.9 GB disk6s2
上記では /dev/disk6
が SD カードに対応したデバイスになる。
確認できたら、マウントされているパーティションを全てアンマウントする。
$ sudo diskutil unmountDisk /dev/disk6 Unmount of all volumes on disk6 was successful
イメージを書き込む
dd
コマンドを使ってブートイメージを書き込む。
書き込み先のデバイスを間違えると macOS がインストールされている領域が壊れる恐れがあるので注意する。
必ず先ほど確認した SD カードリーダーのデバイスで、かつ RAW デバイス (s がついていない) を指定する。
$ sudo dd bs=1m if=2023-12-05-raspios-bookworm-arm64.img of=/dev/disk6 5568+0 records in 5568+0 records out 5838471168 bytes transferred in 728.015780 secs (8019704 bytes/sec)
書き込みが終わると自動でマウントされるはず。 中身はこんな感じになる。
$ ls /Volumes/bootfs LICENCE.broadcom bcm2711-rpi-400.dtb fixup.dat initramfs8 start4cd.elf bcm2710-rpi-2-b.dtb bcm2711-rpi-cm4-io.dtb fixup4.dat initramfs_2712 start4db.elf bcm2710-rpi-3-b-plus.dtb bcm2711-rpi-cm4.dtb fixup4cd.dat issue.txt start4x.elf bcm2710-rpi-3-b.dtb bcm2711-rpi-cm4s.dtb fixup4db.dat kernel8.img start_cd.elf bcm2710-rpi-cm3.dtb bcm2712-rpi-5-b.dtb fixup4x.dat kernel_2712.img start_db.elf bcm2710-rpi-zero-2-w.dtb bootcode.bin fixup_cd.dat overlays start_x.elf bcm2710-rpi-zero-2.dtb cmdline.txt fixup_db.dat start.elf bcm2711-rpi-4-b.dtb config.txt fixup_x.dat start4.elf
あとはディスクをアンマウントした上で物理的にカードを抜き取る。
$ sudo diskutil umount /Volumes/bootfs Volume bootfs on disk6s1 unmounted
抜き取ったカードを Raspberry Pi にぶっさして起動すればおっけー。
めでたしめでたし。