Skip to content

fix headless support - #4364

Open
sleepybishop wants to merge 1 commit into
LinuxCNC:masterfrom
sleepybishop:headless
Open

fix headless support#4364
sleepybishop wants to merge 1 commit into
LinuxCNC:masterfrom
sleepybishop:headless

Conversation

@sleepybishop

@sleepybishop sleepybishop commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Hello! This PR cleans up and refactors the headless compilation support in LinuxCNC.

There is a need to run LinuxCNC on constrained or strictly headless hardware where X11, Tk, and GTK dependencies are unnecessary overhead.

To bridge this gap, this PR modifies the build system to allow LinuxCNC to be built and run completely without GUI dependencies (using --disable-gui and --disable-gtk).

My intent for this work is to allow orchestrating LinuxCNC entirely via linuxcncrsh and other remote control methods I am currently developing but this first pass just allows for a lighter weight build on devices that don't need the graphical tools, docs or man pages.

Please let me know if you have any feedback or suggestions on this approach or the build system modifications.

@BsAtHome

BsAtHome commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

May be a good idea to have on the side. But it fails CI quite hard on the hostmot2 driver.

@sleepybishop sleepybishop changed the title build: add support for headless compilation add support for headless compilation Aug 8, 2026
@sleepybishop sleepybishop changed the title add support for headless compilation add headless support Aug 8, 2026
@sleepybishop

Copy link
Copy Markdown
Contributor Author

Thanks for looking, not quite ready for primetime. I'm working through the issues. Ill undraft the pr once I have it sorted.

@sleepybishop sleepybishop changed the title add headless support fix headless support Aug 8, 2026
@BsAtHome

BsAtHome commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

I'm not sure why you suddenly need to check for ld and objdump. These are bog standard from binutils. Or is there something I'm missing here?

@BsAtHome

BsAtHome commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Something else... You can only control part of the machine through linuxcncrsh. A large part is controlled/monitored via HAL. For full headless/remote you probably also need halrmt. You are lucky, because that was just "fixed" (bugs notwithstanding).

Still, I'm not sure that everything is in place for real headless operation. Might need quite a bit of extra work to fill any gaps. Anyway, as I said, it still is a nice option to have available. So keep up the work.

@sleepybishop

sleepybishop commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the feedback. To provide a bit more context, I have a fleet of machines with linuxcnc that I orchestrate remotely. I have a custom branch with a service that provides the equivalent of halrmt via a rest api, they also run a custom linuxcncrsh and a gcode streaming sink.

I'm in the process of extracting useful bits from my branch into upstream. I thought headless support would be a good next step but I accidentally pulled in other buildroot cross-compilation changes hence the ld/objdump stuff. The hostmot driver breakage was due to the inclusion of an old module I wrote that's not useful for upstream.

I've reverted all the changes that are not directly related to a light weight headless build.

@sleepybishop
sleepybishop marked this pull request as ready for review August 8, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants