Raspberry Pi ZeroをUSBケーブル1本で遊ぶ

5月リリースのRaspbianから、Raspberry Pi ZeroをOTGスレーブモードで動作させられるようになっていたようです。2つほど設定を記述して、Raspberry Pi ZeroをPCと接続すると、USB-Ethernetデバイスとして接続されて、SSHやVNCで接続できるようになります。Raspberry Pi公式ブログで紹介されていたので早速試してみました。

Raspberry Pi Zero

写真が暗くなってしまった……。

(参照元)
Programming your Pi Zero over USB – Raspberry Pi
Raspberry Pi Zero – Programming over USB! (Part 2) | Andrew’s blog

設定のしかた

Raspbianのディスクイメージをダウンロードして、イメージをSDカードに書き込みます。

書き込んだ後に認識されたbootパーティション(ドライブ)を開いて、以下のファイルを書き換えます。

config.txt
dtoverlay=dwc2の1行を追記します。
cmdline.txt
modules-load=dwc2,g_etherの1文をrootwaitのあとに追記します。改行せずスペース区切りで続けて記述するように注意します。
参照元ブログの方が記述例を提供してくれています。

書き換えが済んだら、SDカードをアンマウントして、Raspberry Pi Zeroに挿入します。

PC側の準備

PCとRaspberry Pi Zeroを接続するときはBonjourが必要になります。PCのOSによって必要なソフトウェアが異なります。

Windowsの場合はBonjourが必要になります。iTunesをインストールすれば自動的にBonjourもインストールされます。Linuxの場合はavahi-daemonが必要になります。Macの場合は特に何も用意しなくても良いです。

PCと接続

PCとRaspberry Pi ZeroのUSBポートにUSBケーブルを接続します。しばらく待つとraspberrypi.localのアドレスで接続できるようになります。


$ ssh pi@raspberrypi.local
Warning: Permanently added 'raspberrypi.local,169.254.75.218' (RSA) to the list of known hosts.
pi@raspberrypi.local's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri May 27 11:50:26 2016
pi@raspberrypi:~ $

Raspberry Pi ZeroにVNCサーバーをインストールすればデスクトップ画面も開くことができますね。

Raspberry Pi Zeroからインターネットに出る

Raspberry Pi ZeroとPCはネットワークで接続されましたが、ローカル接続なのでRaspberry Pi Zeroはインターネット接続ができません。インターネット接続するにはPC側でインターネット共有を設定すると良いでしょう。Macの場合はシステム環境設定から共有設定ができます。Raspberry Pi ZeroはRNDIS/Ethernet Gadgetとして認識されているので、これを「相手のコンピュータが使用するポート」に指定します。

インターネット共有の例

うまくつながらないとき

うまく接続されない時は、設定が正しいこと、USBケーブルがUSBホストケーブルであることを確認してみてください。とくにUSBケーブルは、充電専用ケーブルは通常のデータ通信ケーブルでは動作しないので注意が必要です。

(追記)USB Aオス-MicroUSB AオスケーブルでUSBホストケーブルになっているものは意外と少ないみたいです。手元のケーブルでは2〜3種類しか対応していませんでした。一般的なUSB Aメス-MicroUSB AオスアダプターとUSB Aオスオスケーブルを組み合わせてみても良いかもしれません。

(USBケーブルの違い参考) USBホストケーブル(OTGケーブル)について | ゆゆぶろぐ

また、Windowsでは動作しないと言う報告が上がっているようです。私もWindows10で試したところ、シリアルデバイスとして認識されてしまい、うまくネットワーク接続できないようでした。

対応機種はZeroだけ

OTGモードはなかなか便利な機能ですが、対応機種はRaspberry Pi Zeroだけとなります。Model BはUSBハブ(LAN951x)を経由しているため、Model AはIDピンがないため、それぞれ使用できないとのことです。

Raspberry Pi Zeroは買えます

カメラポート付きZeroのリリース以降、売り切れても毎週水曜日に在庫が復活する状況が続いています。需要も以前よりだいぶ落ち着いてきているようで、入荷のタイミングを見図らなくてもだいたい購入することができます。入荷後ごとの購入1台制限は変わりありませんが、最近はポンド安なので送料を含めてもお手頃な価格となっています。

Raspberry Pi Zero – Max 1 Pi Zero Per Customer!