장치 노드가 생성되지 않았습니다.

장치 노드가 생성되지 않았습니다.

새 장치(Keysight U2722A)를 연결하려고 하는데 /dev에 표시되지 않습니다. 나는 Ubuntu, Fedora 및 openSuse에서 이것을 시도했지만 동일한 결과를 얻었습니다. 현재 Fedora에서 작업 중입니다. 삽입하면 다음 위치에 나타나는 것을 볼 수 있습니다.

정보:

[58451.072367] usb 3-2.4.2: new high-speed USB device number 11 using xhci_hcd
[58451.287716] usb 3-2.4.2: New USB device found, idVendor=0957, idProduct=4218
[58451.287720] usb 3-2.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[58451.287722] usb 3-2.4.2: Product: Agilent U2722A/U2723A
[58451.287724] usb 3-2.4.2: Manufacturer: Agilent Technologies
[58451.287725] usb 3-2.4.2: SerialNumber: MY57070005

logctl-fe

Oct 05 09:36:47 geronto kernel: usb 3-2.4.4: new high-speed USB device number 10 using xhci_hcd
Oct 05 09:36:48 geronto kernel: usb 3-2.4.4: New USB device found, idVendor=0957, idProduct=4218
Oct 05 09:36:48 geronto kernel: usb 3-2.4.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Oct 05 09:36:48 geronto kernel: usb 3-2.4.4: Product: Agilent U2722A/U2723A
Oct 05 09:36:48 geronto kernel: usb 3-2.4.4: Manufacturer: Agilent Technologies
Oct 05 09:36:48 geronto kernel: usb 3-2.4.4: SerialNumber: MY57230002
Oct 05 09:36:48 geronto mtp-probe[4578]: checking bus 3, device 10: "/sys/devices/pci0000:00/0000:00:07.1/0000:24:00.3/usb3/3-2/3-2.4/3-2.4.4"
Oct 05 09:36:48 geronto mtp-probe[4578]: bus: 3, device: 10 was not an MTP device

그러나 /dev 디렉토리는 변경되지 않습니다. 내 이해는 이것이 usbtmc 장치로 표시되어야 한다는 것입니다. 실제로 Keysight에는 usbtmc 장치에 대한 페이지가 있습니다(여기). 그러나 이 페이지는 오래되었으며 드라이버에 대한 링크가 더 이상 유효하지 않습니다. 내장된 Linux 드라이버가 이제 이 모든 것을 처리할 수 있기 때문이라고 생각합니까? 또한 National Instruments VISA 라이브러리를 사용하여 장치를 찾으려고 시도했지만 작동하지 않았습니다.

장치 노드가 있으면 그것과 통신할 수 있어야 한다고 생각합니다. 이로 인해 udev 규칙을 작성하게 되었습니다. 나는 다음과 같은 규칙을 썼다:

ATTR{idVendor}=="0957", ATTR{serial}=="MY57070005", SYMLINK+="keysight0"
ATTR{idVendor}=="0957", ATTR{serial}=="MY57230002", SYMLINK+="keysight1"
ATTR{idVendor}=="05e6", ATTR{serial}=="4022588", SYMLINK+="keithley"

처음 2개의 규칙은 관심 있는 장치에 적용됩니다. 세 번째는 올바르게 식별된 장치에 대한 것입니다(규칙을 올바르게 작성했는지 확인하기 위한 제어권). 장치를 식별하고 /dev에 장치를 채웁니다. 그러나 이러한 링크는 작동하는 적절한 usbtmc 장치를 가지고 있고 동일한 명령이 usbtmc 장치에서 작동하는 keithley의 경우에도 장치를 제어하지 않는 것 같습니다. 내 생각엔 내 규칙에 뭔가 문제가 있는 것 같아. 다음 장치를 조사할 수 있습니다.

> udevadm info -n /dev/keysight0
P: /devices/pci0000:00/0000:00:07.1/0000:24:00.3/usb3/3-2/3-2.4/3-2.4.2
N: bus/usb/003/011
S: keysight0
E: BUSNUM=003
E: DEVLINKS=/dev/keysight0
E: DEVNAME=/dev/bus/usb/003/011
E: DEVNUM=011
E: DEVPATH=/devices/pci0000:00/0000:00:07.1/0000:24:00.3/usb3/3-2/3-2.4/3-2.4.2
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MODEL=Agilent_U2722A_U2723A
E: ID_MODEL_ENC=Agilent\x20U2722A\x2fU2723A
E: ID_MODEL_ID=4218
E: ID_REVISION=1111
E: ID_SERIAL=Agilent_Technologies_Agilent_U2722A_U2723A_MY57070005
E: ID_SERIAL_SHORT=MY57070005
E: ID_USB_INTERFACES=:000000:
E: ID_VENDOR=Agilent_Technologies
E: ID_VENDOR_ENC=Agilent\x20Technologies
E: ID_VENDOR_FROM_DATABASE=Agilent Technologies, Inc.
E: ID_VENDOR_ID=0957
E: MAJOR=189
E: MINOR=266
E: PRODUCT=957/4218/1111
E: SUBSYSTEM=usb
E: TYPE=0/0/0
E: USEC_INITIALIZED=58451223677

문제는 DEVNAME=/dev/bus/usb/003/011에 있는 것 같습니다. 심볼릭 링크를 사용하여 연결할 수 있나요? usbtmc0과 같은 "올바른 장치 노드"에 연결하지 않는 것이 문제의 원인입니까? keithley에는 usbtmc0 노드가 있지만 규칙은 이를 해당 노드에 연결하는 것이 아니라 심볼릭 링크를 생성할 때 버스 주소에 연결하는 것입니다. 이로 인해 내 규칙에 문제가 있다고 믿게 됩니까?

감사합니다!

답변1

일반적인 엔터테인먼트를 즐기거나 이 장치에 관심이 있는 사람이라면 먼저 Windows 전용 Agilent Memory Manager를 사용하여 장치를 열어야 합니다. 이는 통신 기능을 RAM(참고: ROM이 아님)에 로드합니다. 그러면 usbtmc 장치로 인식되어 올바르게 통신할 수 있습니다. 전원 공급 장치를 분리하면 이 과정을 다시 수행해야 합니다.

관련 정보