I am getting errors when using the NI_USB_HS device that I do not get when using the Agilent 82357b USB device & driver.
Attached is a simple program to query and read a GPIB device for the ID string 100 times.
This program runs without failure every time using the Agilent 82357b device, however; using the NI USB-HS device I frequently (say one in 30 times) get failures with the log showing kernel errors:
Feb 06 12:14:37 dirac kernel: usb 1-1.1: USB disconnect, device number 30
Feb 06 12:14:39 dirac kernel: usb 1-1.1: new high-speed USB device number 31 using xhci_hcd
Feb 06 12:14:39 dirac kernel: usb 1-1.1: New USB device found, idVendor=3923, idProduct=709b, bcdDevice= 1.01
Feb 06 12:14:39 dirac kernel: usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb 06 12:14:39 dirac kernel: usb 1-1.1: Product: GPIB-USB-HS
Feb 06 12:14:39 dirac kernel: usb 1-1.1: Manufacturer: National Instruments
Feb 06 12:14:39 dirac kernel: usb 1-1.1: SerialNumber: 0159084A
Feb 06 12:14:39 dirac kernel: ni_usb_gpib: probe succeeded for path: usb-0000:01:00.0-1.1
Feb 06 12:14:39 dirac kernel: gpib1: exiting autospoll thread
Feb 06 12:14:39 dirac kernel: ni_usb_gpib: attach
Feb 06 12:14:39 dirac kernel: usb 1-1.1: bus 1 dev num 31 attached to gpib minor 1, NI usb interface 0
Feb 06 12:14:39 dirac kernel: product id=0x709b
Feb 06 12:14:39 dirac kernel: ni_usb_hs_wait_for_ready: board serial number is 0x159084a
Feb 06 12:14:51 dirac kernel: /var/lib/dkms/linux-gpib/4.3.5-9.20221109svn2046.fc37/build/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_parse_register_read_block: parse error: wrong start id
Feb 06 12:14:51 dirac kernel: /var/lib/dkms/linux-gpib/4.3.5-9.20221109svn2046.fc37/build/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_parse_register_read_block: parse error: wrong end id
Feb 06 12:14:51 dirac kernel: /var/lib/dkms/linux-gpib/4.3.5-9.20221109svn2046.fc37/build/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_parse_register_read_block: parse error: wrong count=0 for NIUSB_REGISTER_READ_DATA_END
Feb 06 12:14:51 dirac kernel: /var/lib/dkms/linux-gpib/4.3.5-9.20221109svn2046.fc37/build/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_parse_register_read_block: unexpected data: raw_data[6]=0xff, expected 0
Feb 06 12:14:51 dirac kernel: /var/lib/dkms/linux-gpib/4.3.5-9.20221109svn2046.fc37/build/drivers/gpib/ni_usb/ni_usb_gpib.c: ni_usb_parse_register_read_block: unexpected data: raw_data[7]=0xff, expected 0
Feb 06 12:14:51 dirac kernel: ni_usb_dump_raw_block:
Feb 06 12:14:51 dirac kernel:
Feb 06 12:14:51 dirac kernel: 1
Feb 06 12:14:51 dirac kernel: 0
Feb 06 12:14:51 dirac kernel: 78
Feb 06 12:14:51 dirac kernel: 0
Feb 06 12:14:51 dirac kernel: 0
Feb 06 12:14:51 dirac kernel: 0
Feb 06 12:14:51 dirac kernel: ff
Feb 06 12:14:51 dirac kernel: ff
Feb 06 12:14:51 dirac kernel:
I presume it might be a hardware fault (I have only one NI device to test) but it may also be a driver bug. This is using the SVN 2046 pull (very recent).