Linux下无法与USB设备通信

Linux下无法与USB设备通信

我希望有人能帮助我解决这个问题。

我正在尝试在 Linux 环境中通过 USB 接口连接光谱仪设备(ThorLabs 供应商)(我使用的是 openSUSE 15.1)。不过,该制造商仅支持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)
  • 使用 pyvisa python 包列出 libvisa.so 后端的所有接口。即使传递查询,这也没有返回我的设备?*

  • 这一页 (https://zone.ni.com/reference/en-XX/help/370131S-01/ni-visa/configuringni-visarecognizerawusbdevice/)解释了如何为RAW设备配置NI-VISA(我的设备实际上就是这种情况)。它提到它需要内核支持USBFS。但是,阅读了一些资料后,我发现此功能似乎已经过时,在现代发行版中不再使用。实际上,我还是尝试挂载该设备,但在 /dev 中找不到任何条目,或者至少没有我能识别的条目。

尽管我对 Linux 系统相当熟悉,但我从未深入研究过复杂的硬件配置。此时我已经没有主意了。我还应该寻找什么来调试这个问题?我可以以某种方式定义我编译的驱动程序来处理该设备,因为在上面的第二点中显示没有驱动程序连接到它?任何提示/建议将不胜感激!

编辑:澄清问题的背景。添加了 NI-VISA 参考。

答案1

我知道这是一个愚蠢的问题,但有时需要问他们。假设该模块是从树外编译的,您是否安装了它并确保它已加载(modprobe 等)?

相关内容