SlideShare a Scribd company logo
3
Most read
9
Most read
14
Most read
Raspberry PiのUSB OTGを試す
KenichiroMATOHARA(@matoken)
http://matoken.org
鹿児島Linux勉強会2017.01(2017­01­04)
サンエールかごしま 中研修室1
@matoken 1
自転車
@matoken 2
Raspberry PiのUSB OTGを試す
@matoken 3
Raspberry Pi
英国製のちっこいコンピュータ
幾つか種類がある
今回のOTGが利用できるのはA/A+/ZeroでBシリーズでは利用でき
ない
A/A+はUSB A­Aになるのでケーブルの入手性が悪い
ZeroはmicroUSB
@matoken 4
@matoken 5
Raspberry Pi ZERO
@matoken 6
USB OTG
USB On­The­Go
USB ホストとしてもデバイスとしても利用できる
AndroidをPCに繋ぐとMTPデバイスとして見えるけど,Androidに
USBキーボードを繋ぐとUSBホストとして動作して利用できるなど
Raspberry Piでもこれが利用できる
似たものでBBBや96board等動作するものは多い
利用内容にもよるけどmicroUSBケーブル1本だけ(電源兼通信)で
利用出来るので便利
@matoken 7
Raspberry Piで利用できそうなプロトコル
シリアル (g_serial)
イーサネット (g_ether)
マスストレージ (g_mass_storage)
MIDI (g_midi)
オーディオ (g_audio)
キーボード,マウス,ジョイスティック (g_hid)
マスストレージ&シリアル (g_acm_ms)
イーサネット&シリアル (g_cdc)
イーサネット&マスストレージ&シリアル (g_multi)
ウェブカメラ (g_webcam)
プリンター (g_printer)
テスト用? (g_zero)
@matoken 8
USB OTGを利用するためのRaspberry
Pi(Raspbian)での前準備
パスワードを規定値から変更
 $ passwd 
OSを最新にする
 $ sudo apt update && sudo apt upgrade ­y 
firmwareを最新にする
 sudo rpi­update 
dwc2 USB driverが利用できるように /boot/config.txt を編集
$ echo "# USB OTG
dtoverlay=dwc2" | sudo tee ­a /boot/config.txt
再起動
@matoken 9
シリアルを使ってみる(Raspberry Pi認識)
Raspberry Pi側でシリアルの g_serial  moduleを読み込む
$ sudo modprobe g_serial
$ lsmod|grep g_serial
g_serial                3753  0 
libcomposite           49383  3 usb_f_acm,usb_f_rndis,g_serial
$ dmesg | tail ­8
[  332.804810] g_serial gadget: Gadget Serial v2.4
[  332.804840] g_serial gadget: g_serial ready
[  332.804887] dwc2 20980000.usb: dwc2_hsotg_enqueue_setup: fa
[  332.807914] dwc2 20980000.usb: bound driver g_serial
[  333.013000] dwc2 20980000.usb: new device is high­speed
[  333.093343] dwc2 20980000.usb: new device is high­speed
[  333.161825] dwc2 20980000.usb: new address 26
[  335.546058] g_serial gadget: high­speed config #2: CDC ACM 
 /dev/ttyGS0 が生えてくる
$ ls ­ltr /dev/tty*| tail ­2
crw­rw­­­­ 1 root dialout 243,  0 12月 24 18:24 /dev/ttyGS0
crw­­­­­­­ 1 pi   tty     204, 64 12月 24 18:33 /dev/ttyAMA0@matoken 10
シリアルを使ってみる(PC認識)
PC側での認識例(/dev/ttyACM0として認識)
[137739.592791] usb 4­1.2: new high­speed USB device number 
[137739.701258] usb 4­1.2: New USB device found, idVendor=
[137739.701264] usb 4­1.2: New USB device strings: Mfr=1, Prod
[137739.701268] usb 4­1.2: Product: Gadget Serial v2.4
[137739.701271] usb 4­1.2: Manufacturer: Linux 4.4.34+ with
[137739.701419] usb 4­1.2: Device is not authorized for usage
[137742.073829] cdc_acm 4­1.2:2.0: ttyACM0: USB ACM device
[137742.074747] usbcore: registered new interface driver cdc_a
[137742.074748] cdc_acm: USB Abstract Control Model driver 
@matoken 11
シリアルを使ってみる(叩いてみる)
Raspberry Pi側で待ち受け
$ cat /dev/ttyGS0
PC側からメッセージを送ってみる
$ echo "hello pi." > /dev/ttyACM0
Raspberry Pi側にメッセージが
hello pi.
@matoken 12
シリアルモジュールのアンロード
$ sudo modprobe ­r g_serial
$ lsmod | grep g_serial
@matoken 13
シリアルモジュールの自動読み込み設定
kernelパラメータに書く方法
 /boot/cmdline.txt を開いて rootwait の後ろに modules­
load=dwc2,g_serial を追記する
/etc/modulesに書く方法
$ echo "g_serial" | sudo tee ­a /etc/modules
どちらかの手順でOK
再起動で反映
@matoken 14
シリアルをgettyに繋いでみる
$ sudo systemctl enable serial­getty@ttyGS0.service
これでホストから繋ぐとコンソールが利用できる
$ cu ­l /dev/ttyACM0 ­s 115200
Connected.
Raspbian GNU/Linux 8 pizero ttyGS0
pizero login: 
※モジュールがロードされるのが遅いのでGPIOのシリアルと違いブート
メッセージを見ることは出来ない(と思う)
@matoken 15
利用例
シリアルコンソールでホストから繋いでメンテナンス(GPIOより配線
が少ない)
GPSモジュールの結果を出力してUSB GPSに
bcm2708­rngを利用して乱数生成器に
:
@matoken 16
イーサネットを使ってみる
 g_ether を読み込むと /dev/usb0 が生えてくる
あとは普通のネットワークカードとして設定すればOK
HOST PCで「他のコンピューターへ共有」と設定すると便利
@matoken 17
シリアルとイーサネットを同時に利用する
 g_cdc を読み込むとシリアルとイーサネットが同時に利用できる
 /dev/ttyGS0 と /dev/usb0 が生えてくる
日常使いに便利
@matoken 18
マスストレージを利用する
 g_mass_storage に引数を付けて読み込むとマスストレージ(USB
メモリ)として利用できる
引数にはデバイスやファイルが指定できる
 /dev/mmcblk0p3 
 /home/pi/disk.img 
ファイルの前準備例
$ dd if=/dev/zero of=/home/pi/disk.img bs=1M count=1024
$ /sbin/mkfs.vfat /home/pi/disk.img
同時に複数指定も出来る
$ sudo modprobe g_mass_storage file=/dev/mmcblk0p3,/home/
@matoken 19
イーサネット&マスストレージ&シリアルを同時
に利用する
 g_multi を読み込むと同時に利用できる
@matoken 20
キーボード,マウス,ジョイスティック
HID(g_hid)で行けると思うんだけど……
pi@pizero:~$ sudo modprobe g_hid
modprobe: ERROR: could not insert 'g_hid': No such device
pi@pizero:~$ sudo modprobe ­v g_hid
insmod /lib/modules/4.4.34+/kernel/drivers/usb/gadget/legacy
modprobe: ERROR: could not insert 'g_hid': No such device
pi@pizero:~$ ls ­l /lib/modules/4.4.34+/kernel/drivers/usb
­rw­r­­r­­ 1 root root 10928 11月 26 01:35 /lib/modules/4.4.34+
残りの他のも含め宿題に…….
@matoken 21
powered by Marp ­ Markdown Presentation Writer
Licence : CC BY­NC­SA 4.0
@matoken 22

More Related Content

PPTX
Linux の hugepage の開発動向
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
PDF
Dpdk pmd
PDF
DPDKによる高速コンテナネットワーキング
PDF
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
PDF
C# における Redis 徹底活用
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
PDF
Linux女子部 systemd徹底入門
Linux の hugepage の開発動向
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Dpdk pmd
DPDKによる高速コンテナネットワーキング
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
C# における Redis 徹底活用
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
Linux女子部 systemd徹底入門

What's hot (20)

PDF
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
 
PDF
FPGA+SoC+Linux実践勉強会資料
PPTX
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
PDF
仮想化環境におけるパケットフォワーディング
PDF
Pcapngを読んでみる
PDF
12 分くらいで知るLuaVM
PDF
DPDK QoS
PDF
空間分割
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
PPTX
YoctoをつかったDistroの作り方とハマり方
PDF
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
PDF
WebRTC入門 ~沖縄編~
PPTX
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
PDF
Hill Stephen Rendering Tools Splinter Cell Conviction
PPTX
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
PDF
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
PDF
目grep入門 +解説
PPTX
継承辺りのもしかしたらマイナーかもしれない C#
PDF
JIT のコードを読んでみた
余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」
 
FPGA+SoC+Linux実践勉強会資料
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
仮想化環境におけるパケットフォワーディング
Pcapngを読んでみる
12 分くらいで知るLuaVM
DPDK QoS
空間分割
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
YoctoをつかったDistroの作り方とハマり方
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
WebRTC入門 ~沖縄編~
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Hill Stephen Rendering Tools Splinter Cell Conviction
A Certain Slant of Light - Past, Present and Future Challenges of Global Illu...
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
目grep入門 +解説
継承辺りのもしかしたらマイナーかもしれない C#
JIT のコードを読んでみた
Ad

Viewers also liked (20)

PDF
ゲーミングプラットホームのLutris
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
PDF
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
ODP
Raspberry Pi Zero
PDF
USBを保護するUSBGuard
PDF
Introduction to c#
PDF
BAD USB 2.0
PDF
BadUSB, and what you should do about it
PDF
ビル・ゲイツ「学校では教えてくれない人生に役立つ11のルール」
PDF
AKIBAX2010 新ブーム「電子工作」を体験しよう!
PDF
How I Learned To Stop Worrying (And Love The KiCad)
PDF
これからの音楽はハイレゾだ!
PDF
Iphoneで良い音楽を聞く方法
PPTX
Why (and how) to switch to KiCad
ODP
Designing with KiCAD of 64-bit ARM board
PPTX
DerbyCon 2014 - Making BadUSB Work For You
PDF
Picademy 5 Picamera Intro Workshop
PDF
プログラミング言語の理念いろいろ
PPTX
Raspberry Piで 初心者が 半日でできる電子工作 を考えてみた
PPT
Raspberry-Pi
ゲーミングプラットホームのLutris
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい
Raspberry Pi Zero
USBを保護するUSBGuard
Introduction to c#
BAD USB 2.0
BadUSB, and what you should do about it
ビル・ゲイツ「学校では教えてくれない人生に役立つ11のルール」
AKIBAX2010 新ブーム「電子工作」を体験しよう!
How I Learned To Stop Worrying (And Love The KiCad)
これからの音楽はハイレゾだ!
Iphoneで良い音楽を聞く方法
Why (and how) to switch to KiCad
Designing with KiCAD of 64-bit ARM board
DerbyCon 2014 - Making BadUSB Work For You
Picademy 5 Picamera Intro Workshop
プログラミング言語の理念いろいろ
Raspberry Piで 初心者が 半日でできる電子工作 を考えてみた
Raspberry-Pi
Ad

Similar to Raspberry PiのUSB OTGを試す (6)

ODP
20150919 raspistable (bis)
PDF
簡単に楽しく始めよう!Raspberry Pi入門
PPTX
Raspberry pi は raspbian だけのものじゃない
PDF
Raspberry pi最新情報アップデート&いろいろ比較
PDF
Getting started raspberry pi osc hamamatsu
PDF
さわってみよう Couchbase Lite
20150919 raspistable (bis)
簡単に楽しく始めよう!Raspberry Pi入門
Raspberry pi は raspbian だけのものじゃない
Raspberry pi最新情報アップデート&いろいろ比較
Getting started raspberry pi osc hamamatsu
さわってみよう Couchbase Lite

More from Kenichiro MATOHARA (20)

PDF
PQI Air Pen Hack
PDF
Let’s Encrypt更新話
PDF
Raspberry piのsdl等に対応したreal vncを試してみた
PDF
ちょっと古いマシンにLinuxを
PDF
鹿児島Linux勉強会2016.04
PDF
Raspberry Piにdiskless modeのalpine linuxを導入してみる
PDF
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
PDF
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
PDF
OSC15OT 配布ペーパー
PDF
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
PDF
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
PDF
鹿児島らぐC87配布ペーパー
PDF
鹿児島に引っ越しました
PDF
鹿児島のOSM状況
PDF
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
ODP
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
PDF
Kof2014 kgo lug
PDF
寿司blogが書けなくて嵌った話(MySQL/絵文字対応)
PDF
ownCloud + andoroid + picasa + flickr連携
PDF
鹿児島らぐはじめました
PQI Air Pen Hack
Let’s Encrypt更新話
Raspberry piのsdl等に対応したreal vncを試してみた
ちょっと古いマシンにLinuxを
鹿児島Linux勉強会2016.04
Raspberry Piにdiskless modeのalpine linuxを導入してみる
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
OSC15OT 配布ペーパー
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
鹿児島らぐC87配布ペーパー
鹿児島に引っ越しました
鹿児島のOSM状況
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Kof2014 kgo lug
寿司blogが書けなくて嵌った話(MySQL/絵文字対応)
ownCloud + andoroid + picasa + flickr連携
鹿児島らぐはじめました

Raspberry PiのUSB OTGを試す