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
$ 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.