I have noticed from the readme and the following thread that the GPIB-HS-USB driver for Linux does not support kernels beyond 2.6.24. Hence, this means that the latest scientific linux releases (6.x) are not supported. Given that 2.6.24 was released in 2008 and most linux distributions are using more recent kernels, does this mean that linux support for GPIB-HS-USB driver is now obselete or are there plans to continue support for this?
From some further digging, I see the usb support is disable in /usr/local/natinst/nikal/src/nikal/nikal.c by the following statement for kernels newer than 2.6.24:
#define nNIKAL180_mUSBSupportedVersion (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25))
#define nNIKAL100_mUSBIsSupported (nNIKAL180_mUSBSupportedVersion && (defined(CONFIG_USB) || defined(CONFIG_USB_MODULE)))
If I modify this for my kernel (3.2.0) then I get a couple trivial compile errors that are easy enough to fix. After fixing these errors, the driver builds but per the above thread cannot be loaded due to the module license in /usr/local/natinst/nikal/src/nikal/nikal.c:
MODULE_LICENSE("Copyright (c) 2002-2013 National Instruments Corporation. All Rights Reserved. Any and all use of the copyrighted materials is subject to the then current terms and conditions of the applicable license agreement, which can be found at <http://www.ni.com/linux/>.");
If NI could change the license to "GPL v2", then may be it could work. Given that this is a kernel abstraction layer (KAL) is there any reason why NI could not change the license?
As it stands now no one can use the NI GPIB USB drivers on newer kernels.
Changing NI-KAL license to GPL is not possible at the moment. Our main driver is not GPL. Sorry.. We can still support this in the future by leveraging libusb, which is the sanctioned way in Linux to do closed-source USB.. I don't know what the priority is to do this in GPIB group.. My guess is that this work is non-trivial and lower priority compared to other projects they're doing currently.
The GPIB group is aware of the issue and are planning to address it soon. The changes to the Linux kernel in this timeframe require a significant update to our driver, and unfortunately that project is not at the top of the list at this point.
Thank you for the feedback
Thanks for the update. Do you have any more idea of when this could occur? Just wondering if this is months, 6 months, etc.
It's 6 months plus. I'd like to give you a more specific guess, but at that far out there are too many things that could change. I hope you understand.
looks like the hint from Trevor-B to ni488.2 V3.2 was removed from the forums. Anyway I tried it in Centos 6.6 (kernel 2.6.32) with the same nikal hack I successfully used with V2.9.1 to make USB working. Unfortunately, my HS-USB adapter was not detected. So something internally must have been changed so USB devices no longer work.
I am also using a GPIB-HS-USB adapter from NI under Linux. I have tried the linux-gpib free driver and it is detected fine. If your code is pure 488.2, then you should be able to link it against linux-gpib instead of NI-488.2 easily. Of course, it is a problem if your code uses VISA (I haven't tried OpenVISA).
Many USB devices, such as oscilloscopes, etc., can also easilly be addressed directly with usbtmc.
In my mind, the most vital support from NI is DAQmx. I am glad that DAQmxBase for Linux was updated recently and I hope DAQmx will also remain fully supported in the future. Support for USB DAQmx boards would be a real plus.
unfortunately, I need to use LabVIEW in a compatible way with the Windows version, at least until all our measurement systems have been migrated to use Linux 🙂