LCDproc is the software used to drive either LCD or VFD Displays on your MythTV Case.
LCDproc consists of a server daemon called LCDd that drives the LCD/VFD, and a collection of client applications tells the server what to display. There are also a collection of driver stubs for different LCD/VFD's. The stubs talk to the driver for your specific display.
Many Home Theater PC Cases now include VFDs from SoundGraph's iMon family of VFD displays. These typically are connected to your system through a USB port.
The Driver for the SoundGraph iMon comes bundled with the latest LIRC package which most modern Linux distributions will have installers for. The driver name is lirc_imon.
Also check Imon for more info on imon.
Setting up LCDproc
The following assumes your home directory is /home/mythtv and uses the imon VFD driver as an example
You will need the following packages pre-installed on your version of Linux -GCC, Make, Automake, Autoconf,ncurses, lirc, kernel headers, cvs.
You will now have a directory called lcdproc-0.5.2. Now lets build the LCDproc package.
> cd lcdproc-0.5.4 >./configure --enable-drivers=all > make > cd shared > make > cd ../server > make > # run next command as root > make install
Create a directory called "lcd" in your home directory and copy the imon driver and configuration file to it
> cd /home/mythtv > mkdir lcd > cd /home/mythtv > cp lcdproc-0.5.4/server/drivers/imon.so lcd/imon.so > cp lcdproc-0.5.4/LCDd.conf lcd/LCDd.conf
Edit the LCDd.conf file to specify your driver as well as the driver path. Here are the snippets from my LCDd.conf
# The following drivers are supported: # bayrad, CFontz, CFontz633, CFontzPacket, curses, CwLnx, EyeboxOne, # g15, glcdlib, glk, hd44780, icp_a106, imon, IOWarrior, irman, # joy, lb216,lcdm001, lcterm, lirc,MD8800, ms6931, mtc_s16209x, # MtxOrb, NoritakeVFD, pyramid, sed1330, sed1520, serialVFD, # sli, stv5730, svga, t6963, text, tyan, ula200, xosd Driver=imon
# Where can we find the driver modules ? # IMPORTANT: Make sure to change this setting to reflect your # specific setup! Otherwise LCDd won't be able to find # the driver modules and will thus not be able to # function properly. # NOTE: Always place a slash as last character ! DriverPath=/home/mythtv/lcd/
Now load the driver for the iMon and check that works (your driver might be called lirc_imon2)
> modprobe lirc_imon > echo "Hello MythTV and good morning" > /dev/lcd0
"Hello MythTV and good morning" should now be on the display.
NOTE: This won't work for the Antec Fusion V2 Black which has a graphical LCD. If you have a recent version of lirc_imon try this:
> modprobe lirc_imon is_lcd=1
More recent versions may require the display_type option to be defined. Create /etc/modprobe.d/lirc_imon.conf with the following:
options lirc_imon display_type=1
Where the value of display_type is 1 for VFD, 2 for LCD. Then reload the module.
If you try and echo text to /dev/lcd0 you should get "Invalid Argument". Then configure and run LCDd. Text should appear on the display.
Here is the dmesg output after the driver has loaded
lirc_dev: IR Remote Control driver registered, at major 61 /usr/src/packages/BUILD/lirc-0.8.0/obj/default/lirc_imon//lirc_imon.c: Driver for Soundgraph iMON MultiMedian IR/VFD, v0.3 /usr/src/packages/BUILD/lirc-0.8.0/obj/default/lirc_imon//lirc_imon.c: Venky Raju <email@example.com> /usr/src/packages/BUILD/lirc-0.8.0/obj/default/lirc_imon//lirc_imon.c: imon_probe: found IMON device lirc_dev: lirc_register_plugin: sample_rate: 0 /usr/src/packages/BUILD/lirc-0.8.0/obj/default/lirc_imon//lirc_imon.c: imon_probe: Registered iMON plugin (minor:0) /usr/src/packages/BUILD/lirc-0.8.0/obj/default/lirc_imon//lirc_imon.c: imon_probe: iMON device on usb<1:3> initialized usbcore: registered new driver lirc_imon
Now Run the LCDd server as root with our config file
# /usr/local/sbin/LCDd -c /home/mythtv/lcd/LCDd.conf
You will now see the following message on your VFD
Starting LCD PROC from boot
Need some words on how to autoload the driver as well as how to start LCDd
Put the following line in the beginning of the init script below.
/usr/local/sbin/LCDd -c /home/mythtv/lcd/LCDd.conf
Now LCDd and LCDproc automaticly starting during boot.
Note: There are "init" files available in the source distributions "scripts" folder, for various different distros:
[user@host lcdproc-0.5.1]$ ls -al scripts/ total 72 drwxr-sr-x 3 1000 ftp 4096 Jan 17 14:24 . drwxr-sr-x 9 1000 ftp 4096 Jan 17 14:24 .. drwxr-sr-x 4 1000 ftp 4096 Oct 14 09:06 debian -rw-r--r-- 1 root ftp 1157 Jan 17 14:22 init-LCDd.debian -rw-r--r-- 1 1000 ftp 1134 Oct 7 00:02 init-LCDd.debian.in -rw-r--r-- 1 root ftp 2265 Jan 17 14:22 init-LCDd.rpm -rwxr-xr-x 1 1000 ftp 2237 Oct 6 00:02 init-LCDd.rpm.in -rw-r--r-- 1 root ftp 1195 Jan 17 14:22 init-lcdproc.debian -rw-r--r-- 1 1000 ftp 1172 Oct 7 00:02 init-lcdproc.debian.in -rw-r--r-- 1 root ftp 2270 Jan 17 14:22 init-lcdproc.rpm -rw-r--r-- 1 1000 ftp 2243 Oct 7 00:02 init-lcdproc.rpm.in -rw-r--r-- 1 root ftp 8672 Jan 17 14:24 Makefile -rwxr-xr-x 1 1000 ftp 222 Oct 6 00:02 Makefile.am -rw-r--r-- 1 root ftp 8375 Jan 17 14:24 Makefile.in
You need to copy the appropriate file to your init folder. i.e. on Fedora you would (as root):
# Copy file to init folder: [root@host lcdproc-0.5.1]# cp scripts/init-LCDd.rpm /etc/init.d/LCDd # Make the script executable [root@host lcdproc-0.5.1]# chmod 755 /etc/init.d/LCDd # Add the script to chkconfig [root@host lcdproc-0.5.1]# chkconfig LCDd --add # Tell the machine to start on boot: [root@host lcdproc-0.5.1]# chkconfig LCDd on
If you put your config file in a different directory other than
the default ( /usr/local/etc/LCDd.conf ) such as /home/mythtv/lcd/LCDd.conf
Edit the location of the configuration file in /etc/init.d/LCDd
Edit the following line in /etc/init.d/LCDd
Change it to match your new configuration directory
# Start the daemon now: [root@host lcdproc-0.5.1]# service LCDd start
Now go and configure MythTV's LCD server Mythlcdserver