誰かがこの問題を解決するのに役立つことを願っています。
Linux環境(openSUSE 15.1を使用している)では、USB経由で分光計デバイス(ThorLabsから提供)を接続しようとしています。しかし、この製造元はWindowsシステムのみをサポートしていますが、パッケージにドライバのソースコードが含まれているので、そのドライバをLinuxでコンパイルしてデバイスを使用できると思います。必要な唯一のものはUSBインタフェースと通信するためのVISAライブラリですが、NI-VISAを介してLinuxで使用できることがわかりました。Linux用NI-VISA)。
これまでLinuxシステムでデバイスドライバのソースコードをコンパイルしていましたが、問題はまだデバイスと対話できないことです。しかし、これは私が今まで知っているものです:
- Linuxでこのコマンドを使用すると、
lsusb
ベンダー(0x1313)と製品ID(0x8080)が表示されますが、シリアル番号は表示されません。また、製品IDは私が期待したものとは異なり、0x8081です。
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04f2:b685 Chicony Electronics Co., Ltd
Bus 001 Device 002: ID 06cb:00a8 Synaptics, Inc.
Bus 001 Device 004: ID 8087:0029 Intel Corp.
Bus 001 Device 005: ID 1313:8080 ThorLabs
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
usb-devices
私のデバイスに追加のドライバがないことがわかりました。しかし、コンパイルされたドライバライブラリを使用してこれを行う方法がわかりません。
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1
P: Vendor=1313 ProdID=8080 Rev=00.00
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
libvisa.so バックエンドのすべてのインタフェースを一覧表示するには、pyvisa Python パッケージを使用します。クエリを通過した後も私のデバイスは返されません
?*
。このページ(https://zone.ni.com/reference/en-XX/help/370131S-01/ni-visa/configuringni-visarecognizerawusbdevice/)はRAWデバイス用にNI-VISAを設定する方法を説明します(実際にはデバイスの場合です)。カーネルサポートが必要だと言います。USBFS。しかし、少し読んだ後、この機能は廃止され、最新のディストリビューションでは廃止されています。とにかく、実際にデバイスをマウントしようとしましたが、/devにエントリが見つからないか、少なくとも私が認識したエントリが見つかりませんでした。
私はLinuxシステムについてかなりよく知っていましたが、複雑なハードウェア構成を深く掘り下げたことはありませんでした。この時点で私はアイデアが不足していました。この問題をデバッグするには、何を探す必要がありますか?上記の2番目のポイントには接続ドライバが表示されないため、このデバイスを処理するためにコンパイルされたドライバを何らかの方法で定義できますか?どんなヒント/アドバイスでもいただければ幸いです!
編集:質問の背景を明確にしました。 NI-VISAリファレンスが追加されました。
答え1
私はこれが愚かな質問であることを知っていますが、時には質問を受ける必要があるかもしれません。モジュールがツリーの外でコンパイルされたと仮定し、モジュールをインストールしてロードしたことを確認しましたか(modprobeなど)。