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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Linux OS on RasPi running LabVIEW .exe

Solved!
Go to solution

Hello, Not sure if I'm understanding everything fully about using Linux and LabVIEW executables. This is my understanding of it:

 

- To run a Linux .exe it should be developed on a Linux OS, I can't create an exe on Windows then just deploy that into a Linux system.

 

Also in terms of using a RasPi with LabVIEW I've been able to deploy code onto the pi using the LINX toolkit and even have it run headless but this was again with windows. My concern is if my client wants to use a Linux OS on the pi will I have the same access to using LabVIEW? Will the LINX toolkit work on Linux?

 

I guess what I'm asking is how do-able is this compared to a windows setup?

0 Kudos
Message 1 of 9
(2,811 Views)
Solution
Accepted by PatrickMiller

The Linx Toolkit is officially not supported anymore. The latest version is called Hobbyist Toolkit.

 

And yes you can only deploy to a Raspberry Pi from a Windows host using mentioned Hobbyist Toolkit. The Toolkit has not been ported to run under other LabVIEW platforms.

 

And no you can't just create a LabVIEW executable and hope to run it under any Linux system. There is LabVIEW for Linux which can create executables to run under common Linux distributions such as Debian or Redhat. But!!! This is x64 compiled code and will only run on such systems that execute on an Intel/AMD compatible x64 CPU.

 

The LabVIEW generated executable to run on the Raspberry Pi is however compiled for the ARM CPU on those boards and won't run under anything else. In fact it won't even run directly under the Raspbian OS (the Raspberry Pi variant of Linux). Instead the Hobbyist Toolkit installs a chroot environment with its own specific Linux kernel under which the LabVIEW executable executes. This is basically a light-weight VM inside the Raspbian host OS with the NI Linux kernel installed into it. This is needed since the ABI for which LabVIEW compiles its ARM binaries is not compatible with the Raspbian ABI (and pretty much any other ARM based standard Linux kernel). The reason is that the ARM binaries that LabVIEW generates are specifically crafted for the NI Linux ARM OS that they use on their ARM real-time RIO hardware. And that ARM CPU has limited support for hardware floating point operations, so their NI Linux OS for ARM is compiled to use a software emulated FPU, and any binary running on such a system needs to be compiled accordingly or things crash. Most other Linux ARM systems use however a hardware floating point unit which is nowadays included in pretty much every Cortex A and better core. So there the Linux kernel is compiled to run in the hardware FPU mode and all binaries need to be compiled accordingly, so the LabVIEW created executable would crash if directly launched on there.

 

And you mention your clients!! If you use the Community Edition you should also read the license agreement that you agreed to when downloading this. It explicitly excludes any and all commercial development. If you use the Hobbyist Toolkit within a commercial version of LabVIEW, then this doesn't apply to you, but I would be careful. That name "Hobbyist" in Hobbyist Toolkit isn't for no reason. Basically as long as it works for you that is fine, but when it doesn't NI will not invest any resources into debugging and supporting you in anything. They will possibly note down bug reports and store them in some database, to be maybe looked at when someone gets the urge to tinker with the Hobbyist Toolkit to ready it for a new release. Anything else is idle hope. And Community support is limited possible. While the Toolkit itself is open source on github, it's still an NI product and the animo to work on that from other users has been practically null, partly likely also because there is not clear communication as to how any improvements would have a change to be committed back into the original project.

Rolf Kalbermatter
My Blog
Message 2 of 9
(2,754 Views)

@rolfk wrote:

The Linx Toolkit is officially not supported anymore. The latest version is called Hobbyist Toolkit.

 


OK thanks for the update and help with this, I'll switch over to the Hobbyist toolkit. 

 


 

 

And no you can't just create a LabVIEW executable and hope to run it under any Linux system. There is LabVIEW for Linux which can create executables to run under common Linux distributions such as Debian or Redhat. But!!! This is x64 compiled code and will only run on such systems that execute on an Intel/AMD compatible x64 CPU.

 

OK so that's what I understood from the NI article that not only can I not create an executable on windows and give it to someone using Linux but I also need to develop natively on Linux and also on an intel/amd 64 bit cpu. This might be an issue with the rasPi. Also my client is being told by an NI sales rep that they can just create any executable on windows and use it on linux, but that's sales. 

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019LrNSAU&l=en-US

 

 

 

The LabVIEW generated executable to run on the Raspberry Pi is however compiled for the ARM CPU on those boards and won't run under anything else. In fact it won't even run directly under the Raspbian OS (the Raspberry Pi variant of Linux). Instead the Hobbyist Toolkit installs a chroot environment with its own specific Linux kernel under which the LabVIEW executable executes. This is basically a light-weight VM inside the Raspbian host OS with the NI Linux kernel installed into it. This is needed since the ABI for which LabVIEW compiles its ARM binaries is not compatible with the Raspbian ABI (and pretty much any other ARM based standard Linux kernel). The reason is that the ARM binaries that LabVIEW generates are specifically crafted for the NI Linux ARM OS that they use on their ARM real-time RIO hardware. And that ARM CPU has limited support for hardware floating point operations, so their NI Linux OS for ARM is compiled to use a software emulated FPU, and any binary running on such a system needs to be compiled accordingly or things crash. Most other Linux ARM systems use however a hardware floating point unit which is nowadays included in pretty much every Cortex A and better core. So there the Linux kernel is compiled to run in the hardware FPU mode and all binaries need to be compiled accordingly, so the LabVIEW created executable would crash if directly launched on there.

 


So even if I develop in Linux OS and deploy to the RasPi it won't work unless I use the hobbyist toolkit which has this chroot environment?

 


 

And you mention your clients!! If you use the Community Edition you should also read the license agreement that you agreed to when downloading this. It explicitly excludes any and all commercial development. If you use the Hobbyist Toolkit within a commercial version of LabVIEW, then this doesn't apply to you, but I would be careful. That name "Hobbyist" in Hobbyist Toolkit isn't for no reason. Basically as long as it works for you that is fine, but when it doesn't NI will not invest any resources into debugging and supporting you in anything. They will possibly note down bug reports and store them in some database, to be maybe looked at when someone gets the urge to tinker with the Hobbyist Toolkit to ready it for a new release. Anything else is idle hope. And Community support is limited possible. While the Toolkit itself is open source on github, it's still an NI product and the animo to work on that from other users has been practically null, partly likely also because there is not clear communication as to how any improvements would have a change to be committed back into the original project.


We have a pro license to use for this project so we're not using a community edition.


 

0 Kudos
Message 3 of 9
(2,739 Views)

@PatrickMiller wrote:

@rolfk wrote:

The Linx Toolkit is officially not supported anymore. The latest version is called Hobbyist Toolkit.

 


OK thanks for the update and help with this, I'll switch over to the Hobbyist toolkit. 

 


 

 

And no you can't just create a LabVIEW executable and hope to run it under any Linux system. There is LabVIEW for Linux which can create executables to run under common Linux distributions such as Debian or Redhat. But!!! This is x64 compiled code and will only run on such systems that execute on an Intel/AMD compatible x64 CPU.

 

OK so that's what I understood from the NI article that not only can I not create an executable on windows and give it to someone using Linux but I also need to develop natively on Linux and also on an intel/amd 64 bit cpu. This might be an issue with the rasPi. Also my client is being told by an NI sales rep that they can just create any executable on windows and use it on linux, but that's sales. 

 

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019LrNSAU&l=en-US

 

 

 

The LabVIEW generated executable to run on the Raspberry Pi is however compiled for the ARM CPU on those boards and won't run under anything else. In fact it won't even run directly under the Raspbian OS (the Raspberry Pi variant of Linux). Instead the Hobbyist Toolkit installs a chroot environment with its own specific Linux kernel under which the LabVIEW executable executes. This is basically a light-weight VM inside the Raspbian host OS with the NI Linux kernel installed into it. This is needed since the ABI for which LabVIEW compiles its ARM binaries is not compatible with the Raspbian ABI (and pretty much any other ARM based standard Linux kernel). The reason is that the ARM binaries that LabVIEW generates are specifically crafted for the NI Linux ARM OS that they use on their ARM real-time RIO hardware. And that ARM CPU has limited support for hardware floating point operations, so their NI Linux OS for ARM is compiled to use a software emulated FPU, and any binary running on such a system needs to be compiled accordingly or things crash. Most other Linux ARM systems use however a hardware floating point unit which is nowadays included in pretty much every Cortex A and better core. So there the Linux kernel is compiled to run in the hardware FPU mode and all binaries need to be compiled accordingly, so the LabVIEW created executable would crash if directly launched on there.

 


So even if I develop in Linux OS and deploy to the RasPi it won't work unless I use the hobbyist toolkit which has this chroot environment?

 


 


LabVIEW for Linux is x64 only at this time. It used to be x86 only until 2014 and there were x86 and x64 versions between 2014 and 2016, but since then it is only x64. So executables created in it could never work on a Raspberry Pi, which has an ARM CPU.

 

And the Hobbyist Toolkit only works under LabVIEW for Windows, and until the current version only the 32-bit version. It uses internally the ARM cross compiler that LabVIEW Realtime uses for the ARM Realtime targets. LabVIEW Realtime is Windows only so there is no ARM cross compiler for LabVIEW for Linux or LabVIEW for Mac. That means that even if the Hobbyist Toolkit itself would be ported to non-Windows LabVIEW platforms, it could only do the remote control through the Linx communication library as is used for Arduinos. You could not build an executable to deploy to the Raspberry Pi or Beaglebone Black since that cross compiler simply doesn't exist on those platforms. And with it various support technologies needed to communicate with the deployed application. And since changes that NI is going to create a release of LabVIEW Realtime for non-Windows platforms is currently at about -20 degree below freezing point, such a cross compiler and remote communication support is as likely to be build as that hell is ever going to freeze over.

Rolf Kalbermatter
My Blog
Message 4 of 9
(2,728 Views)

Thanks for all the help with this, I think it also makes sense for them(NI) not to really fully support us doing sensor/DAQ inputs from a RasPi because then we're removing the NI hardware costs = sales. 

0 Kudos
Message 5 of 9
(2,723 Views)

I know this isn't the place to ask this but I am desperate and you seem to be very active.

 

Recently, for my university course I downloaded a trial of LabVIEW 2023 Q3 and, long story short, my professor cannot download two of my assignments and my trial has expired so I cannot save the files for a previous version.

 

Could you by any chance help me by saving my files for the 2020 version or help me in any way?

 

Tech support couldn't help me because I am not a graduate student, and therefore could not create a tech support ticket for me.

 

Panicking slightly, over here, please help!

 

Thank you for any way you can potentially help me.

 

I've attached the two files in question, in case you wanted to look at them.

 

Max

Download All
0 Kudos
Message 6 of 9
(2,718 Views)

You should post to the special Conversion board in this forum: https://forums.ni.com/t5/Version-Conversion/bd-p/VersionConversion

2022Q3 is very new and many people on these forums who are volunteers don't upgrade always to the greatest and latest craze of the moment. Also because of the recent subscription changes. Basically you have two kind of people here, those who are on a corporate site license and won't even notice a difference with subscription, since they were in fact already for a long time on a subscription based license. And those who use individual licenses and are very much affected by the subscription change and refuse to upgrade to a version that is only available as subscription anymore.

 

Incidentally the first group also is usually on a tight time schedule that makes them check these forums at most when they have a problem themselves they want to get resolved. Most of the active members on these forums doing actually volunteer support, are more in the second group. And since NI basically has in the past disincentivized their employees to participate on here, those people are almost the only ones who still support others on here. So the downconvert request may take a little while until someone with that version installed will see it.

 

While I do have a site license through my employer, the latest version I have installed on my machine is 2021. I haven't seen any need to install the newer one, partly because there were some installer components that actually disabled various functionality in earlier versions of LabVIEW, such as the ability to build executables that will still run on Windows 7 systems. My main development for projects is still mainly done in 2018 and 2019, with incidentally a little 2020.

Rolf Kalbermatter
My Blog
0 Kudos
Message 7 of 9
(2,703 Views)

@PatrickMiller wrote:

@rolfk wrote:

The Linx Toolkit is officially not supported anymore. The latest version is called Hobbyist Toolkit.

 


OK thanks for the update and help with this, I'll switch over to the Hobbyist toolkit. 

 


 

 

And no you can't just create a LabVIEW executable and hope to run it under any Linux system. There is LabVIEW for Linux which can create executables to run under common Linux distributions such as Debian or Redhat. But!!! This is x64 compiled code and will only run on such systems that execute on an Intel/AMD compatible x64 CPU.

 

OK so that's what I understood from the NI article that not only can I not create an executable on windows and give it to someone using Linux but I also need to develop natively on Linux and also on an intel/amd 64 bit cpu. This might be an issue with the rasPi. Also my client is being told by an NI sales rep that they can just create any executable on windows and use it on linux, but that's sales. 


You should be able to deploy an executable on Windows to the RPi, and communicate with the RPi executable on a Linux machine (with an application made for that machine).

 

This could be what the sales rep meant.

 

In these scenarios there are quite a few executables, it gets fuzzy...

0 Kudos
Message 8 of 9
(2,473 Views)

wiebe@CARYA wrote:


You should be able to deploy an executable on Windows to the RPi, and communicate with the RPi executable on a Linux machine (with an application made for that machine).


It could be what they meant, yes. But note that you either have to implement your own communication protocol somehow, or compile the  Linx shared library yourself for your Linux OS in order to do that.

Rolf Kalbermatter
My Blog
0 Kudos
Message 9 of 9
(2,455 Views)