Mythdora 10 / MythTV + Antec Fusion 430 VFD LCD + lircd + LCDd

Written by max on 2009-11-22

Problem

This guide is how to setup the Antec Fusion 430 Case to work with Mythdora 10 and MythTV. I found a lot of guides on how to setup the drivers, but they were all out of date.

Pieces

There are three things you need to get running :

  1. lirc_imon kernel driver
  2. LCDd daemon
  3. mythlcdserver daemon

All of these things came installed w/ Myth and didn’t require any additional patching or compiling.

To see the exact device we’re working with, run lsusb :

Bus 003 Device 002: ID 15c2:ffdc SoundGraph Inc. iMON PAD Remote Controller

This is all for the “Old” imon, or 1st generation, or “FFDC” version of the LCD device.

1. LIRC lirc_imon kernel driver

yum install lirc lirc-libs

Edit /etc/modprob.conf and add this line :

options lirc_imon display_type=1

The display_type=1 option was not documented well, but that was the key in making the module work. Without it I was seeing the following in the /var/log/messages after adding debug=1 to the above. I also was missing /dev/lcd0 even though the kernel driver was loading!

Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: found IMON device
Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: found IR endpoint
Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: found VFD endpoint
Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: device has no display
Nov 22 21:18:09 localhost kernel: lirc_imon: ir_onboard_decode: 1
Nov 22 21:18:09 localhost kernel: lirc_dev: lirc_register_plugin: sample_rate: 0
Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: Registered iMON plugin(minor:1)
Nov 22 21:18:09 localhost kernel: lirc_imon: imon_probe: iMON device on usb<3:2> initialized

That “device has no display” line is cured by the “display_type=1” option. /var/log/messages now looks like this (with debug=1) :

Nov 22 21:21:55 localhost kernel: lirc_imon: Driver for Soundgraph iMON MultiMedia IR/VFD, v0.4
Nov 22 21:21:55 localhost kernel: lirc_imon: Venky Raju 
Nov 22 21:21:55 localhost kernel: lirc_imon: imon_probe: found IMON device
Nov 22 21:21:55 localhost kernel: lirc_imon: imon_probe: found IR endpoint
Nov 22 21:21:55 localhost kernel: lirc_imon: imon_probe: found VFD endpoint
Nov 22 21:21:55 localhost kernel: lirc_imon: ir_onboard_decode: 1
Nov 22 21:21:55 localhost kernel: lirc_imon: vfd_proto_6p: 1
Nov 22 21:21:55 localhost kernel: lirc_dev: lirc_register_plugin: sample_rate: 0
Nov 22 21:21:55 localhost kernel: lirc_imon: imon_probe: Registered iMON plugin(minor:1)
Nov 22 21:21:55 localhost kernel: lirc_imon: Registering VFD with sysfs
Nov 22 21:21:55 localhost kernel: lirc_imon: imon_probe: iMON device on usb<3:2> initialized
Nov 22 21:21:55 localhost kernel: usbcore: registered new interface driver lirc_imon

At this point you should have a /dev/lcd0 and you can test it with this command :

echo "hello world" > /dev/lcd0

OK, now that we have a working kernel driver, let’s move on to the LCD daemon

2. LCDd Daemon

  1. yum install lcdproc
  2. Edit /etc/sysconfig/lcdproc/LCD.conf to look like this :
    [server]
    Driver=imon
    Bind=127.0.0.1
    Port=13666
    
    # Sets the reporting level; defaults to 2 (warnings and errors only).
    #ReportLevel=3
    
    # Should we report to syslog instead of stderr ? Default: no
    ReportToSyslog=yes
    
    # Sets the default time in seconds to displays a screen.
    WaitTime=5
    
    # User to run as.  LCDd will drop its root priviledges,
    # if any, and run as this user instead.
    User=nobody
    
    # If yes, the the serverscreen will be rotated as a usual info screen. If no,
    # it will be a background screen, only visible when no other screens are
    # active.
    ServerScreen=no
    
    # The server will stay in the foreground if set to true.
    #Foreground=no
    
    DriverPath=/usr/lib/lcdproc/
    
    # GoodBye message: each entry represents a display line; default: builtin
    GoodBye=""
    GoodBye=""
    
    ToggleRotateKey=Enter
    PrevScreenKey=Left
    NextScreenKey=Right
    
    [menu]
    MenuKey=Escape
    EnterKey=Enter
    UpKey=Up
    DownKey=Down
    
    [imon]
    Device=/dev/lcd0
    Size=16x2
    

    Note that you want the imon driver, not imon_lcd or any other one.

  3. Boot the driver
    service LCDd restart
    tail /var/log/messages
    dmesg | tail
    

At this point you should see the output of LCDd on the VFD display. If not, rinse and repeat.

3. mythlcdserver

Follow these directions on mythtv.org to turn on the LCD settings in MythTV from the front-end in the Appearance menu. Restart the front-end and it should launch mythlcdserver. If not, you can launch mythlcdserver as the same user as the front-end.