Showing posts with label mythtv. Show all posts
Showing posts with label mythtv. Show all posts

Monday, March 01, 2010

The endless abyss of LIRC

I built a home made Tivo out of a computer running MythBuntu (a flavor of MythTV). It installs very easily and quickly if you buy decently supported hardware. If you are using hardware with questionable Linux support, or you want it to do something a little bit custom, it can be an endless time sink to set up. I marginally justify it by thinking I am learning Linux in general along the way.

There are several ways to use a remote control with MythTV, the most common uses LIRC. LIRC is a trashy little pain in the ass program, with outdated and incomplete documentation, that generally can be forced to work if you know what you are doing, or are willing to spend tens of hours trying. I appreciate the author's time in making this program. But honestly if it wasn't free, it wouldn't be worth my time and frustration to use. LIRC needs an IR dongle to receive the remote signals. I use the serial dongle from Iguanaworks.

Set up the receiver
This assumes LIRC is installed and runs by default on your Myth distribution. This is true for most of them. Shut down the computer, plug in the serial dongle, restart the computer.

Test the receiver is working
mode2 can be used to test that the receiver is recognized and passing a remote signals to the computer
sudo mode2 -d /dev/lirc0
Now use any old remote and press some buttons, while pointing it at the receiver. You should get a bunch of pulse/pause gibberish. If you do, all is good, press ctrl+c to break out of it. If you get nothing, you need to figure out why the computer can't see the receiver, or the receiver isn't picking up any signal.

Pick and record the remote codeset
Select a set of codes on the universal remote you want to use. I'd suggest using the highest DVR codeset number, of the same brand as the universal remote, so all keys are likely to be usable. I'm going to use Sony DVR component code 3210 on their RM-VL600 remote.

If lirc is running and you want to reconfigure it, first you have to kill it
sudo killall lircd
Now let's record a new remote control configuration, first change into the recording directory.
cd /etc/lirc
Now start the recorder.
sudo irrecord -n -d /dev/lirc0 lircd.conf.new
Follow the directions onscreen. After you are done, archive your old lircd.conf and make the newly recorded conf current.
sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd.conf.old
sudo mv /etc/lirc/lircd.conf.new /etc/lirc/lircd.conf

Verify the remote is being recognized
Use irw to test Lirc's interpretation of the remote keys. First restart lirc to load the new conf file.
To restart Lirc on Ubuntu 9.10 and up
sudo service lirc start|stop|restart
On older Ubuntu versions
sudo /ect/init.d/lirc start|stop|restart
Now type irw. Press buttons on the remote. You should get the name of the key, and the name of the remote echoed in the terminal. After you are satisfied, press ctrl+c to break out of irw. If you got nothing, lirc can't see the receiver, or wasn't able to load the new configuration file.

Map button names to a lirc event
Open up the lircrc file to see what remote keys are mapped to MythTV keyboard shortcuts.
nano /home/(username)/.lircrc
You should see an include statement for
/home/(username)/.lirc/mythtv
You need to open this file,
sudo nano /home/(username)/.lirc/mythtv
Verify the remote name and button names in lircd.conf are mapped to the correct MythTV keyboard shortcuts in this file. Edit lircrc as necessary. After you get done doing this, you need to restart lirc and restart MythTV frontend. Your remote should work now. MythTV no longer requires irexec or irxevent anymore, contrary to a lot of docs you will find on the intrawebs.


Other random notes
Check /etc/lirc/hardware.conf that DEVICE=/dev/lirc0

To see if lirc or irw is in the process list (ignore grep x in list)
ps aux | grep (lirc or irw)

Friday, May 29, 2009

MythTV MythBuntu tweaking

Here are some tweaks I made to my MythBuntu install, which is a distribution of MythTV


MythTV is similar to TiVo, but it is free to use, and free to change, and is much more powerful. It is usually easy to set up a basic install, but depending on your hardware, and the distribution you chose, and your special requirements, it can be fiendishly complex to get running to your satisfaction.



MythTV Volume Too Low


There are 4 places to look if the volume is too low when watching TV. First check in your distribution's volume control in the regular menus. This assumes you have the line out connected to your TV, rather than your headphone out. I suggest being sure your master volume and PCM are set to at least 90%. Then look in your MythTV menus (frontend setup>setup>general) and ensure both volume controls are at 90%. Next, SSH into your Myth computer and run


# alsamixer




Again set the master volume and PCM to at least 90%. So the volume change sticks on reboot, run


# sudo alsactl store




Finally while watching TV or a recording, try pressing F10 and F11 to change the frontend in-viewer volume control. Between this and the TV volume control, you should be able to get it loud enough, and equal to the live TV volume when watching through the TV tuner






Run The Schedule Grabber

The job that fills the TV listing is called mythfilldatabase. It initially grabs 14 days of listings, but if the listings are present, it only grabs tomorrows listings and the listings for the 14th day from now. This is to catch schedule changes at the last minute, and limit the amount of data required.

For some asenine reason, MythBuntu isn't set up to automatically run mythfilldatabase daily. So if you don't set it up, every day you will notice you have one less day of listings available. To set it up, go to

Utilities/Setup -> Setup -> TV Settings -> General -> 7th screen, enable "Automatically run mythfilldatabase". For "Log Path" I used "/tmp/mythfilldatabase.log".


Power Saving

Reduced power mode for the advanced audio output isn't enabled by default
# sudo -i

# echo 60 > /sys/module/snd_hda_intel/parameters/power_save
Gives a timeout of 60 seconds
# echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
Disables the controller, but will click on wakeup
# exit
You can cat these settings to see what they are, the first one 0 is disabled


Folding At Home

Even though it shouldn't be able to do this, FoldingAtHome can sometimes steal enough CPU cycles to make Flash videos in Firefox choppy. To start and stop it pre Ubuntu 9.10 run -
sudo /etc/init.d/foldingathome [stop|start|restart|status]
To start and stop it on Ubuntu 9.10 and after, run -
sudo service foldingathome [stop|start|restart|status]


Live TV Idle Timeout

If you forget to turn off live TV viewing, it can run for days with the television off. This increases your power consumption and decreases your hard drive life due to the way MythTV works, to be able to record a TV show from the beginning when you are in the middle of watching it. If you'd like live TV to stop after a period of inactivity, you'll need to add a database record.
First you need to find your mysql password
myth@myth:~$ nano /etc/mythtv/mysql.txt
Now sign into mysql
myth@myth:~$ mysql -u mythtv -p mythconverg
Enter Password:
Enter the initial settings (this will shut down the live TV front end on a box called 'myth' after 2 hours)

mysql> INSERT INTO `mythconverg`.`settings` (`value`, `data`, `hostname`) VALUES ('LiveTVIdleTimeout', '240', 'myth');
If you'd like to change it so all live TV frontends shut down after an hour, then you do an update
mysql> UPDATE `mythconverg`.`settings` SET `settings`.`hostname` = null, `settings`.`data` = '120'  WHERE `settings`.`value` = 'LiveTVIdleTimeout';
To see what you have set, do a 
mysql> SELECT * FROM `mythconverg`.`settings` WHERE `settings`.`value` = 'LiveTVIdleTimeout';
Exit when you are happy
mysql> exit
myth@myth:~$