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.

Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

*Full* kernel/bootloader source for cRIO-9064

Hi folks,

 

I'm just evaluating the cRIO-9064 for my clients. Note: *not* as sps, but as a pure linux box.

We dont use anything of the labview related stuff. We're only interested in the HW.

 

Of course, we'll build everything on our own (via ptxdist), based on mainline kernel and barebox

(only with few additional patches, when necessary, and bring as much as possible mainline)   

 

But we need the *full* kernel source (same for bootloader) - the tree on NI's github account is

just *incomplete*. It lacks the sources for the binary-only modules. Needless to say that this

is an *absolute NO-GO*. 

 

This is a *complete showstopper* - I'll never let anything w/ proprietary code into the field. 

Having the full source of everything (from bootloader, to kernel and protocols to the IO cards) - or at least full documentaton, so I can write the drivers myself - is mandatory. (wont buy w/o)

 

So, where can I find the full source code / the necessary interface/protocol specs ?

 

--mtx 

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 1 of 10
(3,830 Views)

Hey metux, 

 

Having the full source of everything (from bootloader, to kernel and protocols to the IO cards)

I suspect you will have a lot of trouble accessing source for NI's IO drivers (NI-RIO and NI-XNET, in particular). At least, I have not heard of anyone in the past getting access to these before.

 

If you haven't already seen the NI Linux RT community page you should definitely visit it. You might have more luck searching for information and driving discussions there. Start with the FAQ page for sure, 

http://forums.ni.com/t5/NI-Linux-Real-Time-Documents/NI-Linux-Real-Time-FAQ/ta-p/3495630

 

 

Tim A.
0 Kudos
Message 2 of 10
(3,784 Views)

I suspect you will have a lot of trouble accessing source for NI's IO drivers (NI-RIO and NI-XNET, in particular). At least, I have not heard of anyone in the past getting access to these before.

Exactly that's the point. They seriously expect us to load proprietary kernel modules - which is technically unstable, legally very questionable, maintenance hell, just practically unusable for anything but childs toys. I really fail to see any practical reason to make such a secret of how to talk to the controllers. It's like buying a car which needs a super-secret fuel. Just as silly as secret mason handshakes. If it's against competitors - they *will* find out, if they ever want to. But if it's against the own customers, than it's just very dubious business methods, we'll definitively not aggree - there're other vendors which are way more cooperative.

If you haven't already seen the NI Linux RT community page you should definitely visit it. You might have more luck searching for information and driving discussions there. Start with the FAQ page for sure, 

http://forums.ni.com/t5/NI-Linux-Real-Time-Documents/NI-Linux-Real-Time-FAQ/ta-p/3495630

Of course, but that doesn't answer any of these questions. They talk a lot about labview, precompiled packages, etc, which all is completely irrelevant to us.
Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 3 of 10
(3,779 Views)

By the way: what is that strange mcopy() syscall for ?!

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 4 of 10
(3,697 Views)

I would NI keeps the communication to the modules proprietary to prevent unauthorized third parties from making knock-off modules. NI is big on the "out of the box" experience and having everything work as expected. Having the cRIO turn into a completly open source platform would probably turn into a big headache for them. 

 

Talking to someone at NI, like a field sales rep or AE might be better.

0 Kudos
Message 5 of 10
(3,681 Views)

@MarkCG wrote:

I would NI keeps the communication to the modules proprietary to prevent unauthorized third parties from making knock-off modules.

Aha, so, their own customers are "unauthorized" to use their products they buy as they need to. I doubt that kicking the customers directly into the face is a proper marketing tool. At least regarding my clients, most likely not. I (as the linux embedded expert) am forced to advise strictly against that - the long-term maintenance costs for the OS alone are simply too high (speaking of several man-years). Actually, I'm already in process of negiotating w/ other hw vendors that have no problem w/ giving us the necessary specs (and btw using standard interfaces like usb on the backplane).

 

Looks like yet another case where NI shot itself out of the business again.

(you'll find more in the forums)

 

NI is big on the "out of the box" experience and having everything work as expected.

Point is, it does not work as expected (as soon as you the tiny borders of the LV blackbox). Their "linux support" is basicly just a fraud - practically non-existing. They just use free code, w/o respecting the rules (in some cases even doing direct license violations).

 

Having the cRIO turn into a completly open source platform would probably turn into a big headache for them. 

Why so ? Actually, their proprietary, binary-only kernel modules are a headache for any user (most maybe just dont know yet). For the USB products NI already has the heachache of having kicked themselves out of the Linux market.

 

If some competitor really want to make cheap replacement products (eg. crio modules), they just reverse-engineer the wire protocol on the backplane. For them, that would be a viable investment - for a NI customer, it's not.

 

Ergo: NI isn't hitting competitors, but their own customers instead.

 

In fact, opening up their drivers and module protocols, it would make it *much* easier - for both sides, NI and customers.

   

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

I think you can buy the wire protocol to the modules.

 

 

 

0 Kudos
Message 7 of 10
(3,627 Views)

@nanocyte wrote:

I think you can buy the wire protocol to the modules. 


Hmm, the page doesn't tell anything about that.

 

But the term 'internal only' looks like you'll only get that w/ NDA. That in turn would be pretty useless for us, as we need to implement it in the kernel (eg IIO infrastructure), which in turn requires publishing under GPL, thus we'd have to break the NDA.

 

So, unless NI doesn't open up their wire protocol, we only have two options:

a) reverse engineer (w/o ever singing anything to NI)

b) drop NI from the table

 

Guess what's going to happen. 

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 8 of 10
(3,622 Views)

The support page links to discussions about what you get. I don't know if there's an NDA. I was able to put the product in my cart without one. I'd guess more likely some sort of agreement you wont make a CRIO card that blows up other people's chassis. 

0 Kudos
Message 9 of 10
(3,600 Views)

NI folks already told that you'll have to keep it secret.

 

Means: I cant even publish driver sources, as I would publish their precious secrets that way, but that is required by gpl.

 

IOW: their products remain unusable for Linux applications.

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