WinDriver Linux ARM 版インストール&テストレポート

WinDriver Linux ARM 版

WinDriver v14.00 より、Linux ARM 版が追加されました。PCI デバイスや USB デバイスをターゲットとすることができますが、動作要件を満たすホスト (マザーボードとプロセッサー) 環境を用意する必要があります。

Raspberry Pi をベース (ホスト) にする場合、今のところ USB デバイスがターゲットです。例えば、オリジナルデバイスを作成して IoT エッジ機器に接続しその制御アプリケーションの開発が必要な場合などに有効かと思われます。本稿では、安価で入手しやすい Raspberry Pi 4 で Rasbian (Debian ベースの Linux OS) を動かし、そこへ WinDriver 開発ツールキット (ドライバーアプリ開発向けライブラリーとランタイムライブラリー、サンプルアプリ) をインストールし、テストターゲットとして用意した USB カメラからデータをリードするところまでをレポートさせていただきます。

テスト環境

ARM ボード : Raspberry Pi 4 Model B 4GB RAM

OS : Rasbian Buster 10

USB デバイス : Logicool USB cam

WinDriver 開発ツールキット v14.21

WinDriver ツールキットのインストール

準備

Linux ヘッダー ファイルをインストールしておく。

Jungo サイトより、WinDriver 開発ツールキットのインストール用パッケージをダウンロードし、解凍展開しておく。

ターゲットの USB デバイスの Vendor ID (VID) / Product ID (PID) を把握しておく。(作成者であれば、おそらくその仕様は知っているはず。市販品であれば、一旦 Windows 機に接続し検出させ、その VID/PID を確認しておく) 今回のターゲットは、下記の通り。

Logitec USB HD CAM
VID 0x046d
PID 0x08ca

== 環境へカーネルドライバー windrvr1421 をインストールする ==

pi@raspberrypi:~/Downloads/WinDriver/redist $ sudo ./wd_arm_install.sh
Welcome to WinDriver 14.21 by Jungo Connectivity Ltd.
—————————————————–

NOTE: WinDriver was tested on the following platforms, you are welcome to
try installing any of the following WinDriver versions on other platforms. We can’t guarantee it
will work out-of-the-box, but you are welcome to contact the Jungo support team
for further support, and for adding full support for your platform.

If your kernel sources are not located in the default location, please specify their location as an argument to this script.

0) Try installing versions sequentially until success
1) ARM Cortex A7 – Broadcom: Raspberry PI 2 – running Raspbian Stretch with kernel version 4.14.79-v7+ (NOTE: this 32 bit version was also tested and worked on Raspberry PI 3b+) (USB only)
2) ARM Cortex A9 – Solid Run: I.MX6 MicroSoM i2 (Hummingboard2) running Armbian’s Ubuntu XenialDesktop Kernel Version 4.11.6-cubox
3) ARM Cortex A9 – Boundary: BL-SL-I.MX6 (formerly Sabre LITE) running Debian nitrogen kernel version 4.9.88-6-boundary-14s
4) ARM Cortex A15 NVidia: Jetson TK1 running Ubuntu 16.04 kernel version 3.10.40-g8c4516e
99) Quit

Please pick a platform:
1

you chose to install WinDriver for Raspberry PI
modprobe: FATAL: Module windrvr1421 not found.
make -f makefile.usb.kbuild clean
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
rm -rf core .*.cmd Module.symvers modules.order .tmp_versions .*o.d LINUX.4.19.97-v7l+.ARM
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
make -f makefile.wd.kbuild clean
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
rm -rf core .*.cmd Module.symvers modules.order .tmp_versions .*o.d LINUX.4.19.97-v7l+.ARM
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
checking for cpu architecture… ARM
checking for WinDriver root directory… /home/pi/Downloads/WinDriver
checking for linux kernel source… found at /lib/modules/4.19.118-v7l+/build
checking which directories to include… -I/lib/modules/4.19.118-v7l+/build/include
checking for modules installation directory… /lib/modules/4.19.118-v7l+/kernel/drivers/misc
checking output directory… LINUX.4.19.118-v7l+.ARM
configure.usb: creating ./config.status
config.status: creating makefile.usb.kbuild
checking for cpu architecture… ARM
checking for WinDriver root directory… /home/pi/Downloads/WinDriver
checking for linux kernel source… found at /lib/modules/4.19.118-v7l+/build
checking for lib directory… ln -sf $(ROOT_DIR)/lib/$(SHARED_OBJECT).so /usr/lib/$(SHARED_OBJECT).so
checking which directories to include… -I/lib/modules/4.19.118-v7l+/build/include
checking for modules installation directory… /lib/modules/4.19.118-v7l+/kernel/drivers/misc
checking output directory… LINUX.4.19.118-v7l+.ARM
checking for regparm kernel option… find: ‘/home/pi/Downloads/WinDriver/redist/.tmp_driver/.tmp_versions’: No such file or directory
0
configure.wd: creating ./config.status
config.status: creating makefile.wd.kbuild
make -f makefile.usb.kbuild
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
ln -sf makefile.usb.kbuild Makefile
make -C /lib/modules/4.19.118-v7l+/build M=pwd modules
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ に入ります
CC [M] /home/pi/Downloads/WinDriver/redist/wdusb_linux.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.mod.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.ko
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ から出ます
mv -f *.ko *.o *.mod.c LINUX.4.19.118-v7l+.ARM/
rm Makefile
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
make -f makefile.wd.kbuild
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
ln -sf makefile.wd.kbuild Makefile
make -C /lib/modules/4.19.118-v7l+/build M=pwd modules
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ に入ります
CC [M] /home/pi/Downloads/WinDriver/redist/linux_wrappers.o
SHIPPED /home/pi/Downloads/WinDriver/redist/windrvr_gcc_v3.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/pi/Downloads/WinDriver/redist/windrvr1421.mod.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.ko
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ から出ます
mv -f *.ko *.o *.mod.c LINUX.4.19.118-v7l+.ARM/
rm Makefile
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
make -f makefile.usb.kbuild
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
ln -sf makefile.usb.kbuild Makefile
make -C /lib/modules/4.19.118-v7l+/build M=pwd modules
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ に入ります
CC [M] /home/pi/Downloads/WinDriver/redist/wdusb_linux.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.mod.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421_usb.ko
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ から出ます
mv -f *.ko *.o *.mod.c LINUX.4.19.118-v7l+.ARM/
rm Makefile
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
make -f makefile.wd.kbuild
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
ln -sf makefile.wd.kbuild Makefile
make -C /lib/modules/4.19.118-v7l+/build M=pwd modules
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ に入ります
CC [M] /home/pi/Downloads/WinDriver/redist/linux_wrappers.o
SHIPPED /home/pi/Downloads/WinDriver/redist/windrvr_gcc_v3.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/pi/Downloads/WinDriver/redist/windrvr1421.mod.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.ko
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ から出ます
mv -f *.ko *.o *.mod.c LINUX.4.19.118-v7l+.ARM/
rm Makefile
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
make -f makefile.wd.kbuild install
make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ に入ります
ln -sf makefile.wd.kbuild Makefile
make -C /lib/modules/4.19.118-v7l+/build M=pwd modules
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ に入ります
CC [M] /home/pi/Downloads/WinDriver/redist/linux_wrappers.o
SHIPPED /home/pi/Downloads/WinDriver/redist/windrvr_gcc_v3.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/pi/Downloads/WinDriver/redist/windrvr1421.mod.o
LD [M] /home/pi/Downloads/WinDriver/redist/windrvr1421.ko
make[2]: ディレクトリ ‘/usr/src/linux-headers-4.19.118-v7l+’ から出ます
mv -f *.ko *.o *.mod.c LINUX.4.19.118-v7l+.ARM/
rm Makefile
ln -sf /home/pi/Downloads/WinDriver/lib/libwdapi1421.so /usr/lib/libwdapi1421.so
./setup_inst_dir /home/pi/Downloads/WinDriver /lib/modules/4.19.118-v7l+/kernel/drivers/misc LINUX.4.19.118-v7l+.ARM/windrvr1421.ko no “change the permissions of /dev/windrvr1421”

Installing the WinDriver kernel module(s)
—————————————–
WinDriver’s kernel modules (windrvr1421.ko and windrvr1421_usb.ko
)
can be reloaded upon every boot.
The kernel module will be loaded after running the wdreg script upon boot
in the following manner:
<path to the wdreg script>/wdreg windrvr1421 auto
Alternatively you can manually load the kernel module as explained
in WinDriver’s User’s Manual.
It is recommended to add this call in your rc.local file.
NOTE: Due to security reasons, by default, /dev/windrvr1421 is created with
permissions only for the root user. To enable other user access,
change the permissions of /dev/windrvr1421

make[1]: ディレクトリ ‘/home/pi/Downloads/WinDriver/redist’ から出ます
Installation of WinDriver for Raspberry PI succeeded, quitting.
pi@raspberrypi:~/Downloads/WinDriver/redist $

== カーネルドライバー windrvr1421 をインストール、そして標準サンプルの usb_diag を起動する ==

pi@raspberrypi:~/Downloads/WinDriver/redist $ sudo ./wdreg windrvr1421 auto
pi@raspberrypi:~/Downloads/WinDriver/redist $ cd ..
pi@raspberrypi:~/Downloads/WinDriver $ cd samples/usb_diag/LINUX/
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ ./usb_diag
Enter device vendor id (hex) (=0x46d):

Enter device product id (hex) (=0x8ca):

DriverInit: Failed to initialize USB driver. error 0x20000007 (“Internal system error”)
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo ./usb_diag
Enter device vendor id (hex) (=0x46d):
46d
Enter device product id (hex) (=0x8ca):
8ca
Please make sure the device is attached:

Timeout expired for connection with the device.
Check that the device is connected and try again.
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $

== USB カメラが自動認識され既にドライバーが動いてしまっていることを確認 ==

pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 045e:0029 Microsoft Corp. IntelliMouse Optical
Bus 001 Device 003: ID 046d:08ca Logitech, Inc. Mic (Fusion)
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 3: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $

== uvcvideo ドライバーをリムーブし、そして標準サンプルの usb_diag を起動する、そして USB カメラからデータを読み出してみる ==

pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo modprobe -r -v uvcvideo
rmmod uvcvideo
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 045e:0029 Microsoft Corp. IntelliMouse Optical
Bus 001 Device 003: ID 046d:08ca Logitech, Inc. Mic (Fusion)
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 3, If 0, Class=Video, Driver=, 480M
|__ Port 3: Dev 3, If 1, Class=Video, Driver=, 480M
|__ Port 3: Dev 3, If 2, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 3: Dev 3, If 3, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $
pi@raspberrypi:~/Downloads/WinDriver/samples/usb_diag/LINUX $ sudo ./usb_diag
Enter device vendor id (hex) (=0x46d):

Enter device product id (hex) (=0x8ca):

Please make sure the device is attached:

DeviceAttach: Received and accepted attach for vendor id 0x46d, product id 0x8ca, interface 1, device handle 0x0xb6400608

DeviceAttach: Received and accepted attach for vendor id 0x46d, product id 0x8ca, interface 0, device handle 0x0xb6400b00

Main Menu (active Dev/Prod/Interface/Alt. Setting: 0x46d/0x8ca/1/0)
———-
1. Display device configurations
2. Change interface alternate setting
3. Reset Pipe
4. Read/Write from pipes
6. Select device
8. Display device serial number
9. Display device information
10. Refresh
99. Exit
Enter option: 2
Please enter the interface number (dec): 1
Please enter the alternate setting index (dec): 1
DeviceDiagMenu: WDU_SetInterface() completed successfully

Main Menu (active Dev/Prod/Interface/Alt. Setting: 0x46d/0x8ca/1/1)
———-
1. Display device configurations
2. Change interface alternate setting
3. Reset Pipe
4. Read/Write from pipes
6. Select device
8. Display device serial number
9. Display device information
10. Refresh
99. Exit
Enter option: 4
Control pipe:
pipe num. 0x0: packet size 64, type Control, dir In & Out, interval 0 (ms)
Interface 1
Alternate Setting: 1
pipe num. 0x81: packet size 192, type Isochronous, dir In, interval 1 (ms)

Read/Write from/to device’s pipes using Single Blocking Transfers
———————
1. Read from pipe
2. Write to pipe
3. Listen to pipe (continuous read)
4. Measure pipe speed (continuous read)
99. Main menu
Enter option: 3
Please enter the pipe number (hex): 0x81
Press <Enter> to start listening. While listening, press <Enter> to stop

Start listening to pipe
0C 8C BF 99 4C 37 C0 17 A5 6E 45 06 FF D8 FF E0 |
00 21 41 56 49 31 00 01 01 01 00 78 00 78 00 00 |
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |
00 FF DB 00 43 00 0C 08 09 0A 09 07 0C 0A 09 0A |
0D 0C 0C 0E 12 1E 13 12 10 10 12 24 1A 1B 15 1E |
2B 26 2D 2D 2A 26 2A 2F 30 36 45 3A 30 33 41 33 |
29 2A 3C 4E 3C 41 47 49 4D 4E 4D 2E 39 54 5A 54 |
4B 5A 45 4B 4D 4A FF DB 00 43 01 0C 0D 0D 12 0F |
12 23 13 13 23 4A 31 2A 31 4A 4A 4A 4A 4A 4A 4A |
4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A |
4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A |
4A 4A 4A 4A 4A 4A 4A 4A 4A 4A 4A FF C0 00 11 08 |
0C 8C BF 99 4C 37 32 2F A5 6E 45 06 00 F0 01 40 |
03 01 21 00 02 11 01 03 11 01 FF DA 00 0C 03 01 |
00 02 11 03 11 00 3F 00 E6 99 2A 27 51 40 8A EE |
31 55 DF BD 03 21 63 51 93 4C 06 9A 43 48 06 D1 |
40 05 14 00 51 40 05 14 00 51 40 05 14 00 51 40 |
05 14 00 51 40 05 14 00 51 40 05 14 00 51 40 0A |
29 45 00 2D 14 00 1A 07 4A 00 EA 1D 2A 07 5A 04 |
56 94 00 2A 9C A7 93 40 CA EC 69 84 D0 03 4D 21 |
A0 04 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 |
00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 00 |
A2 80 16 80 68 01 D9 A5 14 00 94 A2 80 3A D7 5E |
2A BC 8B D6 81 15 26 1C 1A CE 9B A9 A0 0A ED 4D |
0C 8C BF 99 4C 37 A2 46 A5 6E 45 06 34 0C 69 A4 |
A0 02 8A 00 28 A0 02 8A 00 28 A0 02 8A 00 28 A0 |
02 8A 00 28 A0 02 8A 00 28 A0 02 8A 00 28 A0 02 |
8A 00 29 68 01 45 2D 00 06 81 F5 A0 0E C5 BA 54 |
2E BC 50 22 95 C0 C0 38 AC B9 B3 B8 D0 32 BB 53 |
4D 00 36 92 80 0A 28 00 A2 80 0A 28 00 A2 80 0A |
28 00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 |
00 A2 80 0A 28 00 A5 A0 05 14 B4 00 52 8A 00 EC |
4F 35 1C 9D 28 11 42 E4 60 1A C9 98 FC C6 80 2B |
B5 34 D0 31 B4 50 01 45 00 14 50 01 45 00 14 50 |
01 45 00 14 50 01 45 00 14 50 01 45 00 14 50 01 |
45 00 14 50 01 45 00 14 50 02 8A 70 A0 02 94 50 |
0C 8C BF 99 4C 37 13 5E A5 6E 45 06 07 5E 0D 35 |
CF 14 84 50 B9 FB A6 B1 E5 3F 31 A6 32 03 4D 34 |
00 94 50 01 45 00 14 50 01 45 00 14 50 01 45 00 |
14 50 01 45 00 14 50 01 45 00 14 50 01 45 00 14 |
50 01 45 00 14 50 02 8A 75 00 14 A2 80 3A DE 82 |
A3 73 40 8A 77 3C A9 AC 79 B8 73 40 C8 4D 34 D0 |
02 51 40 05 14 00 51 40 05 14 00 51 40 05 14 00 |
51 40 05 14 00 51 40 05 14 00 51 40 05 14 00 51 |
40 05 14 00 51 40 0A 05 28 A0 05 C5 28 1C 50 07 |
56 C7 15 13 1E 0D 02 2A CD F7 4D 63 CE 7E 73 40 |
10 9A 43 40 C4 A2 80 0A 28 00 A2 80 0A 28 00 A2 |
80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 |
0C 8C BF 99 4C 37 83 75 A5 6E 45 06 0A 28 00 A2 |
80 0A 28 00 A2 80 14 53 A8 00 A7 0A 00 E9 8B 0A |
8E 46 A0 45 3B 89 06 D2 2B 2A 52 0B 13 40 C8 E9 |
0D 00 25 14 00 51 40 05 14 00 51 40 05 14 00 51 |
40 05 14 00 51 40 05 14 00 51 40 05 14 00 51 40 |
05 14 00 51 40 05 2D 00 02 9C 28 01 69 46 31 40 |
1D 06 FA 8A 59 00 14 08 A3 3B F5 AA 2C 79 34 0C |
69 A4 A0 04 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 |
0A 28 00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 0A |
28 00 A2 80 0A 28 00 A2 80 16 9C 28 01 69 C2 80 |
36 0B 8A 82 67 E2 81 14 E5 6C 8A AC 68 18 86 92 |
80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 |
0C 8C BF 99 4C 37 F3 8C A5 6E 46 06 0A 28 00 A2 |
80 0A 28 00 A2 80 0A 28 00 A2 80 0A 28 00 A2 80 |
0A 28 01 45 38 50 02 D3 80 A0 0D 12 DD 6A 09 5A |
81 15 9C E6 A2 34 0C 6D 14 00 51 40 05 14 00 51 |
40 05 14 00 51 40 05 14 00 51 40 05 14 00 51 40 |
05 14 00 51 40 05 14 00 51 40 05 14 00 51 40 0A |
29 C0 50 03 B1 4E 19 A0 0B AC 4E 2A BC 94 08 81 |
    :

    :

Stop listening to pipe

Read/Write from/to device’s pipes using Single Blocking Transfers
———————
1. Read from pipe
2. Write to pipe
3. Listen to pipe (continuous read)
4. Measure pipe speed (continuous read)
99. Main menu
Enter option:

Rasbian では、接続された USB カメラデバイスを自動認識するようなので、この標準ドライバ uvcvideo をリムーブしておけば、WinDriver を通してデバイスを制御可能です。あとは、このサンプル usb_diag を改造ベースにしてアプリケーションを作成していただければと存じます。

Jungo 社製品 WinDriver の詳細は今すぐこちらからチェック!