raspberrypi
これ以外の Raspberry Pi は USB Ethernet/RNDIS Gadget 未対応です。
Raspberry Pi に USB Ethernet/RNDIS Gadget の設定を行います。
こちらの記事の通りに設定していけば OK です。
USB 1本とSDカードライタだけでできるUSB OTGを用いたRapsberry Pi Zero WH のセットアップ
https://qiita.com/Liesegang/items/dcdc669f80d1bf721c21
以下に、重要な部分を記載しておきます。
img を焼いた microSD の中身を PC で確認します。
次の 2 ファイル(/boot/config.txt
、/boot/cmdline.txt
)を変更します。
dtoverlay=dwc2
rootwait の後に、以下の記述を追加します。
modules-load=dwc2,g_ether
この状態で、PC と USB ケーブルで接続します。
RNDIS ドライバをインストールすると、Raspberry Pi の USB 接続が Ethernet デバイスとして見えるようになります。
PowerShell を起動して、以下のコマンドを実行します。
PS C:\Users\username> Resolve-DnsName raspberrypi.local
Name Type TTL Section IPAddress
---- ---- --- ------- ---------
raspberrypi.local AAAA 120 Answer fe80::2778:1eaa:a8e9:ef01
raspberrypi.local A 120 Answer 169.254.101.93
Raspberry Pi に 169.254.XXX.XXX の IP アドレスが割り当てられていて、これを使って ssh などで通信ができます。
しかし、これだと、接続し直す度に IP アドレスが変わってしまうので少し使いづらいです。
なので、USB Ethernet/RNDIS Gadget に固定 IP アドレスを割り当てて使えるようにします。
まずは、自動割り当て IP アドレスの状態で ssh で Raspberry Pi にログインして、以下のファイルを変更します。
interface usb0
static ip_address=169.254.10.10/16
static routers=169.254.0.1
static domain_name_servers=169.254.0.1
これは例なので、この通りでなくてもよいです。
この例では、Raspberry Pi に 169.254.10.10 を割り当てています。
Raspberry Pi の起動時に usb0 インターフェイスを指定した IP アドレスで起動する設定をします。
一番下の exit 0 の手前に以下を追加します。
sleep 10
ifconfig usb0 169.254.10.10 up
(sleep を入れないとうまく設定できなかったです。)
Windows 側も、IP アドレスが固定になるように設定します。
Windows の「設定」->「ネットワークとインターネット」->「状態」->「アダプターのオプションを変更する」を選択します。
Raspberry Pi を USB 接続している場合は、「イーサネットn(リモート NDIS 互換デバイス)」が見えているはずです。
「イーサネットn」を右クリックし、「プロパティ」を選択します。
「ネットワーク」->「インターネット プロトコル バージョン4(TCP/IPv4)」を選択して「プロパティ」を選択します。
以下のように設定します。
これは例なので、この通りでなくてもよいです。
この例では、Windows に 169.254.10.2 を割り当てています。
ping を実行して疎通していれば OK です。
(例)PowerShell から Raspberry Pi への ping
PS C:\Users\username> ping 169.254.10.10
もう少し複雑になりますが、Raspberry Pi 以外の Linux USB デバイスで使用できる方法を「その2」として記載しました。
https://hackmd.io/@yuzuafro/raspi_rndis_staticipaddr_2