$500 to anyone who can port linux cnc and the qt gui to haiku with the mesa driver

it’s all I can afford right now, but for god sakes, anything has to be better than trying to use debian and ubuntu, the installer is completely brain dead.

if you want donors for Haiku, heres a chance, bring over useful software.

i lack the skills to port this but it appears most of the dependencies are met.

not sure about the real time kernel nonsense, but fairly sure that haiku has the proper thread priority schedule to make this work.

lmk of you interested

Cheaply paid for hours of work.

Qt’s GL support on Haiku is incomplete, so that should be fixed first.

can try to get more people involved, there’s plenty of machinists out there who hate dealing with linux.

if someone is willing to put a price tag on a complete port, have them reply here.

you don’t need open gl to run a milling machine

What about the viewport in the qt gui?

it’s a nice to have, but there’s a more current mesa with haiku x64, someone from dev team might be able to chime in

hardware drivers in question

http://www.machinekit.io/docs/drivers/hostmot2/

The version of mesa is irrelevant here.

Looking at the source code, it uses Qt, Gtk, Gtk+, PyQt. (Gtk and Gtk+ seems to be optional). This is a heavy task and roadbumps can hide behind every corner. They insist to use patched linux kernel, is that optional?

I would open an issue at HaikuPorts, link it here, so we can collect the informations / dependencies somewhere to see if it is actually possible to make this thing work.

The first missing dependency would be tirpc. It should be easy to port.

i don’t believe the real time kernel, is actually required, iirc it just requires pre-emptive threading model, which iirc haiku already has.

me personally, if I had the required skills, which I don’t, I’d use the tools we already have.

According to the documentation you do need a kernel with realtime capabilities under Linux:
http://linuxcnc.org/docs/2.8/html/getting-started/system-requirements.html#kernel_and_version_requirements

I doubt that the Haiku kernel fulfills realtime requirements, maybe somebody knowledgeable about the Haiku kernel could shed a bit of light on this topic

afaict, the linux rt kernel, isn’t real time. a true real time kernel uses a hardware watch dog thread interrupt.

I’m not sure modern x86 CPUs even have that feature. Haiku does have thread preemptive capabilities in it’s scheduler.

i think it’s also available in the posix pthread layer iirc.

from a quick read, supposedly you can run and build linux cnc on non patched kernels.

they basically just want thread preemption and priority. the linux rt scheduler isn’t really that different from the baseine haiku scheduler iirc

Any other options from this link?

Linux CNC is the only production proven software out there.

I’m willing to debug on one of my machines, I’ve got a estop I can comnect to the limit switches, we can run the machine without tooling, soindle powered down with a endless loop to get started.

The linux RT kernel is real time (it’s in the name). And of course x86 CPUs use an interrupt to switch between threads. That’s pre-emptive multitasking and is not related to realtime.

You can write realtime software with or without preemptive multitasking.

What does realtime mean? It just means you have guarantees that some threads will be able to run at a given time, no matter what else is happening. It doesn’t say anything about how you guarantee that. In Linux, the RT patches are focusing on a few places where it’s known that the kernel can sometimes fail at this. For example, it may be stuck on disk i/o or something like that.

Is it needed for 3D printing? Maybe, maybe not. It depends what kin of device you are driving and how you drive it. If you are just sending commands over a serial link, you probably don’t need a realtime kernel. If, however, you are directly controlling motors and actuators, you probably need it.

On Haiku, you can set threads to “realtime” priorities, but I wouldn’t say there are strong guarantees. Don’t trust your hardware on us if you are directly driving motors and things like that.

2 Likes

in the traditional sense of realtime, you have a hard loop interrupt driven specifically by a external pin on the cpu clock. as is the case with motora 68hc11 mcu, I know the old isa and some pci hardware did uave fixed hardware interrupt registers that were in fact assignable at the bios level.

yes, linux cnc would be driving real motors on real machines, the good news is that a few roller switches a
in the servo amplifier enable cirxut can disable those servos if need be and a sime ink pen atrached to a spindle can sraw endless circles.

the debian prebuilt linux cnc iso images are somewhat preconfigured, but they are very difficult to work and install is buggy.

and it’s a multiuser system, I don’t know about you, but I’m not sharing my mill with other people.

this is a great use case for haiku

1 Like

Now lets elaborate this a bit more. I don’t know anything about linuxcnc but i do have experience with CNCs (but only older ones). The CNCs i know werent really driven by the attached computer. The computer only sent the G-code program on serial port to the cnc, the program would run in this case on the CNC’s own controller, so the desktop computer does nothing during this time. Is this how linux cnc works?

OR

I can imagine an pimped up analog lathe, where the handle bars got replaced by stepper motors and the motors driven by a desktop computer. Is this how linux cnc works?


First one obviously don’t need realtime kernel, but the second one should. We don’t want distorted fillets because the machine was busy with compiling the different official 3d accelerated gpu driver sources. We demand perfect circle-interpolations!

1 Like

Linux cnc controls machine motion, via parallel port, add in PCI card etc, and it’s driving those motors via dc voltage, step/dir etc. Stepper motors, DC and AC servos, most the cards are driving controllers which actually do the control of the servos and steppers, but Linux CNC is issuing the commands to do so, often with some form of encoder feedback.

and I am using linux cnc with a hurco km3 mill and a Trionics Handyman mill both with a controls Refit

MiniCNC and Haiku https://youtu.be/ZSN9zo-NR9Y

2 Likes