NIVeriStandAdd-Ons / Ballard-Arinc-429-Custom-Device

BSD 2-Clause "Simplified" License
1 stars 3 forks source link

429 Custom Device Deployment Error on NI-RT Linux #24

Open CoderMad opened 3 years ago

CoderMad commented 3 years ago

Hi Team, I have installed the latest Arinc-429 Ballard drivers (1.3.1.1) to the NI-RT Linux Target and also built the Custom-Device in my host PC. I have carried out all the procedures as mentioned in the instruction manual, built Configuration and Engine release. I have changed the 'Supported Target' tag in xml file from Pharlap to NI-RT Linux OS and made corresponding changes to 'RealTimeSystemDestination' tag. While deploying the CD to the target, I'm getting "(Hex 0x464) VI is not loadable" error. I have attached the error snip, please help me out in solving this issue Screenshot (46)

Karl-G1 commented 3 years ago

I was trying to get the same prototyped build of this custom device working on Linux RT, and I eventually ran into the same error you were seeing. After debugging, the error is actually caused by some dependencies not being moved to the target due to exclusions from the LLB build from name conflicts.

FYI @VincentRuault and @jkreienh

Issue cause

The error stems from a change that Ballard made in the names of sub VIs in their driver, presumably in the 1.3.1.1 release (the current available for download). See the screenshot below:

image

Those VIs now share the same names (losing the '429' prefix in the BTI429LV.lvlib copies). Because of this, the build produces two folders with individual copies next to the built LLB. These folders/files were not present in older releases of the custom device, and the custom device has no ability to deploy them to the RT target.

image

Quick workaround

A quick workaround is to manually copy the files to the RT target next to the LLB:

image

Actual fix

A more robust solution is to rename the offending files during the build of the LLB. The easiest way to do this is to explicitly add those .lvlibs to the project (they currently are under instr.lib in Dependencies). Then add them to a unique virtual folder:

image

Finally, in the Build Specification for the Engine Release under Pharlap and Windows (this issue likely affects both builds), select the option to Apply prefix to all contained items. Give each folder a unique prefix, then build. You should end up with only the single LLB being built.

image

CoderMad commented 3 years ago

Hi @Karl-G1, I have followed the actual fix procedure of yours mentioned above. I've also got a single .llb file in the host after building the Engine release. But, during the deployment I'm facing the error mentioned below. Can you please share your thoughts on this issue cause, image

image

fmussi commented 3 years ago

@CoderMad , which branch are you using? I'm currently building from dev2020 branch and I can run the CD on a LinuxRT 2020 PXI system.

CoderMad commented 3 years ago

@fmussi I'm trying with ballard-arinc-429-custom-device-2020_1.9.3.006 build

fmussi commented 3 years ago

@jkreienh does that build have LinuxRT support?

jkreienh commented 3 years ago

@fmussi The ballard-arinc-429-custom-device-2020_1.9.3.006 build does not contain support for Linux. We should chat about the work you completed in the dev2020 branch.