From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

Questions regarding hardware support

Reading through the latest threads in this channel make me wondering what product to buy next. I need to buy A/D and an GPIB cards in the near future and found that the USB-6211 and GPIB-USB-HS fits my needs. The first question is while ordering, I can choose between a Windows and a Linux/OSX version.   Am I right that the hardware/software is the same, but the distinction is only there to get a market overview? This is important for me, because I want to use the hardware on Linux as well as on Windows. If there is no difference, I certainly will buy the "Linux" version.  Ok - there is a fully featured DAQmx and the stripped down version mxbase. The (usb) hardware is not supported by DAQmx (8.0.1) so I have to live with the stripped down version. Question is, will a LabView (2009) Vi written under Linux still run under LabView/Win?  Thanks  Marvin

0 Kudos
Message 1 of 13
(9,141 Views)

Marvin,

Yes, a Linux written VI will load and run just fine under the same or later versions of LabVIEW on both Windows and Mac OS X, assuming that all of the subVIs that you use are there as well. For instance, if you use Pipe VIs, then they are only found on Linux and Mac. If you use ActiveX controls, those are only found on Windows. If you are using a driver, make sure that driver is installed on all of the platforms that you want to use it on and you should be just fine.

Randy Hoskin

0 Kudos
Message 2 of 13
(6,484 Views)

Randy answered your LabVIEW question, but to answer your other questions...

All of the hardware is OS independent.  Some hardware may come in a Linux/Windows/Mac "kit" but that is only for used for NI to have a better understanding of customer demand.  There may be a difference in which drivers are shipped with the device, but drivers for the other operating systems (where supported) can be found on http://ni.com/downloads.

If you are interested in Linux support you should read the README file for NI-DAQmx Base of NI-DAQmx to ensure the device you are interested in is supported.  I do know that if you want to use the GPIB-USB-HS (or any NI USB GPIB device) that you won't be able to use the NI driver (NI-488.2) on any recent Linux distributions that have a 2.6.25 or newer kernel.  There is an open source driver for this device, but it will not integrate into LabVIEW as easily.

--

Shawn

Use NI products on Linux? Come join the NI Linux Users Community
0 Kudos
Message 3 of 13
(6,484 Views)

The final piece of the hardware puzzle is USB device support and cross-platform programming. In Windows, the full NI-DAQmx driver controls your USB device; in Mac and Linux, NI-DAQmx Base controls your USB device. Note that there are USB devices supported by DAQmx that aren't supported in DAQmx Base (like USB-62xx and CompactDAQ to name a few). Thus, you will need to call different DAQ VIs depending on the driver, which depends on the operating system. Plug-in PCI devices have full DAQmx support between Windows and Linux, but Mac only has DAQmx Base for PCI support.

Compounding the USB caveat is the issue of firmware. Of the USB devices supported by both DAQmx and DAQmx Base, there are two classes of USB DAQ devices: those with static firmware and those with volatile firmware. A device with volatile firmware will forget what it is once it is unplugged from the computer and loses power since the firmware is kept in something like RAM; conversely, a device with static firmware will remember what it is between power cycles since it's firmware is kept in something like flash memory.

When a volatile device gets moved from one OS to another, it forgets what it is, and the new driver on the new OS needs to load the firmware it uses to communicate with it. When a static device gets moved from one OS to another, it won't forget what it is, and then the behavior of DAQmx and DAQmx Base diverges. DAQmx will automatically change the device's firmware to the correct version without any interaction from the user; it happens behind the scenes. DAQmx Base, on the other hand, is more polite (and more needy), and requires the user to run a utility that updates the firmware before it can successfully communicate with the device.

One further detail to manage: the power cycle. Note that if the computer is a multi-boot (or virtualized) machine, it's possible for the OS to change without the USB device getting power cycled. If changing the OS also changes the driver from DAQmx to DAQmx Base, then volatile devices will need to unplugged and replugged, and static devices will need to use the firwmare update utility. Hardly automated. Very painful. I'm sorry 😞

The last piece is which devices are static, and which are volatile 🙂

Static: USB-600x, USB-6501
Volatile: USB-621x

Joe Friedchicken
NI Configuration Based Software
Get with your fellow OS users
[ Linux ] [ macOS ]
Principal Software Engineer :: Configuration Based Software
Senior Software Engineer :: Multifunction Instruments Applications Group (until May 2018)
Software Engineer :: Measurements RLP Group (until Mar 2014)
Applications Engineer :: High Speed Product Group (until Sep 2008)
0 Kudos
Message 4 of 13
(6,484 Views)

Randy Hoskin wrote:

Yes, a Linux written VI will load and run just fine under the same or
later versions of LabVIEW on both Windows and Mac OS X, assuming that
all of the subVIs that you use are there as well. For instance, if you
use Pipe VIs, then they are only found on Linux and Mac. If you use
ActiveX controls, those are only found on Windows. If you are using a
driver, make sure that driver is installed on all of the platforms that
you want to use it on and you should be just fine.

Randy,

the exceptions you mentioned are of course expected. No one would use e.g. ActiveX and expect it to run on Linux or MacOS. I like to use my Linux Desktop as a development machine, but the VIs should later run on Windows as well. I was just wondering if the DAQmxbase VI's are the same.

Thanks for your answer

Marvin

0 Kudos
Message 5 of 13
(6,484 Views)

Marvin,  Yes. The API VIs that you would be using are the same. There may be a few differences in how those are implemented, but the VIs that you would put on your diagrams are the same on all of the platforms.  Randy Hoskin

0 Kudos
Message 6 of 13
(6,484 Views)

Shawn wrote:

All of the hardware is OS independent.  Some hardware may come in a
Linux/Windows/Mac "kit" but that is only for used for NI to have a
better understanding of customer demand.  There may be a difference in
which drivers are shipped with the device, but drivers for the other
operating systems (where supported) can be found on http://ni.com/downloads.

That sounds fine. At least NI tries to get some idea how many people use Linux <OT>but not how many want to and can't because of the limited features, also you miss the people who are using both/<OT>.

If
you are interested in Linux support you should read the README file for
NI-DAQmx Base of NI-DAQmx to ensure the device you are interested in is
supported.  I do know that if you want to use the GPIB-USB-HS (or any
NI USB GPIB device) that you won't be able to use the NI driver
(NI-488.2) on any recent Linux distributions that have a 2.6.25 or
newer kernel.  There is an open source driver for this device, but it
will not integrate into LabVIEW as easily.

Of course I read the README already. According to the READMEs in mxbase and NI488.2 the USB-6211 is supported as well as the  GPIB-USB-HS. Only problem is the kernel, which was discussed at length already in other threads. Using an open-source driver is not possible, because I need cross plattform capability. The supported fedora versions have passed their lifetime and the last openSUSE 11.0 will in pass away in fall. So only way to get a working system is using rhel 5 (kernel 2.6.18?), but I doubt that it will support newer pc hardware. The kernel limitation is really a show stopper.

Is there a timeline when current kernel/distributions get supported?

Thanks

Marvin

0 Kudos
Message 7 of 13
(6,484 Views)

Mandriva 2008.1 runs the 2.6.24 kernel and is, IMO, the best distro that supports newer PC hardware as well as NI hardware...including the USB GPIB dongles. Mandriva 2009.0 will work as well...but you're gonna be out of luck with the GPIB USB dongles.

0 Kudos
Message 8 of 13
(6,484 Views)

JoeFriedchicken wrote:

The final piece of the hardware
puzzle is USB device support and cross-platform programming. In
Windows, the full NI-DAQmx driver controls your USB device; in Mac and
Linux, NI-DAQmx Base controls your USB device. Note that there are USB
devices supported by DAQmx that aren't supported in DAQmx Base (like
USB-62xx and CompactDAQ to name a few). Thus, you will need to call
different DAQ VIs depending on the driver, which depends on the
operating system. Plug-in PCI devices have full DAQmx support between
Windows and Linux, but Mac only has DAQmx Base for PCI support.

According to the README, USB-621x is supported, which I like to use. So I only need to install DAQmx BASE in Windows - right?

Compounding
the USB caveat is the issue of firmware. Of the USB devices supported
by both DAQmx and DAQmx Base, there are two classes of USB DAQ devices:
those with static firmware and those with volatile firmware. A device
with volatile firmware will forget what it is once it is unplugged from
the computer and loses power since the firmware is kept in something
like RAM; conversely, a device with static firmware will remember what
it is between power cycles since it's firmware is kept in something
like flash memory.

When
a volatile device gets moved from one OS to another, it forgets what it
is, and the new driver on the new OS needs to load the firmware it uses
to communicate with it. When a static device gets moved from one OS to
another, it won't forget what it is, and then the behavior of DAQmx and
DAQmx Base diverges. DAQmx will automatically change the device's
firmware to the correct version without any interaction from the user;
it happens behind the scenes. DAQmx Base, on the other hand, is more
polite (and more needy), and requires the user to run a utility that
updates the firmware before it can successfully communicate with the
device.

Ok - the loading of firmware this is not unusual, especially for USB devices. What is really strange is that DAQmx and Base are using different firmwares and cannot operate with the other one. Are you sure that this is the case?

Where can I find out if a device uses a static or a volatile firmware?

So you mean, that with Base I need to run a program first to load the firmware (in both Linux and Windows)? Where can I find it?

There should really be some FAQ entry for this!

One
further detail to manage: the power cycle. Note that if the computer is
a multi-boot (or virtualized) machine, it's possible for the OS to
change without the USB device getting power cycled. If changing the OS
also changes the driver from DAQmx to DAQmx Base, then volatile devices
will need to unplugged and replugged, and static devices will need to
use the firwmare update utility. Hardly automated. Very painful. I'm
sorry 😞

After all I don't think that I will be treadend by this issue as I will only use DAQmx Base. It least I hope so.

The last piece is which devices are static, and which are volatile 🙂

Static: USB-600x, USB-6501
Volatile: USB-621x

Ok, so USB-621x is volatile, what about USB-HS-GPIB?


Thanks for the detailed answer!

Marvin

0 Kudos
Message 9 of 13
(6,484 Views)

Respoding ONLY to this part of your post:

"Ok - the loading of firmware this is not unusual, especially for USB devices. What is really strange is that DAQmx and Base are using different firmwares and cannot operate with the other one. Are you sure that this is the case?

Where can I find out if a device uses a static or a volatile firmware?
So you mean, that with Base I need to run a program first to load the firmware (in both Linux and Windows)? Where can I find it?
There should really be some FAQ entry for this!"

Look for FWUpdate in  /usr/local/natinst/nidaqmxbase/bin
When an update is required you get an error message.
See http://digital.ni.com/public.nsf/allkb/B179266E288CE329862573B40078DDC9

Yanqele
> 
0 Kudos
Message 10 of 13
(6,479 Views)