Hello all, this is what I did to get the latest versions of EMCApplication 
and Machinekit working. This is VERY hacked, probably VERY incorrect, but I 
could not find these instructions anywhere else, so HTH. 

Context: 
1. CNC setup: Beaglebone AI (ARMHF), Debian Buster, Mesa 7i76e board
2. Working - I am interested in mkwrapper / remote connectivity, as I am 
running my own UI, I have not tested Axis / Gmoccapy, or any other local 
ui. 
3. Gist with patched files here: 
https://gist.github.com/adragomir/eb9ff865bb376392fb0e84e3dfff55e1
4. Repo with binary files here: 
https://github.com/adragomir/machinekit-hal-emcapplication-saved

Machinekit-hal Build
================

- Tried building from source, but it always hung / took a lot of time (ran 
into issues with the Docker build, so I tried building on the Beaglebone AI)
  - cmake-3.22.4 has to be built from source and installed
  - The main problem that I found is that creating the venv tried to 
install the cmake pip package, which, for my Linux version, did NOT have 
binary packages, so the build ended up trying to build cmake 200 times. 
  - So, I built the pip cmake package once and created a binary wheel, and 
then patched the pip code to use this file instead of trying to rebuild 
cmake pip package every time (see Gist, see Repo for Wheel file)

1. Machinekit-hal packages
======================

- So, I tried using the machinekit-hal packages, latest available for 
bullseye here: 
https://cloudsmith.io/~machinekit/repos/machinekit-hal/packages/ (no buster 
packageS)
- I unpacked all packages with dpkg-deb into ~/source/extract
- I edited scripts and etc files to point all the paths into this dir

2. EMCApplication source code
=========================

- I ran into problems with the --with-hal option, so I hacked the 
configure.ac dir to point everything to the directory where I had unpacked 
the machinekit-hal packages
- Ran configure, make - (see gist for configure parameters)
- I copied all generated files (bin,rtlib,lib) into the extract source 
folder (~/source/extract)
- Then, I basically started trying to run halrun / halcmd, using 
environment variables that point everything to that directory (see Gist)
- Because I had used the bullseye Machinekit packages, the python modules 
were not linked correctly (Buster uses python3.7, not 3.9), so i ended up 
recompiling machinekit-hal as well, and copying the files around

3. Problems / work-arounds
- `.so not found` - `patchelf --replace-needed` until it worked
- mkwrapper - incompatible, a lot of changes needed inside it (see Gist)
- mklauncher - missing machinekit config module, but this is not really 
needed as I export the MACHINEKIT_INI variable 
- missing Python3 packages - either add to the PYTHONPATH, I pip installed 
or copied from the root directory in the `source/extract`
- Linuxcnc modules do not use the naming scheme, so they have to be loaded 
with the full path (see repo)
- probably others :(

4. Results
- the actual config that I used is in the repo. You can also see 
differences with what I had to do  in config from old machinekit to this 
recipe (files ending with '29' are for the new version)
- mklauncher / mkwrapper works
- A remote ui seems to "work" over haltalk / mkwrapper; it can power, jog, 
home, run MDI commands, run GCode files

-- 
website: http://www.machinekit.io blog: http://blog.machinekit.io github: 
https://github.com/machinekit
--- 
You received this message because you are subscribed to the Google Groups 
"Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to machinekit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/machinekit/922dc13b-ca18-48fb-ad08-db552d4340efn%40googlegroups.com.

Reply via email to