Submit Search
Raspberry PiのUSB OTGを試す
•
11 likes
•
14,830 views
Kenichiro MATOHARA
Follow
"鹿児島Linux勉強会 2017.01 - connpass" https://kagolug.connpass.com/event/47774/
Read less
Read more
1 of 22
Download now
Downloaded 33 times
More Related Content
Raspberry PiのUSB OTGを試す
1.
Raspberry PiのUSB OTGを試す KenichiroMATOHARA(@matoken) http://matoken.org 鹿児島Linux勉強会2017.01(20170104) サンエールかごしま 中研修室1 @matoken 1
2.
自転車 @matoken 2
3.
Raspberry PiのUSB OTGを試す @matoken 3
4.
Raspberry Pi 英国製のちっこいコンピュータ 幾つか種類がある 今回のOTGが利用できるのはA/A+/ZeroでBシリーズでは利用でき ない A/A+はUSB AAになるのでケーブルの入手性が悪い ZeroはmicroUSB @matoken 4
5.
@matoken 5
6.
Raspberry Pi ZERO @matoken 6
7.
USB OTG USB OnTheGo USB ホストとしてもデバイスとしても利用できる AndroidをPCに繋ぐとMTPデバイスとして見えるけど,Androidに USBキーボードを繋ぐとUSBホストとして動作して利用できるなど Raspberry Piでもこれが利用できる 似たものでBBBや96board等動作するものは多い 利用内容にもよるけどmicroUSBケーブル1本だけ(電源兼通信)で 利用出来るので便利 @matoken 7
8.
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
9.
USB OTGを利用するためのRaspberry Pi(Raspbian)での前準備 パスワードを規定値から変更 $ passwd OSを最新にする $ sudo apt update && sudo apt upgrade y firmwareを最新にする sudo rpiupdate dwc2 USB driverが利用できるように /boot/config.txt を編集 $ echo "# USB OTG dtoverlay=dwc2" | sudo tee a /boot/config.txt 再起動 @matoken 9
10.
シリアルを使ってみる(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 highspeed [ 333.093343] dwc2 20980000.usb: new device is highspeed [ 333.161825] dwc2 20980000.usb: new address 26 [ 335.546058] g_serial gadget: highspeed config #2: CDC ACM /dev/ttyGS0 が生えてくる $ ls ltr /dev/tty*| tail 2 crwrw 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
11.
シリアルを使ってみる(PC認識) PC側での認識例(/dev/ttyACM0として認識) [137739.592791] usb 41.2: new highspeed USB device number [137739.701258] usb 41.2: New USB device found, idVendor= [137739.701264] usb 41.2: New USB device strings: Mfr=1, Prod [137739.701268] usb 41.2: Product: Gadget Serial v2.4 [137739.701271] usb 41.2: Manufacturer: Linux 4.4.34+ with [137739.701419] usb 41.2: Device is not authorized for usage [137742.073829] cdc_acm 41.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
12.
シリアルを使ってみる(叩いてみる) Raspberry Pi側で待ち受け $ cat /dev/ttyGS0 PC側からメッセージを送ってみる $ echo "hello pi." > /dev/ttyACM0 Raspberry Pi側にメッセージが hello pi. @matoken 12
13.
シリアルモジュールのアンロード $ sudo modprobe r g_serial $ lsmod | grep g_serial @matoken 13
14.
シリアルモジュールの自動読み込み設定 kernelパラメータに書く方法 /boot/cmdline.txt を開いて rootwait の後ろに modules load=dwc2,g_serial を追記する /etc/modulesに書く方法 $ echo "g_serial" | sudo tee a /etc/modules どちらかの手順でOK 再起動で反映 @matoken 14
15.
シリアルをgettyに繋いでみる $ sudo systemctl enable serialgetty@ttyGS0.service これでホストから繋ぐとコンソールが利用できる $ cu l /dev/ttyACM0 s 115200 Connected. Raspbian GNU/Linux 8 pizero ttyGS0 pizero login: ※モジュールがロードされるのが遅いのでGPIOのシリアルと違いブート メッセージを見ることは出来ない(と思う) @matoken 15
16.
利用例 シリアルコンソールでホストから繋いでメンテナンス(GPIOより配線 が少ない) GPSモジュールの結果を出力してUSB GPSに bcm2708rngを利用して乱数生成器に : @matoken 16
17.
イーサネットを使ってみる g_ether を読み込むと /dev/usb0 が生えてくる あとは普通のネットワークカードとして設定すればOK HOST PCで「他のコンピューターへ共有」と設定すると便利 @matoken 17
18.
シリアルとイーサネットを同時に利用する g_cdc を読み込むとシリアルとイーサネットが同時に利用できる /dev/ttyGS0 と /dev/usb0 が生えてくる 日常使いに便利 @matoken 18
19.
マスストレージを利用する 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
20.
イーサネット&マスストレージ&シリアルを同時 に利用する g_multi を読み込むと同時に利用できる @matoken 20
21.
キーボード,マウス,ジョイスティック 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 rwrr 1 root root 10928 11月 26 01:35 /lib/modules/4.4.34+ 残りの他のも含め宿題に……. @matoken 21
22.
powered by Marp Markdown Presentation Writer Licence : CC BYNCSA 4.0 @matoken 22
Download