arduinoの民が...ラズパイに...出会ったぁ~(ウルルン..
はじめに
- 新しいラズパイ(以下、pi5)が出たというニュースを見たので、10年近くぶりにラズパイを買ってみた。
- ヘッドレス1で使うのがシャレオツ2らしいので、正攻法でラズパイをヘッドレス使用してみた。
- 今回は、macbookを使ったssh3接続までを詳しく解説している。
- 僕4みたいにlinuxに詳しくもないくせに、なんとなく買ってみた人の参考になればうれしい。
持ち物
- pi5
- microSDカード
- macbook air M3(母艦)
- モバイルバッテリ(pi5の電源)
- 母艦用の有線LANアダプタ
- ケーブル類(LANケーブル、usb-cケーブル)
sdへのos書込み
-
公式インストーラーを使って、pi5用の64bitOSをmicroSDカードに焼いた5。
- インストーラーの設定画面(一般)
ホスト名、ユーザ−名とパスワードは絶対に忘れないように。wifiについては、母艦経由でネットを使うので、設定不要。もちろん、後から追加も出来る。ヘッドレスを諦めてモニタを繋げて設定するなら、楽勝でwifiをつなげられるから、この時点では無視。
- インストーラーの設定画面(サービス)
「パスワード認証を使う」(パスワードはユーザー名に紐付いたパスワードのこと)を選択して、sshを有効にするのを忘れずに!これをやらないとヘッドレスで何も出来ない、と思う。もちろん、ヘッドレスを諦めてモニタを(以下略
- インストーラーの設定画面(オプション)はお好みで。ちなみに、「テレメトリーを有効化」というのは、インストーラーの使用状況をラズパイ財団が収集することの許可らしい。収集結果はここ。 日本からのダウンロード割合はドイツに完全に負けてるな。こりゃあ、将来が不安すぎるわ。
母艦の準備
- 有線LANアダプタを接続すると機器名(AX88179A)が表示される。
- 設定画面で、TCP/IPのIPv4を下記のように設定する。これは、後でpi5に接続(macosのインターネット共有オン)したとき、pi5のサブネットマスクが255.255.255.0でipアドレスが192.168.2.2に自動的に設定されるところ、初期設定(dhcp)のままだと、機器(AX88179A)のサブネットマスクが255.255.0.0となってしまい、macosのターミナルからpi5にアクセスできなくなってしまうため。
- インターネット共有をオンにする。共有する接続経路はインターネット接続している経路(Wifi)とし、共有先に有線LANアダプタを追加するのを忘れずに。
pi5の立ち上げからsshで接続するまで
- pi5に電源と有線LANを繋げて立ち上げる。
- しばらく待つと、接続される。もし、ネットワークの順番がWifiが下になっていたら順番を入れ替えて、wifiが上になるようにする。wifiが上でないと母艦がインターネットに繋がらなくなる。
- ターミナルを立ち上げて、sshを打ち込む前に呪文
ssh-keygen -R ホスト名[例:raspberrypi.local]
を唱えておく6。その後、ssh ユーザー名@ホスト名
を打ち込む。うまく接続されていれば、次のような画面となる。
- ここでyesと答えると、次はパスワードを聞かれて、パスワードが合っていると、次のような画面となり、緑文字のようにpi5のosを書き込むsdインストーラーでで設定した
ユーザー名@ホスト名
で始まるシェルが表示される。「~」はカレントディレクトリがユーザーのホームディレクトリ「rpi5」に有ることを意味し、「$」は一般ユーザー権限であることを示す。
- lsコマンドで、ホームディレクトリ内のサブディレクトリ一覧が表示され、cd ..で1階層上に上がり、そこでlsコマンドを行うことで、ホームディレクトリの実際の名称が「rpi5」であり、ユーザー名と同一であることが確認できる。
- この画面で
sudo raspi-config
を打ち込むと、ターミナルが次の画面に変わり、pi5に接続できていることを実感できる。
- escキーを押すなどして、元の画面に戻り、次は、pi5のネットワーク情報を確認するため、
ifconfig
を打ち込むと次のような画面になる。有線LAN(eth0)のアドレスが192.168.2.2となっていることが確認できた。また、無線LAN(wlan0)については設定を省略したため、ipアドレスが存在せず、pi5が無線LANに接続していないことが確認できる。
- 次は、インターネットにpi5が接続できているかを確認するため、curlコマンドを使う。
- 例えば、
curl wttr.in/tokyo
を打ち込むと、ターミナル表示に適したお天気サイト(wttr.in)に接続して、下記の結果を返す。pi5の無線LANは動作してないから、pi5がmac経由でインターネットに接続していることが分かる。
- ちなみに、母艦でブラウザ(safari)を使って接続すると、こんな感じ。ブラウザ経由の場合は、ロケール情報等を乗っけてアクセスするから、自動的に漢字を使用してくれるんだろうか。
- 電源を切りたいときは、
sudo shutdown now
と打ち込む。sudo shutdown
だけでもいいけど、電源が落ちるまでに無駄に時間がかかる。電源が落ちると、電源ボタンの色が赤くなる。
- なお、電源オフは電源ボタン2回クリックでも可能。ちなみにクリック1回だと、pi5にモニタを繋げていた場合、画面上で電源オフ画面がでる。
最後に
- とりあえず、pi5をヘッドレスでインターネットに繋ぐことが出来て満足した。【正攻法】と名付けたとおり、トリッキーなことは何もしていない。
- 次は、有線LANケーブルを使わず、usb-cケーブルで繋ぐことで、有線LANアダプタとLANケーブルを省く方法を紹介したい。ラズパイ4だと楽勝7みたいだけど、pi5では大変だったよ。
おまけ
- 翌日気づいたんだけど、母艦の有線LANアダプタを固定idにしなくてもpi5と繋がってた。母艦でifconfigコマンドを叩いた結果を見ると、アダプタ自体は「en6」に割り当てられてて、pi5側から見たときの母艦は、「インターネット共有」をオンにしたことにより「bridge100」に割り当てられているから、アダプタのip自体はどうでもいいみたい。この状態でもcurlコマンドによりネット接続できたのを確認できた。たまたま、お天気サービスはダウンしてたけど。
- ちなみに、route -nコマンドでルートを確認するとこんな感じ。最初の行のGateway「192.168.2.1」からインターネットの世界に繋がっている。
- 母艦のnetstatコマンドで母艦のルートを確認するとこんな感じ。
- 母艦のwifi接続はこんな感じだから、wifiが「en0」に割り当てられてて、最初の行の Gateway「10.128.128.128」からインターネットの世界に繋がっていると分かる。
-
PC本体にキーボードやモニターを繋がないこと ↩
-
お洒落なこと ↩
-
Secure Shell(セキュア シェル)の略称。sshは、暗号や認証技術を利用して、安全にリモートコンピュータと通信するためのプロトコル。パスワードなどの認証を含むすべてのネットワーク上の通信が暗号化される。macosのターミナルで使用可能。接続するときは、
ssh [ユーザー名]@[ipアドレス or ホスト名]
。具体的には、ssh rpi5@192.168.2.2
やssh rpi5@raspberrypi.local
となる。 ↩ -
picoもrpiosが動くものと勘違いしたまま購入して、インストーラーにpicoの設定がないことに驚愕した人。勢いでキットも買ってしまった。
↩ -
繰り返し、sdカードにrpiosを書き込むなら、都度、ネット経由でrpiosをダウンロードするより、imgファイルをダウンロードしておいた方が良い。
Use customでダウンロードしたファイルを選択する。書込み速度は、sdカードにもよるけど、1秒で1%進むから、失敗を繰り返しても大丈夫。
imgは解凍前(.img.xz)のままで、使える。
いろんなパターンを試すため、色違いになるようにsdカードを買った。
↩ -
呪文を唱えないでsshすると、呪われてこんなメッセージが出る。
↩ -
config.txt
とcmdline.txt
にそれぞれdtoverlay=dwc2
とmodules-load=dwc2,g_ether
という呪文を追加で書き込むだけらしい。詳しくは、ググってね。
※写真では、ssdが刺さってるけど、初期設定のboot順はsdカードが先だから、問題なし。 ↩