てるてるぼうず の軒下

この記事の内容は私個人の主観であり、所属する組織とは関係がありません。続けられるように頑張りマス。

Raspberry Pi 開発環境構築(Mac編)

Raspberry Pi 開発環境構築(Mac編)

ラズパイ開発環境構築を目指します。

  1. PC(Mac)とSSH連携起動
    PCとRaspberry Pi のUSBポートをUSBケーブルでUSB OTG(On The Go) 接続 (USBポートで電力を確保しつつssh接続) f:id:teruterubohz:20200524162803j:plain
  2. Raspberry Pi 単体起動
    電源を確保・Wi-Fi接続しつつモニタ、キーボード、マウスを接続し、Raspberry Pi 単体で起動

f:id:teruterubohz:20200607144909j:plain

1. PC(Mac)とSSH連携起動

Macによりラズパイ専用OSであるRaspbianmicroSDカードに書き込む方法を記載します

1.1. OSイメージダウンロード

Raspbianダウンロード元 : https://www.raspberrypi.org/downloads/raspbian/

1.2.Mac ドライブの識別

microSDカードをminiSDカードアダプタに挿してMacのSDカードスロットに挿入。microSDカードが認識されるとMac画面に新たに認識されたドライブのアイコンが現れます。(例ではboot)

SDカードのドライブ名を確認するために次のコマンドでファイルシステム名やドライブ名を確認します。

mac:〜$df -ah

このコマンドの実行結果としてファイルシステムリストが表示されます。そしてこの中に/Volumes/bootが表示されるレコードがあります。

/dev/disk2s1   252Mi   53Mi  199Mi    22%       0          0  100%   /Volumes/boot

これより/dev/disk2s1と示された/dev/disk2が該当ドライブと分かる。ここでディスク識別を間違えるとmicroSDをフォーマットするつもりが関係のないディスク領域を削除してしまうので、十分に注意しましょう。

1.2. SDカードフォーマット

  FAT32、ディスク名をRPIとして、以下のコマンドでmicroSDカードをフォーマットします。

mac:〜$ diskutil eraseDisk FAT32 RPI /dev/disk2
・・・
Finished erase on disk2

Finished erase on disk2と表示されフォーマット完了。
以下のコマンドでアンマウントします。

mac:〜$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful

1.3. OSイメージ書き込み

事前にダウンロードしておいたraspbianイメージを以下のコマンドでmicroSDカードに書き込みます。
書き込み時間の目安

mac:〜$ sudo dd bs=32m if=2020-02-13-raspbian-buster.img of=/dev/rdisk2 conv=sync
Password:
3612+0 records in
3612+0 records out
3787456512 bytes transferred in 194.471355 secs (19475652 bytes/sec)

書き込み時間

SDカード バッファリングサイズ 書き込み時間(秒)
UHSスピードクラス 1 32 597
UHSスピードクラス 1 1 1244
スピードクラス 10 1 310
スピードクラス 2 32 1041
スピードクラス 2 1 1039

1.4. OTG設定

config.txt と cmdline.txt の編集をします

1.4.1. config.txt 編集
mac:〜$ sudo nano /Volumes/boot/config.txt

ファイルの最後にdtoverlay=dwc2と追記し保存(ctrl+x → Yes)します。

1.4.2. cmdline.txt 編集
mac:〜$ sudo nano /Volumes/boot/cmdline.txt

ファイル内の中間あたりにあるrootwaitとquietの間にmodules-load=dwc2,g_etherを追加します。

mac:〜$ dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=15ca46a5-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles

1.5. SSH設定

/Volumes/boot/配下にsshと言う名前の空ファイルを作成し、SDカードを取り出します。

mac:〜$ touch /Volumes/boot/ssh 
mac:〜$ sudo diskutil eject /dev/disk2

1.6. Mac側設定

[]-[システム環境設定]-[共有]を開き、[インターネット共有]を選択し[RNDIS/Ethernet Gadget]を選択します。
※[インターネット共有]に[RNDIS/Ethernet Gadget]が表示されなければ、[]-[このMacについて]-[ソフトウェア・アップデート…]

f:id:teruterubohz:20200510003303p:plain

1.7. Raspberry Pi SSH連携起動

f:id:teruterubohz:20200601010425j:plainraspberry piをPCとmicroUSBケーブルで上図のように接続し、LED点灯が落ち着くまで約2分ほど待ちます。その後、以下のコマンドを使ってラズパイと接続します。

ssh pi@raspberrypi.local
※パスワードは raspberry

上記コマンドを打った時に以下のようなエラーを発生する場合があります。これは過去の接続キー情報が残っているために出力されるエラーとのことです。 f:id:teruterubohz:20200524154421p:plain

以下のコマンドでSSHキーを再生成すると良いようです。

$ ssh-keygen -R raspberrypi.local

1.8. Raspberry Pi インターネット接続確認

  まず自身のIPアドレスを確認したいので[raspberrypi.local]に対して ping を打ってみます。その後、Raspberry Pi がインターネットに接続されていることを確認するため GoogleDNS サーバ(8.8.8.8 or 8.8.4.4)に対して ping を打ってみます。
※-cオプション:ping の回数

f:id:teruterubohz:20200601002731p:plain

1.9. Raspberry Pi システム更新

sudo apt-get update
sudo apt-get upgrade

1.10. Raspberry Pi ソフトウェア設定

SSH接続ができたら次のコマンドで raspberry pi の設定を行います。

pi@raspberrypi:~ $ sudo raspi-config

f:id:teruterubohz:20200601011423p:plainraspberry pi 設定画面

1.10.1. カメラ有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P1 Camera] f:id:teruterubohz:20200601013739p:plain

[Yes] f:id:teruterubohz:20200601013743p:plain

[OK] f:id:teruterubohz:20200601013747p:plain

1.10.2. VNC有効化

[5 Interfacing Options] f:id:teruterubohz:20200601013730p:plain

[P3 VNC] f:id:teruterubohz:20200601014330p:plain

[Yes] f:id:teruterubohz:20200601014339p:plain

[OK] f:id:teruterubohz:20200601015137p:plain

1.10.3. VNC解像度変更

[Advanced Options] f:id:teruterubohz:20200601015640p:plain

[5 Resolution] f:id:teruterubohz:20200601015644p:plain

[DMT Mode 51 1600x1200 60Hz 4:3]※適切な設定を選択 f:id:teruterubohz:20200601015649p:plain

[OK] f:id:teruterubohz:20200601015655p:plain

Raspberry Pi 単体起動

  1. Wi-Fi設定
  2. Raspberry Pi 起動