04 April 2018
Quick & dirty installation instructions:
$ sudo dpkg-reconfigure tzdata
)Install XQuartz on macOS (homebrew: $ brew install xquartz
), and enable “indirect GLX”:
defaults write org.macosforge.xquartz.X11 enable_iglx -bool true
Run machinekit:
$ machinekit
MACHINEKIT - 0.1
Machine configuration directory is '/home/machinekit/machinekit/configs/pru-examples'
Machine configuration file is 'pru-stepper.ini'
Starting Machinekit...
io started
emc/iotask/ioControl.cc 768: can't load tool table.
halcmd loadusr io started
task pid=8896
emcTaskInit: using builtin interpreter
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Evntually a window will appear (on the Mac) prompting you to choose a configuration. I dug down into the sample configurations for pru-stepper
. In this screenshot, I’ve already selected it on a previous run, and it prompted to copy it to my home dir. Now I choose that copy (under “My Configurations”).
If you get errors like this:
$ machinekit
...
io started
emc/iotask/ioControl.cc 768: can't load tool table.
halcmd loadusr io started
pru-stepper.hal:37: insmod failed, returned -1:
rtapi_app_main(hal_pru_generic): -1 Operation not permitted
You need to fix the misconfigured pru-stepper.ini. Find the line that begins with CONFIG=prucode
, and change it to the following (this seems to work with machinekit images from Robert C Nelson as of 2018-03-25).
CONFIG=prucode=/usr/lib/linuxcnc/rt-preempt/pru_generic.bin pru=1 num_stepgens=3 num_pwmgens=1
You’ll have to quit and/or relaunch machinekit after making that edit. After the edit is in and launch machinekit again, you should see this:
And that’s all I got. For now. Next up is to adjust the .hal
file for my specific servo connections. But the hardware is all at the shop, and I’ve been doing this remotely.
Note: This should not be necessary, but to enable root to use X (see this SO answer):
After logging in with ssh -Y
to regular user:
$ xauth list | grep unix`echo $DISPLAY | cut -c10-12` > /tmp/xauth
$ sudo su
# touch .Xauthority
# xauth add `cat /tmp/xauth`
hal config can use 8xx and 9xx numbers to refer to pins. Not sure where that goes, but I’m guessing the lines that look like this:
setp [PRUCONF](DRIVER).stepgen.00.steppin 0xA2
setp [PRUCONF](DRIVER).stepgen.00.dirpin 0xA3
Can be change by changing the hex values 0xA2
to some 8xx or 9xx value, etc.