Linux에서는 USB 장치와 통신할 수 없습니다.

Linux에서는 USB 장치와 통신할 수 없습니다.

누군가가 이 문제를 해결하는 데 도움을 줄 수 있기를 바랍니다.

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 시스템에 대해 꽤 잘 알고 있었지만 복잡한 하드웨어 구성을 깊이 파고든 적은 없었습니다. 이 시점에서 나는 아이디어가 부족했습니다. 이 문제를 디버깅하려면 무엇을 더 찾아야 합니까? 위의 두 번째 지점에는 연결된 드라이버가 표시되지 않으므로 이 장치를 처리하기 위해 컴파일된 드라이버를 어떻게든 정의할 수 있습니까? 어떤 팁/조언이라도 주시면 감사하겠습니다!

편집: 질문의 배경을 명확히 했습니다. NI-VISA 참조가 추가되었습니다.

답변1

나는 이것이 어리석은 질문이라는 것을 알고 있지만 때로는 질문을 받아야 할 때도 있습니다. 모듈이 트리 외부에서 컴파일되었다고 가정하고 모듈을 설치하고 로드되었는지 확인했습니까(modprobe 등)?

관련 정보