注目キーワード

【Raspberry Pi】USB On-The-Goでパソコンと接続してRaspberry Pi を使う!

すけろく
外出先でノートパソコンとRaspberry Piで
いい感じにドヤれる開発手法はないか?
げんろく
ほう。それならUSB On-The-Goを使う手があるぞ。
パソコンとRaspberry PiをUSBケーブルでつないで
ゴニョゴニョできるしな。電源もとれる。
すけろく
なに!いいではないか!
それを教えてくれ。
カフェで優越感に浸っている自分が見えるぞ!
げんろく
不純な動機だな。
最近は最初からWi-Fi設定できるから
あまり使わなくなってるが。
古臭いと言われても知らんぞ。。。

Raspberry Pi zero WHなんかを昔から使っている人は、一度はやったことのある?Raspberry Piの操作方法があります。

Raspberry PiにMicroSDカードを差し込んで起動する前に、Raspberry Pi OSを書き込んだmicroSDカード内のファイルを編集することで、パソコンのUSBポート経由で接続して、パソコンのネットワークを共有することができます。

これをUSB On-The-Goといいます。

USB On-The-Goと呼ばれる機能を使ってパソコンのUSBポートにRaspberry Piを接続して起動します。
パソコンからRaspberry Piにアクセスする方法はリモート操作と同じSSHを使います。この機能を使うためには、Raspberry Pi OSを書き込んだMicroSDカードを再度パソコンに接続して、以下の3つの作業を行います。

①SSHの有効化
②config.txtの編集
③cmdline.txtの編集

Raspberry Pi Imagerの旧版だと、Raspberry Pi のWi-Fi設定を行うことができませんでした。その際に一時的にパソコンのUSBポート経由でSSH接続を使ってログインし、ネットワークの設定などを行う手段が提供されていました。

特にRaspberry Pi zero W系の場合は、USB端子が少なく入力装置を潤沢に接続できなかったので、重宝していましたが、最新のImagerでは前に説明したとおりWi-Fi設定やSSH設定がMicroSDカードに書き込む際にできてしまうので、今後はあまり使わないかもしれませんね。

 

今回はそんなUSB On-The-Go機能の設定方法をご紹介します。

この機能を使うためには、以下の2つの手順を踏まなければいけません。

  1. Raspberry Pi OSの構成ファイルを直に編集する
  2. 使用するパソコンに応じてパソコン側の設定を行う。
    ※今回はめんどくさいWindows10パソコンの例をご紹介します。

 

Raspberry Pi OSの構成ファイルを直に編集する

MicroSDカードに書き込んだ、Raspberry Pi OSの構成ファイルを編集します。大きく3つのファイルを追加・編集します。

USB On-The-Goの有効化方法

1
Raspberry Pi OSを書き込んだMicroSDカードをパソコンに再度接続します。※bootというドライブとして認識されます。
2
認識されたドライブの中身を確認し、「SSH」というファイル空のファイルを作ります。※拡張子なし、0KBでOKです。
3
次に「config.txt」をメモ帳などのエディタで開きます。開いたら以下の内容を追加します。追加後保存してファイルを閉じます。

dtoverlay=dwc2

編集対象ファイル cmdline.txt

console=serial0,115200 console=tty1 root=PARTUUID=XXXXXXXX rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles systemd.run=/boot/firstrun.sh systemd.run_success_action=reboot systemd.unit=kernel-command-line.target

↓修正後

console=serial0,115200 console=tty1 root=PARTUUID=XXXXXXXX rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh splash plymouth.ignore-serial-consoles systemd.run=/boot/firstrun.sh systemd.run_success_action=reboot systemd.unit=kernel-command-line.target
4
次に「cmdline.txt」をメモ帳などのエディタで開きます。左のように「rootwait」の後に半角スペースを入れて以下の内容を追記し、保存して閉じます。

modules-load=dwc2,g_ether

※このファイルは全て一文になっています。改行などは入れないようにしましょう!

以上で、USB On-The-Go機能の有効化は終了です。MicroSDカードをパソコンから取り外します。

 

パソコン側の設定を行う(Windows10の場合)

Raspberry Pi側でWi-Fiを設定している場合は、この設定をしなくてもWi-Fi経由で接続することができます。

ここに記載の手順では、接続先のWindows10パソコンのネットワークをRaspberry Piも共有して使えるようにするために、Windows10側のドライバに「USB Ethernet/RNDIS Gadget」を追加します。

このドライバは、以下のサイトで取得できます。以下のサイトの検索欄で「USB Ethernet/RNDIS Gadget」と入力してください。

Microsoft社のMicrosoft Update カタログサイトはこちら

※ブラウザは、Microsoft Edgeをおススメします。Chromeだとうまく検索できない場合があります。

 

パソコン側の設定変更

1
Microsoft Updateカタログのサイトにて「Ethernet/RNDIS Gadget」を検索欄に入力して検索すると左のような結果が表示されます。
2
検索結果の中から
「Acer Incorporated. – Other hardware – USB Ethernet/RNDIS Gadget」を選択して、「ダウンロード」ボタンを押します。
3
ダウンロード画面が表示されるので、リンク先のファイルをパソコンにダウンロードして保存します。※これ以降はダウンロードしたファイルを以下のフォルダに格納した前提で記載します。<格納先フォルダ>
D:\OTGdriver
コマンド例(D:\OTGdriverに対象ファイルがある場合)
C:\>D:
D:\>cd D:\OTGdriver
D:\OTGdriver>expand '対象ファイル名' -F:* D:\OTGdriver

4
ファイルはCAB形式になっているので、対応するソフトを持っていない場合は、左のようにコマンドプロンプトに入力し、実行することで解凍されます。※-F:* の後は解凍先フォルダの指定になりますので、左のコマンドだと対象ファイルと同じフォルダに解凍されます。
Raspberry Pi 4 Model Bの場合
USB-Cポートに接続します。
Raspberry Pi zero WHの場合
2つあるMicro USBポートのうち内側に実装されているポートに接続します。
5
電源がOFF状態のRaspberry PiにMicroSDカードを指してパソコンのUSBポートに接続します。※Raspberry Piモデルごとに接続するUSBポートが違います。
左記を確認してください。しばらく待ちます。。
6
パソコン側のデバイスマネージャを開きます。
画面左下のウィンドウアイコンを右クリックして、表示されるメニューからデバイスマネージャを選択します。
7
デバイスマネージャの
「ポート(COMとLPT)」を開いて追加されたCOMポートを選択し、右クリックから
「ドライバの更新」を選択します。
8
「コンピュータを参照してドライバーを検索」を選択します。
9
ドライバーを検索する場所に、先ほど解凍したフォルダを指定します。※ここでは解凍先の
「D:\OTGdriver」を指定しています。
10
ドライバーの更新が完了したら、「閉じる」ボタンを押します。
11
ネットワークアダプターに
追加されたことを確認します。

※この段階では、Raspberry Pi からインターネットに接続することはできません。

12
①コマンドプロンプトからSSH接続コマンドを入力します。

ssh pi@raspi01.local
*赤字部分はホスト名です。
Raspberry Pi  Imager内で指定していない場合は「raspberrypi」です。

②デバイスに接続してもいい?というメッセージが表示されるので「Yes」と入力します。

③パスワードを聞いてくるのでパスワードを入力します。
*パスワードはRaspberry Pi  Imagaer内のSSH設定で指定したものです。指定していない場合は「raspberry」になります。

④Raspberry Pi に接続完了。

13
パソコン側の画面左下のウィンドウアイコンを右クリックして、表示されるメニューからネットワーク接続を選択します。
14
左記の画面の左部から、「イーサネット」を選択し、右部に表示される「アダプターのオプションを変更する」をクリックします。
15
表示されるアダプターの中から、現在パソコンがインターネット接続に使っているアダプターを選択します。右クリックで表示される「プロパティ」をクリックします。
16
プロパティ画面で「共有」タブを選択し、「インターネット接続の共有」を以下のように設定します。

ネットワークの他のユーザーに、このコンピュータのインターネット接続をとおしての接続を許可する
ホームネットワーク接続
Raspberry Pi が接続しているネットワークアダプタを選択
ネットワークの他のユーザーに共有インターネット接続の制御や無効化を許可する
17
GoogleのPublic DNSに接続してみます。
先ほどコマンドプロンプトでRaspberry Pi に接続済みの状態から、以下のコマンドを実行します。

ping -c 5 8.8.8.8

左の図のような出力がされればインターネット接続ができています。

以上で、パソコン側の設定は終了です。お疲れさまでした。

パソコン側の設定を行う(MacOSの場合)

MacOSの場合はシステム環境設定から設定します。
①「システム環境設定」ー「共有」を選択します。
②「サービス」から「インターネット共有」を選択し、右側の「相手のコンピュータでのポート」で「NDIS/Ethernet Gadget」を選択しチェックを有効にします。

以上で、MacOSでの設定は完了です。

 

編集後記

いかがだったでしょうか。

「ちょっと面倒だな」と思われるかもしれませんが、Wi-Fi環境にRaspberry Pi 単体で接続できない場合や、Wi-Fi機能を持たないRaspberry Pi  zeroなどの開発時には使える手法だと思います。

Raspberry Pi のWi-Fi環境やイーサネット環境を設定したら、「アダプターの共有」設定を切って、Wi-Fiやイーサネット経由でSSH接続すればよいと思います。

次回は、Raspberry Pi でやっておいたほうがよい初期設定のご紹介をしていきます。

セキュリティ設定もありますので、ぜひご覧いただき、設定されることをおススメしますよ!

<追伸>
Raspberry Pi をはじめるとき、一人で調べながら必要なものをそろえていくのは、骨が折れますよね。。。私もいろいろな周辺機器を購入して後悔した末に、ようやく落ち着いて環境を作れるようになったことを思い出します。そこで、Raspberry Piを始めるために必要なものをまとめてみました。
こちらも参考にしてくださいね!
関連記事

こんな悩みありませんか? 「Raspberry Pi はじめたいけど、何があれば遊べるの? いくらかかるの?」 そんなご質問に答えるべく、購入品リストをまとめてみました。 本記事は以下の記事「Raspberry Piのはじ[…]