something which something is something

まとまりのないブログ

Tips

raspberry pi zero の usb gadget mode 接続できない・見つからない

更新日:

raspberry pi zeroをwin10とusbのデータ接続してssh接続ができなかったのでメモ。初めのラズパイゼロの設定は他のサイトと同じ(config.txtの最後に追記とcmdline.txtのrootwaitの後に追記など)。それら設定を終えた後、再起動してwin10とusbでデータ接続するとwin10側でラズパイゼロを認識することができる。このとき、ラズパイゼロをUSB Ethernet/RNDIS Gadget として認識しなければならない。win10にラズパイゼロをusb接続したときいつもの接続音がなると思うが、その後デバイスマネージャーからネットワークアダプターの一覧にUSB Ethernet/RNDIS Gadgetがあれば問題ない。なければおそらくポート(COMとLPT)のところにUSBのシリアル接続した項目があると思うのでそれに対してドライバーを適用する(私の場合はそうだった)。ドライバーは

検索結果 "USB RNDIS Gadget"
https://www.catalog.update.microsoft.com/Search.aspx?q=USB%20RNDIS%20Gadget

→ Acer Incorporated. - Other hardware - USB Ethernet/RNDIS Gadget Windows 7,Windows 8,Windows 8.1 and later drivers

という項目のドライバーをダウンロードしてフォルダに解凍しておく。そして先程のデバイスマネージャーのポートのところにあるシリアルUSBの項目を右クリック→ドライバーの更新→コンピュータを参照してドライバーソフトウェアを検索 で先程解凍・展開したドライバーのフォルダを選択する。正しくドライバーが適用されればUSBシリアル接続の項目はUSB Ethernet/RNDIS Gadgetと変わり、ラズパイゼロに対してSSH接続できるようになる。ホストはraspberrypi.local で ユーザーは初期状態ならpi パスワードはraspberryで接続できるようになる。

raspberry pi zero に固定ipを割り当てる

上記のようにすることでとりあえずはラズパイゼロとssh接続ができるようになった。次にラズパイゼロに固定ipを割り当ててraspberrypi.localではなくipアドレスでssh接続できるようにする。

ネットワークアダプタの設定

ネットワークアダプタ一覧にあるラズパイゼロのアダプタ名をわかりやすいようにpizeroに変える。

次にwin10でインターネット接続するアダプタを右クリックして、プロパティから共有タブを開き、pizeroを選択する。

次にpizeroのネットワークアダプターのアイコンを右クリックしプロパティからインターネットプロトコルバージョン4(TCP/IPv4)のプロパティを開く。

"次のIPアドレスを使う"を選択して、IPアドレスとサブネットマスクを入力する。(デフォルトゲートウェイは空白)

ネットワーク接続一覧の画面でネットワークアダプタを最新の状態に更新してコマンドプロンプトからipconfigを実行する。pizeroのIPv4アドレスに先程入力したIPアドレスが入っているのを確認する。

今度はラズパイゼロ側で、raspberry.localにSSH接続しifconfigを実行する。usb0のinetの値に192.168.137.xxというipアドレスが入っていることを確認する。そのipアドレスでラズパイゼロにssh接続できるかどうかも一応確認する。

次にようやくラズパイゼロに固定ipの設定をするために/etc/dhcpcd.confのファイルを編集する。下記の記述を挿入する。意味はラズパイゼロに192.168.137.10というipアドレスを設定する。192.168.137.1は母艦のwin10のことを指す。domain_name_servers=8.8.8.8はグーグルのdnsサーバアドレス。ちなみに母艦のwindowsは固定ipとして192.168.24.xxのアドレス空間に属していて、ラズパイゼロは192.168.137.xxのアドレス空間に属している。下記を保存後に再起動して固定ipで接続ができるかどうかを確認する。ここまで問題なくできていれば接続できるはず。
# vi /etc/dhcpcd.conf

interface usb0
static ip_address=192.168.137.10
static routers=192.168.137.1
static domain_name_servers=8.8.8.8

ちなみに/etc/network/interfacesのファイルの中身も参考までに。
# vi /etc/network/interfaces

auto lo usb0
allow-hotplug usb0
iface usb0 inet manual

source-directory /etc/network/interfaces.d

まとめ

ここまででusbケーブルでwin10と接続したラズパイゼロは固定ipを設定して母艦からSSH接続し、ラズパイゼロからインターネットアクセスができるようになった。母艦と同じアドレス空間にいるマシン(私の環境では192.168.24.xx)へもラズパイゼロ(192.168.137.10)からSSH接続できることを確認した。だが、なぜか逆はできなかった。pingも通らない。そのへんは課題としておく。

上記手順は割と細かく説明しているが、それでもその通りにやってみたがうまくいかなかったということはありえる(私自身かなりつまづいた)。ハマったときの対処法はipconfigとifconfigを実行してマシンに割り当てられているipアドレスをよく確認することと再起動もしっかりとやること。

ラズパイゼロがusb接続でインターネットできるとき

ネットワークと共有センターの画面でusb接続したpizeroのアダプターがインターネットアクセスできる状態になっているときは画像のようになっている。前述の母艦のイーサネットの共有でpizeroに対して共有しておくとこうなる。インターネットアクセスなしになっていると当然接続できないし何かしら設定がおかしくなっている。そうなった場合正直私にもよくわからない。再起動したら直る場合もあるし、うまく接続できていても次の日になったら原因不明で接続できなくなったとかもあった。

母艦のイーサネットアダプタを更新するとインターネット接続ができるようになる場合もある。プロパティから共有タブを開き、現在pizeroと共有しているチェックを外して保存し、再度チェックを入れて保存というようなことをやったらインターネットアクセスができるようになった(付け焼き刃だが)

-Tips

Copyright© まとまりのないブログ , 2020 All Rights Reserved Powered by STINGER.