10-08-2014 11:27 AM
Since Linux Real-Time can target ARMs now, would it be possible to install this distribution to the Raspberry Pi in order to run LabVIEW (RT) applications on the Pi? I understand that targetting 3rd party hardware is not supported by NI, but was wondering if any see any immediately hurdles that would prohibit attempting this.
thanks,
Quintin
10-08-2014 11:47 AM
Hi Quintin,
That's a good question, and something that we've talked about internally. Unfortunately, all of the binaries we include in our NI Linux Real-Time distribution are built for armv7 processors while the processor in the Raspberry Pi is an armv6. In addition to this the LabVIEW code generator is not currently set up to generate armv6 code, so VIs couldn't run on a Raspberry Pi.
In summary, we'd have to repeat the porting effort we made for the Zynq processor to get things running on the Raspberry Pi, which is a significant hurdle.
Regards,
Ken
10-08-2014 11:53 AM
Hi Quintin,
The primary technical issue at hand is that the underlying ISA (https://en.wikipedia.org/wiki/Instruction_set) for the RPi is ARMv6 while the software for the NI Linux Real-Time OS is ARMv7. This will result in instructions that are not currently implemented on the RPi.
If you wanted to build the kernel and OS userspace components using the NI-provided GitHub repos, you can certainly build the components using a toolchain/configuration to ensure that the resulting code is executable on a ARMv6 processor.
10-08-2014 07:45 PM
The BeagleBone Black (http://beagleboard.org/black) Is another board like the Raspberry PI You may want to look into. I Know that it is an armv7. It, Like the PI has a good sized comunity around it with all sorts of add on boards.
Ken_S, Waht would be the Effort to port it on to a board that is armv7? Has any thought been put in to somthing like the BeagleBone Black?
10-09-2014 07:58 AM
I've no idea if it would work, but if you wanted to run a LabVIEW exe on an RPI, you could try using the Mono Project:
https://packages.debian.org/search?keywords=mono-complete
I have used the wheezy package for another windows executable. I didn't test I/O, but the executable ran and communicated with a server on the same LAN.
10-09-2014 08:53 AM
MattH,
Thanks for the interesting idea. The issue is that any current LabVIEW .exe file is not based on C#/.NET. It is a bit unfortunate that the powers that be decided to give compiled .NET assemblies the .exe extension.
10-09-2014 08:55 AM
WINE then?
10-09-2014 08:59 AM
MattH,
As the acronym states, WINE Is Not an Emulator. Basically, the LabVIEW exe is x86 (or x86_64) machine code, so you need a proper emulator. Performance is going to be pretty bad under emulation on hardware of this class.
10-22-2014 03:46 AM
So, what about porting to BeagleBone or CubieBoard? They are ARMv7, so what is an expected effort to allow running LabVIEW RT on that hatdware? Are there any documents explaining what should be changed in NI RT Linux when porting to another SOC?
I have been playing with CubieBoard a lot and I'm looking forward to use it with NI RT Linux. Especially if required porting time is reasonable for 1- 2 developers. You know, future CubieBoard is going to have 8 core SOC, so it will be a very powerful platform to run LabVIEW RT.
10-22-2014 08:51 AM
Andreev_S.V.,
Just to dispell all sources of ambiguity, when you ask for the effort to port NI RT Linux, I take that to mean the kernel and distribution of non-NI software (read: open-source software) to the target. This effort would be non-trivial and would likely include stripping some of the changes from the kernel that are specific to our board/SoC and instead pulling in changes that are specific to your SoC.
If, instead, as I suspect you're actually asking, what the effort would be to get NI software running on another non-NI target, this is something that we can't support and would likely be violating some of the terms of use in the LabVIEW RT/RIO driver EULA.