Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

NI-VISA and linux-gpib - requirements (technical and legalese)

This has come up now a few times already - NI does not support the GPIB-USB-HS device for linux kernels later than 2.6.24 because of the GPL interface requirement. In this forum here, the open source linux-gpib project has been pointed out even by NI employees as a possible alternative.

However, the one thing we cannot get with linux-gpib is VISA support. This blocks all software running on top of the VISA stack, including e.g. LabVIEW.

So, I'd like to start this thread to clarify the following questions:

  • Would NI be interested to officially cooperate (in whatever form) with the linux-gpib project?
  • What technical requirements must be met for both software packages?
  • What licensing issues need to be resolved?

I would be very grateful if someone representing NI could participate in this discussion.

I have also sent e-mail to the linux-gpib mailing list; you can follow the thread here:

http://sourceforge.net/mailarchive/forum.php?thread_name=201005111330.49514.andreas.huettel%40physik...

Thank you in advance for your help.

Andreas

Message 1 of 10
(18,754 Views)
  • What licensing issues need to be resolved?

The linux-gpib project would at least need to be licensed in a manner to allow linking to it from a proprietary library.  In particular in user-mode.  Since the intent of LGPL is just this it would be helpful if it were licensed in that manner as comedi is (GPL in kernel, LGPL in user-mode).  The linux-gpib project would need to be willing to license this way of course.

For the rest of your questions on VISA I've brought this thread to the attention of the VISA team.

For completeness, the other option I would assume in this use-case would be for the NI-488.2 driver to have support for USB again, but via the user-mode USB support.  From my understanding that would be a pretty significant undertaking given today's design of the driver.  If that were considered it would still take some time for it to come about.  I can't venture a guess since I've never worked on that driver.

As far as what hardware you are using, are you vested already in the USB products?  Or have requirements that make USB important to you?

Message 2 of 10
(8,431 Views)

Being able to use LabView + VISA + open source driver would be a huge improvement over the current situation.

I use a PCI GPIB card.

The NI driver simply doesn't work with modern kernels (init_mm problem). Having a practical alternative driver would be very helpful!

- Mike

0 Kudos
Message 3 of 10
(8,431 Views)

Since the intent of LGPL is just this it would be helpful if it were
licensed in that manner as comedi is (GPL in kernel, LGPL in user-mode).

This is exactly what I suggested on the linux-gpib mailing list; let's see what the response is.

As far as what hardware you are using, are you vested already in the USB
products?  Or have requirements that make USB important to you?

At all the university labs where I've been working so far (LMU München, TU Delft, Univ. Regensburg) the GPIB-USB-HS is very popular. It enables us to quickly set up a measurement PC and/or exchange the PC, to use fiber-optic USB extensions to resolve grounding problems, ... So, while we could do our work otherwise, we're actually pretty happy about that piece of hardware.

0 Kudos
Message 4 of 10
(8,431 Views)

The NI driver simply doesn't work with modern kernels (init_mm problem).

Unfortunately that's another (unrelated) problem. I suspect we will still need the VISA kernel modules (nikal etc), independent of the GPIB backend.

0 Kudos
Message 5 of 10
(8,431 Views)

The only thing in NI-VISA that has a direct kernel dependency is the PCI/PXI passport.  That passport allows users to develop a PCI or PXI device driver with NI-VISA and I suspect there are only 1% of users who actually use that feature of NI-VISA.  What would be ideal is if the NI-VISA installer asked if you needed that feature and only built the kernel modules if you need them.

--

Shawn

Use NI products on Linux? Come join the NI Linux Users Community
0 Kudos
Message 6 of 10
(8,431 Views)

I wrote to my NI representative, and got this response:

Hi Glenton,



As conversed, there are some
complications,
both technical and licensing issue, prevent us from the support of NI
GPIB
Interface for Linux platform in general, and GPIB-USB-HS in spedific.




1. Starting from Linux Kernel
version
2.6.28 and greater, including Ubuntu, the kernel stopped exporting the
init_mm
symbol, which NI code needs to compile.


This is an ongoing effort we have
put
in for the next release of NI-KAL in 2-3 months time.




2. In addition, starting with
kernel
version 2.6.25, the USB device driver APIs were made GPL. This means
that
National Instruments GPIB device driver software, NI-488.2
(licensed
as proprietary license) cannot support any USB devices in distributions
containing this kernel version and greater without committing GPL
Violation.




Hope this explains.



Let me know if you have any other
questions,
thanks!



WaiHing
Wong

| Internal
Sales
Engineer | National Instruments | Singapore 65-6226 5886 | Malaysia
603-2148
7710 | Thailand 662-278 6777 |

ni.com/asean

It doesn't seem like these are insurmountable problems, but NI seems to be treating them as such...

Glenton

Message 7 of 10
(8,431 Views)

It doesn't seem like these are insurmountable problems, but NI seems to be treating them as such...

Glenton

Correct, they are not.  For init_mm it is already mentioned that a resolution is pending.  For NI-488.2 calling USB symbols in the kernel, there are options and ways for a proprietary driver to interface with USB on Linux.  It's just a matter of it being sufficiently different then the way it works today.  This thread has some good discussion on different ways of approaching it.  Just a matter of what direction meets customers needs and then the difficult question of development cost vs customer demand.

0 Kudos
Message 8 of 10
(8,431 Views)

What would be ideal is if the NI-VISA installer asked if you needed that
feature and only built the kernel modules if you need them.

Great idea... This would make the VISA package itself independent of the exact kernel version (for people who dont need that feature), and even those who need it occasionally may want to disable it for a moment while applying a newer kernel as security fix...

On the other hand, I guess the NI-GPIB package is based on that module stack and requires it. So, in effect nikal would be required again if you use the NI-GPIB driver.

0 Kudos
Message 9 of 10
(8,431 Views)

For NI-488.2 calling USB symbols in the kernel, there are options and ways for a proprietary driver to interface with USB on Linux. It's just a matter of it being sufficiently different then the way it works today.

 

Rolling your own proprietary USB stack in the kernel ? Including own drivers for all the the chipsets out there ?

 

Oh, and how are the users supposted to operate that ? Manually disable the standard USB stack and loose all other USB functionality (and possiblity other things, depending on the chipset) in order to just access one particular device ? 

 

Have fun with that.

 

Will cost magnitudes more than a completely fresh rewrite as free drivers and bringt them into mainline. But obviously, NI doesn't care about providing stable and actually usable products.

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 10 of 10
(6,089 Views)