###### tags: `raspberrypi` # Raspberry Pi の USB Ethernet/RNDIS Gadget で 固定 IP アドレスを使う(その1) ## USB Ethernet/RNDIS Gadget 対応 Rasbperry Pi - Raspberry Pi Zero / Raspberry Pi Zero W / Raspberry Pi Zero WH - Raspberry Pi 4 これ以外の Raspberry Pi は USB Ethernet/RNDIS Gadget 未対応です。 ## Raspberry Pi の USB Gadget 設定 Raspberry Pi に USB Ethernet/RNDIS Gadget の設定を行います。 こちらの記事の通りに設定していけば OK です。 > USB 1本とSDカードライタだけでできるUSB OTGを用いたRapsberry Pi Zero WH のセットアップ > https://qiita.com/Liesegang/items/dcdc669f80d1bf721c21 以下に、重要な部分を記載しておきます。 ### Raspberry Pi 側の設定変更箇所 img を焼いた microSD の中身を PC で確認します。 次の 2 ファイル(`/boot/config.txt`、`/boot/cmdline.txt`)を変更します。 ###### /boot/config.txt ``` dtoverlay=dwc2 ``` ###### /boot/cmdline.txt rootwait の後に、以下の記述を追加します。 ``` modules-load=dwc2,g_ether ``` この状態で、PC と USB ケーブルで接続します。 ### PC 側の設定変更箇所(Windows の場合) 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 アドレスの設定(Raspberry Pi 側) ### DHCP 設定の変更 まずは、自動割り当て IP アドレスの状態で ssh で Raspberry Pi にログインして、以下のファイルを変更します。 ###### /etc/dhcpcd.conf ``` 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 の手前に以下を追加します。 ###### /etc/rc.local ``` sleep 10 ifconfig usb0 169.254.10.10 up ``` > (sleep を入れないとうまく設定できなかったです。) ## 固定 IP アドレスの設定(Windows 側) Windows 側も、IP アドレスが固定になるように設定します。 Windows の「設定」->「ネットワークとインターネット」->「状態」->「アダプターのオプションを変更する」を選択します。 Raspberry Pi を USB 接続している場合は、「イーサネットn(リモート NDIS 互換デバイス)」が見えているはずです。 「イーサネットn」を右クリックし、「プロパティ」を選択します。 「ネットワーク」->「インターネット プロトコル バージョン4(TCP/IPv4)」を選択して「プロパティ」を選択します。 以下のように設定します。 <img src=https://i.imgur.com/eg5v4PB.png width=400px> これは例なので、この通りでなくてもよいです。 この例では、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
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.