Setup for Mac OS X is similar to Linux, with a few extra hurdles:
- You’ll need to download and build from the source; there’s no packaged installer available (i.e. similar routine to “The Hard Way” in the Linux instructions).
- To do this, you’ll need to have XCode installed (the currently-available version requires OS X 10.7 Lion or 10.8 Mountain Lion), as well as the supplementary Command Line Tools (Preferences→Downloads).
- Automated startup is more involved.
cd lcdproc-0.5.6
Do not build the software using the exact Linux procedure — we need to make some small changes along the way. The first step is the same though. From the command line, in the source folder, type:
./configure
Then edit the source file for the Matrix Orbital driver:
nano server/drivers/MtxOrb.c
(Or you can use vi, emacs, or whatever the editor of your choice.)
Look for this line (around line 387):
Look for this line (around line 387):
p->fd = open(device, O_RDWR | O_NOCTTY);
Replace this with the following two lines:
p->fd = open(device, O_RDWR | O_NONBLOCK); #undef HAVE_CFMAKERAW
The rest of the build process is then similar to Linux:
make sudo make install
Configuration is then similar to the Linux directions, with the following changes:
- dmesg won’t show the USB device name. Instead, you’ll need to root around in the /dev directory to find the device name; e.g. start with:
ls /dev/tty.usb*
Compare the output with the device first disconnected, then connected, to help track down the correct device name, and edit the Device= line in LCDd.config to match.
First, edit the lcdproc configuration file so that it’s respawn behavior doesn’t interfere with the system’s own facility:
- The LCD drivers are located in /usr/local/lib/lcdproc/ by default; edit the DriverPath= line in LCDd.config to match (and remember to include the trailing slash).
- The LCDd daemon is located in /usr/local/sbin by default.
- The lcdproc client is in /usr/local/bin (and must be run as root — use “sudo” during initial configuration/testing).
First, edit the lcdproc configuration file so that it’s respawn behavior doesn’t interfere with the system’s own facility:
sudo nano /usr/local/etc/lcdproc.conf
Look for this line, which is commented out by default:
#Foreground=true
Remove the initial # character to enable this line, then save the changes to the file.
It’s slightly awkward…this line should be enabled in lcdproc.conf (which runs in the foreground), but disabled in LCDd.conf after testing (the background daemon).
One more change. Look for this line in lcdproc.conf (around line 77):
It’s slightly awkward…this line should be enabled in lcdproc.conf (which runs in the foreground), but disabled in LCDd.conf after testing (the background daemon).
One more change. Look for this line in lcdproc.conf (around line 77):
HighLoad=1.3
If you’re on a multi-core system, increase this number to suit. For example, on a 4-core iMac, I’m using a 4X-ish larger value of 5.0.
This sets the processor load threshold at which the LCD backlight will blink (to indicate heavy work). At startup and login, a lot of processes are launched and may temporarily trigger this blinking if set too low.
This sets the processor load threshold at which the LCD backlight will blink (to indicate heavy work). At startup and login, a lot of processes are launched and may temporarily trigger this blinking if set too low.
Next, we need to create plist files for both programs. From the command line:
nano net.omnipotent.LCDd.plist
Copy and paste the following into the new file:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.omnipotent.LCDd</string> <key>ProgramArguments</key> <array> <string>/usr/local/sbin/LCDd</string> </array> <key>KeepAlive</key> <true/> </dict> </plist>
Then a second file:
nano net.omnipotent.lcdproc.plist
Containing:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>net.omnipotent.lcdproc</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/lcdproc</string> </array> <key>KeepAlive</key> <true/> </dict> </plist>
Set the ownership of both of these files to “root,” then copy to the system daemon directory:
sudo chown root:wheel net.omnipotent.LCDd.plist sudo chown root:wheel net.omnipotent.lcdproc.plist sudo cp net.omnipotent.LCDd.plist /Library/LaunchDaemons sudo cp net.omnipotent.lcdproc.plist /Library/LaunchDaemons
On the next reboot, the LCD should begin cycling status information per the lcdproc configuration.
If there’s no response from the LCD, it may be the wrong device name in the LCDd configuration file. Double-check the value there against the contents of the /dev directory, and test by running LCDd from the command line.
If there’s no response from the LCD, it may be the wrong device name in the LCDd configuration file. Double-check the value there against the contents of the /dev directory, and test by running LCDd from the command line.
Text editor powered by tinymce.