弊社USBアダプタをLinuxで使うには(2024版)
-
はじめに
近年、RaspberryPiなど小型のシングルボードコンピュータが普及し、Linux環境でロボットを動作させる機会が増えてきました。弊社ロボット(RCB-4)もUSBアダプタのドライバをLinux上にインストールすることでロボットと通信することができるようになります。
過去に公開した記事『弊社USBアダプタをLinuxで使うには(2019版)』を更新しました。
※Linuxのバージョン、種類によって動作が異なる場合がありますが、弊社ではLinuxでの動作保証をしておりません。また、プログラムなどのご質問に関しましては回答致しかねます。この記事の内容は参考にお読みください。
-
確認時の動作環境
Raspberry Pi 5 Model B
Raspberry Pi 4 Model B
Raspberry Pi 3 Model B
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 9.4 (stretch)
Release: 9.4
Codename: stretch
FTDIのカーネル自体は、Raspbianに含まれていましたので割愛はしますが、下記ページをご覧ください。
-
認識方法
①RaspberryPi本体のUSBポートにUSBアダプタを挿す
②dmesgでデバイスの情報を取得する
下記はDUAL USB Adapter HSを挿入したときに表示されるメッセージ例になります。
1 2 3 4 5 6 |
usb 1-1.2: new full-speed USB device number 5 using dwc_otg usb 1-1.2: New USB device found, idVendor=165c, idProduct=0008 usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 1-1.2: Product: DUAL USB ADAPTER HS usb 1-1.2: Manufacturer: Kondo Kagaku usb 1-1.2: SerialNumber: KOUSBCNV |
USBアダプタが認識されると、
/dev/ttyUSB*
で認識されますが今回はメッセージが表示されていないので、認識はされていません。
③FTDIのカーネルと弊社USBアダプタを関連付ける
以下の通り入力します。
※「pppp」はプロダクトIDの仮置きです。製品によってプロダクトIDが異なりますので、下記の解説を参考に該当する製品のプロダクトIDを記入してください。
1 2 3 4 |
$ sudo su modprobe ftdi-sio echo 165C pppp > /sys/bus/usb-serial/drivers/ftdi_sio/new_id exit |
1 2 3 |
$ sudo su ... exit |
書き込むにはroot権限(スーパーユーザー権限)で変更する必要があります。
root権限がない場合は最初にsudo suを実行し、最後にexitで終了します。
1 |
modprobe ftdi-sio |
modprobeを使用してFTDIのカーネルftdi-sioをロード(取り込み)します。
1 |
echo 165C pppp > /sys/bus/usb-serial/drivers/ftdi_sio/new_id |
/sys/bus/usb-serial/drivers/ftdi_sio/new_idにベンダIDとプロダクトIDを書き込むことでFTDIのカーネルと関連付けるようになります。
pppp:プロダクトID
DUAL USB Adapter HSを認識させる場合は「echo 165C 0008...」となります
弊社製品のベンダID、プロダクトIDは下記の通りです。
ベンダID | プロダクトID | デバイス名 | 製品名 |
165C |
0006 |
ICS USB ADAPTER HS | ICS USB アダプターHS |
165C | 0008 | Dual USB ADAPTER HS | Dual USB アダプター HS |
165C | 0009 | RS485 USB/SERIAL CONVERTER | RS485 USB/シリアル変換アダプター |
165C | 000A | RS485 USB ADAPTER HS | RS485 USBアダプターHS |
こちらの他にもラジコン向け製品などのIDもあります。詳しくはKO Driver付属の『InstallManual』をご参照ください。
④dmesgでデバイスが認識されているか確認する
うまく認識された場合、「dmesg」でメッセージを表示させると下記のように表示されます。
1 |
usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 |
ttyUSB0で認識されるようになりました。
※ご利用の環境により「ttyUSB0」ではない場合があります。表示内容、各リビジョンの仕様などはご自身でご確認ください。
RaspberryPiではFTDIのカーネルがインストールされていました。他のLinuxマシンではUSBのカーネルが入っていない場合があります。
下記FTDIのホームページからカーネル(ドライバ)をダウンロードしてください。
https://www.ftdichip.com/Drivers/D2XX.htm
Linuxのドライバがあるので、CPUに対応したカーネルをインストールしてください。
関連記事
RCB-4 Library for Python ver.1.0.0B
RCB-4 Library Arduino版(V1.1)とPython版(V1.0.0B)の違いについて
RS-485 USBアダプターHSの詳細をみる KHR-3HV Ver.3.1 リフェバッテリー付きセットの詳細をみる RS485USB/シリアル変換アダプターの詳細をみる Dual USBアダプターHSの詳細をみる KHR-3HV Ver.3 リフェバッテリー付きセットの詳細をみる の詳細をみる KXR-L2 ヒューマノイド型 Ver.2の詳細をみる KXR アドバンスセットA Ver.2の詳細をみる KXR-A5 アーム型 Ver.2の詳細をみる KXR-L4T-R カメ型・ローバー型 Ver.2(アカデミックパック)の詳細をみる の詳細をみる KXR アドバンスセットB Ver.2の詳細をみる KXR アドバンスセットBの詳細をみる KXR-L2 ヒューマノイド型の詳細をみる KMR-M6 Ver.3 リフェバッテリー付きセットの詳細をみる