Help me understand: relation between LinuxCNC and Linux OSs.

27 May 2019 14:34 #135069 by clunc
I'm stuck at Ubuntu 12.04 LTS, which went EOL in 2017. (I've been getting regular security warnings about the need to upgrade.)

I started out with LinuxCNC 2.4 on Ubuntu 10.04 LTS as I recall, and it all worked, but again as I recall, 12.04 was already pretty long in the tooth when I upgraded to 2.6/12.04.

Somewhere in the back of my mind I seem to think that I've been waiting for a LinuxCNC paradigm shift (to "machinekit"?), but among 2.7 versions offered (thank you, developers) I see the familiar RTAI (parallel-port) and RT-PREEMPT (FPGA-card/Mesa) bases. (I am indebted to this reply for that insight.)

However, what I do see , which is unfamiliar, are clues that [favored?] development?/distribution? platform for LinuxCNC changed from Ubuntu to Debian--in the sense that the 2.7 branch is available on more recent branches of Debian (Stretch/9, released 2017) than on Ubuntu (Precise/12.04, released 2012).

[I'm having difficulty figuring out what I want to ask. If the following questions seem un-sane, please substitute freely.]
Q1. Is a real-time-version of LinuxCNC for a "more recent" Ubuntu comtemplated?
Q1.1. As it seems that availability of LinuxCNC on "latest" Linux OS versions requires the availability of a real-time-version of that OS kernel, what does it take to produce the latter?
Q1.1.1. What's the holdup? ;^)

Q2. Will a Debian-based version install and run under a "suitably recent" version of Ubuntu--because (it is my understanding) "Ubuntu is built on Debian?"
A2. No. [I'll take this one...]
It was an ignorant question, answered by ruminating on the distribution tables at buildbot ; for example, the following entry:
Precise (realtime with RTAI)
architectures: i386

means, "if you want to run LinuxCNC in Ubuntu, you will need to install the "realtime Precise(12.04) kernel built with RTAI which will only run on i386 architectures." A different pkg allows simulation on general, 64-bit kernels.

That said then, "if you want to run LinuxCNC on the latest-supported 64-bit Linux, you'll need to install the Uspace version of Debian Stretch/9 first." (More options and how-to on .)

"Machinekit" is listed as a "See also" in the Wikipedia article on LinuxCNC . Suddenly, I recall that machinekit was suggested as a way to free LinuxCNC installation from the requirement to produce a RT version of a current Linux kernel--but see note above.

Q3. Is there collaboration between Machinekit and LinuxCNC development?

Finally, I realized that have competing goals. I want to keep my OS current in order to "stay safe", but I "need" to access my LinuxCNC machine from my local network, so it's 'online' in that sense, and gee-it-would-be-nice-if I could do-some-stuff while sitting at the LinuxCNC machine, waiting for a job to finish. That last means there's going to be a temptation to install latest cool-apps--probably whacking LinuxCNC's response time--which of course I'll never bother to check again after the initial install...

"How about I promise" to "just" keep the LinuxCNC RT environment "pure"? Can I have a version that will run in the latest-model/most-secure OS? :^)

Thank you for reading. And thank you for the support. And for the particular brilliance of LinuxCNC.
The CNC Zane

Please Log in or Create an account to join the conversation.

27 May 2019 18:20 #135077 by gambaf
I think one key issue that needs clarifying is what brand of realtime kernel are you looking to use - RTAI or RT_PREEMPT?

Please Log in or Create an account to join the conversation.

27 May 2019 18:29 #135079 by gambaf
"RTAI (parallel-port) and RT-PREEMPT (FPGA-card/Mesa)".
please note that this isn't necessarily true: depending on your needs from the CNC machine, and depending on the hardware you use for your PC, a rt-preempt may very well work with a parallel port configuration.
I'd suggest checking this, as using the rt-preempt kernel will allow you to use much more up-to-date kernel versions.

Please Log in or Create an account to join the conversation.

27 May 2019 20:15 #135086 by rodw
The change of the distro was before my time but driven by licensing requirements. Strict interpretation of the GPL license by Ubuntu meant that Linuxcnc was unable to continue to create ISO based on that distro.

As various old distros have gone end of life, its become increasingly harder for the dev team to support RTAI for par ports as prerequisites moved repos or were retired. I think they finally got it going again recently.

For modern hardware PREEMPT_RT is a better option but it won't be usable on older hardware.

If you learn to compile from source, you can basically run from any distro you want if you first patch the kernel with a real time variant.

Please Log in or Create an account to join the conversation.

27 May 2019 20:28 #135087 by clunc
My preference is to be in a position to keep the underlying OS 'recent' so that security patches can be duly applied. The older the OS, the less likely it is to see patches developed and the more likely it will be to have undiscovered holes discovered by perps.

It may be that Everyone But Me Knows That's Stupid, and if so tell me and tell me why. I do have the LAN behind a firewall (behind a firewall), but of course there's always a danger I'm inviting something in which will savage and ravage the local network anyway... I develop my stuff in one, comfortable room and scp it to the noisy, work room. If the CNC computer has to be off the network then I'll has to resort to sneakernet.

I don't have a preference for RTAI or RT_PREEMPT, which is to say, in pursuit of the Prime Directive (to keep the OS patchable), if I have to buy a Mesa card or move to one RT kernel or the other, I'll do it.

In my case, I had a ChineNC that came with an interface that had what looked like an ancient PC gameport connector and some goofy interface: NG-something as I recall. (Later discovered the method behind the madness: apparently the gameport spec includes 5V, whereas the parport does not. Who knew?) I stripped it out, bought a "Mach3 controller board" from ebay and rewired it for parallel port operation--having to supply a USB jumper alongside to get 5V to the controller from the PC--with LinuxCNC.

Please Log in or Create an account to join the conversation.

27 May 2019 20:34 #135089 by rodw
Well you could try the Linuxcnc stretch PREEMPT_RT distro here

The only caviat is that on old 32 bit hardware, I found this unusable due to latency. This is less important with mesa hardware as it does not require the base thread for step generation.

Please Log in or Create an account to join the conversation.

27 May 2019 21:11 - 27 May 2019 21:13 #135095 by clunc
Thanks Rod.

It kind've still begs the question: "What's the recommendation for straightforward migration through OS upgrades for LinuxCNC users?"

Another way to put that might be: "What's the limiting factor which determines WHETHER an OS upgrade can be done or not?" (At the moment, anything other than a parallel-port solution for me would require another rewire of my machine, meaning finding another intermediate interface box to translate between a different type of computer port and what the CNC machine expects as inputs.)

Coincidentally I redd your pitch just today in another post for learning to compile from source, and how free it's made you (and--although you didn't say it--how far above the rest of us you soar, in the sense that you are not as tied down waiting for things to happen, but now have some powers to actually make things happen--Use it Wisely, Okefenokee).

You wrote:
> If you learn to compile from source, you can basically run from any distro you want if you first patch the kernel with a real time variant.

Indeed would I be able to do that, or would I still be waiting on someone to CREATE a real-time variant for me to patch with?

Like probably most here, "I just want to get back to work." ;^) and I loathe the idea of having to spend time learning something else yet again SEYA. "Yes, yes," I agree, "It will be great to be on the other side of this Thorn Patch, but I'm still scratched up from the last three or so."

I think my current situation, when I installed LinuxCNC last, is that I had to rustle up a 32-bit machine because that was the only Ubuntu offering at the time.

Re: Q3 MachineKit/LinuxCNC
When I heard the first noises about MachineKit I was under the impression that it was going to install in a general-issue kernel and "just handle" all the low-level real-time stuff for LinuxCNC on its own. But Andy clarifies that MachineKit is a fork of LinuxCNC, and a diverging one at that, here .
Last edit: 27 May 2019 21:13 by clunc.

Please Log in or Create an account to join the conversation.

27 May 2019 21:38 #135096 by rodw
The limiting factor is you are 3 versions behind the current release version which itself is about 3 years old.
This is further compounded by the fact your OS version has well and truly gone past end of life.
But to catch up, its possible that your old hardware will become a limiting factor.
So be content with what you have or work towards bringing your environment up to speed as its not viable for the OS maintainers or Linuxcnc to support your environment any longer. This has much more to do with the distro than Linuxcnc itself.

When I installed Linuxcnc, I needed the PREEMPT_RT for Mesa hardware and I was encouraged by forum members here to compile the kernel for Linux Mint. Master branch was was also required for my gantry machine. Having got PREEMPT_RT running, it was a small step to Compile Linuxcnc from source, Shortly afterwards, somebody wrote a complete how to here on the forum. This is now largely defunct with the subsequent release of the Stretch ISO. Having said that, I much prefer Mint. Becasue I have installed from source, most of my time has been spent running experimental branches. Firstly with the ever patient Dewey Garrett trying out his external offsets build that is now in master branch but sadly without the plasma component he and I spent many hours trying to get working. But Dewey's external offset branch is now embedded in different ways in the plasmac plasma build on an external repository maintained by PhillC.

So in answer to your question, by learning to compile from source has allowed me to quickly change the branch of LinuxCNC I run or quickly upgrade to the latest version whenever I want in a few minutes and upgrades can take a few seconds.

Finally, let me say that there are so many added features in V 2.8 over V 2.7, I would never consider running the earlier versions.. I just don't have the history with Linuxcnc as a long time user. I might add, I never wanted to go down the path I had, all I wanted was a working machine with the least effort but I am very pleased I took the time to do it.

Please Log in or Create an account to join the conversation.

27 May 2019 21:47 #135097 by clunc
Doggone well-said.

> ...its possible that your old hardware will become a limiting factor.

But it's "only" N-years old! I get it: love what you've got.

I'm floored by your comment about V2.8 and 2.7 because I would never have expected it.

Taken with Big John's comment elsewhere that V2.8 ought to run where 2.7 is running--modulo my penchant for misunderstanding, I probably will take a look. Of course, completely contradicting an earlier claim that "I just want to get back to work."

Thanks all. Good guidances.

Please Log in or Create an account to join the conversation.

28 May 2019 00:04 #135099 by tommylight
It seems to me you have read a lot of articles about OS security on the net, pertaining that both windows and Linux are at the same level and it depends on what and how you use it. In that case let me put your mind at ease, that is all B.S. and mostly financed by Microsoft since the days of Ubuntu 10.04 that gained a lot of users due to "it just works". Your " firewall behind a firewall" is much more at risk than the 7 years old Linux.
To make it simple, security of the operating system from a normal users stand point is extremely good for Linux and extremely bad for windows, and it is going to remain as such for a very long time.
As for Linuxcnc, as other members have suggested, give yourself about 2 to 4 hours to learn how to compile it and you have freed yourself from the "distro choice mess" that GPL3 made, and use almost any distro to run your machines.
Personally, I still use a laptop with 10.04 with 2.7 version of Linuxcnc, Debian wheezy with 2.7 for industrial retrofitted machines, Debian strech with 2.8 for retrofits lately and Mint on most plasma machines with 2.8 retrofitted or build.
I still have a linux server on a pentium 2 at 333MHz running for 16 years, last update was in 2008, never went down, it has a fully fledged router/ids/filtering/ etc/etc for 228 users. Luckily the rules are updated automatically.

Please Log in or Create an account to join the conversation.

Time to create page: 0.107 seconds
Powered by Kunena Forum