Raspberry Pi で「bookworm」を 使ってWindows11 や Macから OTG 接続する手順を解説します
(2024.07.07追記)
Raspberry Pi 4 でも「bookworm」を使う場合はこのページの手順を使わないとOTG接続出来ません。
bookwormを使用する場合、PI4、Pi5などでOTG接続する時はこの方法を使用してください
タイトルにRaspberry Pi 5だけ記載していると誤解を招く可能性があるのでタイトルを少し変更しました。
(以上)
Raspberry Pi 4やRaspberry Pi Zero 2 W 等でOTG接続(USBケーブルで接続する方法)を行った事がある事を前提条件としています
初めてOTG接続に挑戦する場合は、そこの所は各自ネット検索等で必要なドライバーやソフトを先にPCへインストールしておいてください
参考URL https://jun3010.me/raspberry-pi5-usbotg-gether.html
(Raspberry Pi5とiPad ProをUSB-OTGで繋ぐ方法)
(重要)
PC(Win or Mac)をRaspberry Pi 5へ接続する場合Thunderbolt4以上(コネクタ形状がType-C)のケーブルを使用してください(強く推奨 ほぼ必須と言ってもいいかも知れません) 100均等のC to C ケーブルでもWindowsなら接続出来ましたが、IPアドレス取得に失敗することが多く接続完了までに時間が掛かります(私の環境で2分以上)
手順1 config.txtとcmdline.txtの編集
/boot/firmware/config.txt に
dtoverlay=dwc2
を追加する
/boot/firmware/cmdline.txt のrootwait と quiet の間に下記の文字列を挿入
modules-load=dwc2,g_ether g_ether.host_addr=02:22:82:ff:ff:01 g_ether.dev_addr=02:22:82:ff:ff:11
(rootwait の後と quiet の前には半角スペースを入れること)
手順2 usb0 というネットワークインターフェイスを作る
LXTerminal で
sudo nmcli con add type ethernet con-name ethernet-usb0
を実行する
手順3 nmconnectionの編集
手順2 のコマンドを実行後に作られた ethernet-usb0.nmconnection ファイルを次のように編集する
LXTerminal で
sudo nano /etc/NetworkManager/system-connections/ethernet-usb0.nmconnection
とethernet-usb0.nmconnectionを開き
[connection]
id=ethernet-usb0
uuid=<random group of characters here>
type=ethernet
autoconnect=true #この行を追加
interface-name=usb0 #この行を追加
[ethernet]
[ipv4]
method=auto #この行が auto であることを確認しておくこと
[ipv6]
addr-gen-mode=default
method=auto
[proxy]
手順4 起動時に usb0 を up するサービスを作る
ラズパイ起動時に usb0 を有効化するためのサービスを作って、enable にする
LXTerminal で
sudo nano /usr/local/sbin/usb-gadget.sh
と入力しusb0 を起動するためのシェルスクリプトを作成するusb-gadget.shのは下記の様にする
#!/bin/bash
nmcli con up ethernet-usb0
作成出来たら読み取りと実行の権利を与える(LXTerminal で)
sudo chmod a+rx /usr/local/sbin/usb-gadget.sh
手順5 起動時に usb-gadget.sh を実行するための専用サービスを作成
LXTerminal で下記のコマンドを実行する
sudo nano /lib/systemd/system/usbgadget.service
usbgadget.service の中は以下の様にする
[Unit]
Description=My USB gadget
After=NetworkManager.service
Wants=NetworkManager.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/sbin/usb-gadget.sh
[Install]
WantedBy=sysinit.target
手順6 OS が起動する際、NetworkManager.service が起動した後に usbgadget.service が起動するようにする
LXTerminal で下記コマンドを実行する
sudo systemctl enable usbgadget.service
以上で service が enable になります
手順7 Raspberry Pi 5 を reboot する。
以上で OTG 接続出来る様になります。
IP アドレスは Windows11 なら 192.168.137.XX (XX は自動で割り振られます)
Mac なら 192.168.X.2 で繋がります。(通常は 192.168.2.2)
OTG接続が出来たかの確認は
LXTerminal で
sudo apt update
を実行してみるのが一番手っ取り早いかと思います(Raspberry Pi 5のWi-Fiは切ってから)