😇
Raspberry PiをWindowsとOTG接続するときにDHCPが遅すぎる場合に見る記事
TL;DR
- 今のRaspberry PiではNetworkManagerでusb0の接続を有効化する必要がある
- その接続設定の
ipv4.method
をauto
にすると、Windowsではくっそ遅くなる - なので
link-local
orshared
ormanual
に手動設定する
概要
Raspberry Pi Zero 2 Wを使ってハードウェア開発をしていたのですが、その際にOTG(USB Gadgetモード)でPCと有線接続する必要がありました。
普段はMacで開発してるんですが、Windowsでも動作検証したところ、DHCPが不安定(DHCPがタイムアウトになって名前解決ができなくなる、IPv4アドレスがなかなか振られないなど)が発生し、どうしよっかな〜となっていました。
なお、一度振られてしまえば安定するので、待ってれば大丈夫、といった感じでした。
ハマったところ
USB Gadgetが見えない
検索してすぐ出てくる記事は、古いものになっていて、まだRaspberry Piがdhcpcdを使っていた頃の記事です。
今はNetworkManagerが使用されているので、そちらを使うようにする必要があります。
基本は先人たちの記事を見ておけばいいです
ネットに繋がらない
Raspberry Piからインターネットに抜けられませんでした。
これはmethodをsharedにしてるときに発生します。
インターネットに抜けられるようにするには、link-localを使用する必要がありました。
DHCPが不安定すぎる
この記事の一番大事なとこです。
methodをautoにしていると、Windows環境ではDHCPがめっちゃ不安定になります。
柔軟性は失われますが、やりたいことに合わせて
- shared: Raspberry Pi側をDHCPサーバーにする
- link-local: Windows側をDHCPサーバーにする
- manual: 固定IPを設定する
のいずれかを選んでおくと良いと思います。
詳しいオプションの説明は公式ドキュメントを見るとわかりやすいです。
おわりに
Raspberry PiはマジでOSのバージョンによって仕様が違いすぎて、全くネットの情報があてになりません。
最近はそれで時間溶かしまくってます。つらい。
Discussion