SilverstoneTek LC16M

From MythTV Official Wiki
Jump to: navigation, search

The SilverstoneTek LC16M

SilverstoneTek LC16M

Drivers

It is recommended to use lirc CVS as of 19/06/2009, as this removes the requirement to run two copies of lircd. This feature will be included in lirc 0.8.6.

LIRC

Versions 0.7 and 0.8.1 of LIRC have included a working driver for the iMON_PAD remote control used in most of the Silverstone cases. It is listed under the USB remote controls. In order to use the "PAD Controller", a pressure sensitive mouse cursor control, as a directional pad use the patch from here under the first section entitled lirc-imon-pad2keys.patch. He also provides a sample lircd.conf with all 58 keys of the iMON_PAD. Version 0.8.1 does not require the 2.6.16 patch he has listed as the changes should already be made.

Click Wheel

The case has a front click wheel which is integrated as part of the iMON setup. In order to use the wheel, make sure you have the remote control working properly and add the following to you lircd.conf file,

begin remote

  name  ClickWheel
  bits           24
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  post_data_bits  8
  post_data      0xFF
  gap          131993
  toggle_bit      0

      begin codes
          WheelCC                  0x010000
          WheelCW                  0x000100
          WheelClick               0x000008
          # alternate code, 0x000008 does not seem to work for me (SilverstoneTek LC16M silver), this one does:
          #WheelClick               0x000001
      end codes
end remote

VFD

The latest LCDproc driver as of 0.5.0 has support for the VFD display built in! Configure using ./configure --enable-drivers=imon

Front Media Buttons

The front buttons work as a keyboard and so need to be mapped using an .xmodmaprc file in the home directory of the user running X. For most this will be the mythtv user, so include this in your /home/mythtv/.xmodmaprc file (or create it if it doesn't exist), (note this is what I have, I don't need volume control, so you will have to change that part if you do.)

!Skip Back
keycode 144 = Left
!Skip Forward
keycode 153 = Right
!Stop
keycode 164 = Escape
!PlayPause
keycode 162 = Ctrl+P
!VolUp
keycode 176 = Up
!VolDn
keycode 174 = Down

Some help in customizing this file to your own needs can be had here.

Front Power Button

This is rather general, but since I've got this going for my setup I figure I'd put it here. Since MythTV lets you shutdown through the menu system I've changed the behavior of the front panel to kill mythfrontend as a crash/hang fix which will improve the "WAF/GAF". In reality what I have it do is kill Xorg, which will kill mythfrontend, mplayer, xine, etc. All in one swoop, in case any of them crash.

I run Debian, so this may be in a different location, or may be managed differently,

#!/bin/sh
# /etc/acpi/powerbtn.sh
# Kills MythTV frontend when the power putton has been
# pressed.

if `ps -A | grep -q 'mythfrontend'`
then
        while `ps -A | grep -q 'mythfrontend'`
        do
                echo "mythfrontend still running!"
                killall mythfrontend
                killall Xorg
                sleep 1
        done
fi

15c2:0036 on Ubuntu 8.10 via LIRC CVS

Important.png Note: This partially applies for the current Lirc CVS, due to change in the handling of this device. Step 14 and onwards is definitely not required.

These are roughly the steps I followed to get this cases Imon device working with vfd and remote. Most of these steps are taken from different forum posts, the best being [1].

1. make sure you have a 15c2:0036 (run lsusb)

2. mount usbfs: To temporarily mount usbfs:

sudo mount -t usbfs none /proc/bus/usb

3. run cat /proc/bus/usb/devices and you should see that usbhid is utilizing 15c2:0036

4. stop usbhid from stealing this device by adding this line to /etc/modprobe.d/usbhid

options usbhid quirks=0x15c2:0x0036:0x0004

and then run:

sudo depmod –ae
sudo update-initramfs –u

I also chose to reset my machine at this point

5. cat /proc/bus/usb/devices and you should see that nothing is utilizing the device. If usbhid is still present you need to retrace your steps, or alternatively, turn off usbhid (if you don’t need to use a usb keyboard or mouse). However you can not continue past this point if usbhid is still controlling the device.

6. get build stuff. I can’t remember all the tools I needed to grab but if something fails in the build process read the description and grab it too. This might be enough:

sudo apt-get install cvs build-essential automake

7. get latest CVS

cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login

just press enter for the password and at the next command type:

cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc

8. cd lirc and run ./autogen.sh (make sure there are no errors or missing components)

9. Run ./setup.sh and select Driver Configuration > USB Devices > Soundgraph iMON PAD IR/VFD. Then select Save configuration & run configure.

10. Run sudo make, and sudo make install

11. Unfortunately this will install the devices to a location that is ignored by Ubuntu. Replace the devices installed via apt with the new ones with these lines:

sudo cp /lib/modules/`uname -r`/misc/lirc* /lib/modules/`uname -r`/kernel/ubuntu/lirc/lirc_imon/.

12. add the following to /etc/modules

lirc_dev 
lirc_imon

and restart your machine.

13. run dmesg and make sure that the version of lirc_imon matches the current CVS version and not that of your package management system.

14. do a ls /dev/l* you should see 2 lcd devices and 2 lirc devices. If you don’t retrace your steps.

15. stop the install LIRC service: /etc/init.d/lirc stop

16. run:

/usr/local/sbin/lircd --driver=default --device=/dev/lirc0 --pidfile=/var/run/lirc0.pid --listen=8765 
/usr/local/sbin/lircd --driver=default --device=/dev/lirc1 --pidfile=/var/run/lirc1.pid --output=/dev/lircd --connect=localhost:8765

17. for further setup instructions (such as getting the thing load when you reboot your machine) check out:

[2]