From: Michael J. <mgj...@gm...> - 2024-11-07 16:51:55
|
Hello, I'm working on installing the gpib kernel drivers to the Petalinux platform. So far, I've managed to get the headers and get the gpib drivers compiled + installed. The modules show up with modprobe, and when I plug my gpib dongle in the driver loads properly and it seems to recognize it. Below is the message I get when plugging in the dongle: [19163.768240] usb 1-1.4: new high-speed USB device number 11 using xhci-hcd [19164.020393] usb 1-1.4: config 1 interface 0 altsetting 0 endpoint 0x81 has an invalid bInterval 0, changing to 7 [19164.030876] usb 1-1.4: New USB device found, idVendor=3923, idProduct=709b, bcdDevice= 1.01 [19164.039247] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [19164.046560] usb 1-1.4: Product: GPIB-USB-HS [19164.050739] usb 1-1.4: Manufacturer: National Instruments [19164.056138] usb 1-1.4: SerialNumber: 01D9F4A4 Here is where the issue comes up. When ibopen goes to set things up with the dongle, the /dev/gpib0 doesn't seem to be properly configured. I get this message when I run the ibtest utility: [84391.688217] gpib debug: pid 0, gpib: opening minor 0 [84391.696029] gpib debug: pid 0, gpib: request module returned 256 [84391.702071] gpib debug: pid 0, minor 0, ioctl 3, interface=, use=0, onl=0, arg=d8a171a0 [84391.710090] gpib: no gpib board configured on /dev/gpib0 [84391.715398] gpib debug: pid 0, minor 0, ioctl 3, interface=, use=0, onl=0 [84391.722212] gpib debug: pid 0, minor 0, ioctl 5, interface=, use=0, onl=0, arg=d8a17120 [84391.730218] gpib: no gpib board configured on /dev/gpib0 [84391.735527] gpib debug: pid 0, minor 0, ioctl 5, interface=, use=0, onl=0 [84391.742357] gpib debug: pid 0, minor 0, ioctl 5, interface=, use=0, onl=0, arg=d8a17180 [84391.750363] gpib: no gpib board configured on /dev/gpib0 [84391.755673] gpib debug: pid 0, minor 0, ioctl 5, interface=, use=0, onl=0 [84391.762675] audit: type=1701 audit(1730996390.861:20): auid=0 uid=0 gid=0 ses=2 pid=10840 comm="ibtest" exe="/usr/local/bin/ibtest" sig=6 res=1 [84391.764574] gpib debug: pid 0, gpib: closing minor 0 I've been debugging this for a week or so now. I'm fairly confident that the probing of the dongle works. In fact, when I find the dongle in the sys path, I see that the module driver is in that path of the device itself: root@tester0:~# ls -ll /sys/bus/usb/drivers/ni_usb_gpib/1-1.4\:1.0/ total 0 -rw-r--r-- 1 root root 4096 Nov 7 16:25 authorized -r--r--r-- 1 root root 4096 Nov 7 16:25 bAlternateSetting -r--r--r-- 1 root root 4096 Nov 7 16:25 bInterfaceClass -r--r--r-- 1 root root 4096 Nov 7 16:25 bInterfaceNumber -r--r--r-- 1 root root 4096 Nov 7 16:25 bInterfaceProtocol -r--r--r-- 1 root root 4096 Nov 7 16:25 bInterfaceSubClass -r--r--r-- 1 root root 4096 Nov 7 16:25 bNumEndpoints lrwxrwxrwx 1 root root 0 Nov 7 16:25 driver -> ../../../../../../../../../../bus/usb/drivers/ni_usb_gpib drwxr-xr-x 3 root root 0 Nov 7 16:25 ep_02 drwxr-xr-x 3 root root 0 Nov 7 16:25 ep_06 drwxr-xr-x 3 root root 0 Nov 7 16:25 ep_81 drwxr-xr-x 3 root root 0 Nov 7 16:25 ep_84 drwxr-xr-x 3 root root 0 Nov 7 16:25 ep_88 -r--r--r-- 1 root root 4096 Nov 7 16:25 modalias drwxr-xr-x 2 root root 0 Nov 7 16:25 power lrwxrwxrwx 1 root root 0 Nov 7 16:18 subsystem -> ../../../../../../../../../../bus/usb -r--r--r-- 1 root root 4096 Nov 7 16:25 supports_autosuspend -rw-r--r-- 1 root root 4096 Nov 7 16:18 uevent root@tester0:~# grep ^ /sys/bus/usb/drivers/ni_usb_gpib/1-1.4\:1.0/modalias usb:*v3923p709B*d0101dc00dsc00dp00icFFisc00ip00in00 The driver itself tells me that the interface registers properly too (my apologies for the extra debug messages): [85375.091233] ni_usb_gpib driver loading [85375.098301] ni_usb_driver_probe [85375.101436] set bus interface 0 to address 0x00000000bca009b3 [85375.107200] ni_usb_gpib: probe succeeded for path: usb-xhci-hcd.1.auto-1.4 [85375.119145] usbcore: registered new interface driver ni_usb_gpib [85375.128308] gpib: registered ni_usb_b interface However, everywhere I look in the code doesn't indicate to me where the disconnect occurs. I'm fairly certain the issue is that the /dev/gpib* section isn't pointing to the dongle area and that's my problem. I've been trying to create a workaround to this that shows the device working at all, but I'm not having any luck there. So I'm at a loss for where to go next. Any suggestions? RIght now, I'm trying to figure out why I'm getting "interface=". I feel like that's the underlying problem, but I can't confirm it. Just in case, here is some extra information about he system I'm on: Operating System: PetaLinux 2023.2+update-61_04172258- (langdale) Kernel: Linux 6.1.30-xilinx-v2023.2 Architecture: arm64 Thanks, Michael |