The UHF of the film world.
Tuesday, August 29th, 2006
I am still using mythtv 18.1 with ivtv version 0.4.3 as my system is pretty stable. I hope you find all the information here useful, and if you have any questions feel free to email me (right bar). I just added a section on importing dvd's without using the myth transcoding daemon (mtd), see below.
Thursday, April 6th, 2006
MythArchive is a mythtv style plugin that uses the mythburn script to create and burn dvd's from recordings made with mythtv. This will replace the mythburn-ui plugin and will supposedly be an official mythtv plugin sometime soon. This code is now available under the mythburn project on sourceforge under the mytharchive directory. I haven't tried this, but supposedly this will work for burning more then just recorded media.
Sunday, March 5th, 2006
I just upgraded from ivtv 0.3.8 to 0.4.3, and so far, so good. I had to make a couple of changes.
1. Firmware placement and naming has changed for ivtv 0.4.1 and later, see http://www.ivtvdriver.org/index.php/Howto
2. In my startup scripts, lircd is run shortly after the modules load but this didn't want to work, so I had to move lirc startup to a much later point in the bootup process. This was initially done in order with S15ivtv, but I switched that to S99mylirc (get it?)
Monday, January 17th, 2005
I haven't really done much with my mythtv lately. IVTV driver v4.2 was just released a couple of days ago, but I'm still running on 3.8. Apparently there is some X driver problems with the 4.2 version. They are also working on full inclusion into the kernel, lots of progress has been made.
Tuesday, December 6th, 2005
Myth2ipod - A script you can add to your job queue to create feeds for your ipod.
Sunday, November 13th, 2005
The mythflix plugin was recently checked into the mythtv cvs tree, but you can grab the source at http://petrocik.net/mythtv/mythflix.html and compile it yourself. I am using this plugin on my mythtv and it needs a little work but it's functional.
Monday, October 10th, 2005
The mythburn program has been added, this is a new plugin for mythtv which allows dvd burning right from mythtv. (Paul who is a mythtv contributor wrote this). A few things are required for this:
1. You need the mythburn scripts available at http://mabene.icomedias.com/mythburn/mythburn.tar.gz. Set these up and get all the programs required.
2. Apply patch 295 to your mythtv tree. I did this against my straight 18.1 source and it worked fine.
3. Add mythburn to a myth menu, like your opticals menu as a plugin type, use mythphone in the menus as an example.
And the new mythburn plugin for mythtv is available as mythburn.tar.gz



I reccomend using Taiyo Yuden media for burning, they make the best media period. Beware though, there are alot of fakes. I buy from http://www.supermediastore.com
Debian MythTV with PVR-350 Installation and Setup overview
Setup:
PC with onboard ac97 audio, p3 1ghz, and 256 megs of ram (rambus, ugh)
PVR-350
Mythtv version: 18.1

So far this is plenty do to what I need.
I am using Debian 3.1 r0a with kernel 2.6.8-2-686. This has everything precompiled in that you will need, including the video4linux stuff. You will need to install the kernel-headers package for whatever kernel you use for the sources.
For my 300g disk which is storing all my video, I am using XFS. This is better suited for large files, so use JFS or XFS. This is on a 66mhz ide bus with dma turned on, you can speed it up even more with hdparm.


This is how my mythtv setup is cabled:
A. Coax out from cable box connected to coax in on the pvr-350
B. PVR-350 Video out via rca cable to tv
C. PVR-350 Audio out via rca cables to Line In on the sound card (note: you can buy converters for left/right rca to audio jack for this)
D. Sound card Line Out via converter to rca cables (same as in C) to tv
E. 9pin serial cable to RS-232 port on cable box to change channels

IVTV driver support is going into the 2.6.15 kernel, and work still continues on the video4linux merge. Work is going great! I'm still on 3.8 though..
I am still running with ivtv 0.3.8, but I'll be updating to 0.4 soon. Hopefully next summer I will redo my setup (new hardware) and all support will be in the kernel.

Here is a bunch of mods, addons, and configs I use on my mythtv. /config
lirc config file: lircd.conf
xine .lircrc: lircrc.txt
mythtv .lircrc: mythtv.lircrc.txt
ivtv init.d script: ivtv
XFree86 config file: XF86Config-4.txt
mythtv .profile: mythtv.profile
dvd import perl script: dvdrip.pl.txt
IVTV for the PVR-350
Download the ivtv kernel modules from http://dl.ivtvdriver.org
You will also need the xdriver, the latest version is 10.6, you can get this precompiled there.

You will need to do the firmware for the pvr-350, read the ivtv documentation.

You can then modprobe ivtv ivtv-fb

IVTV Driver settings on startup:
    1#!/bin/sh
    2# ivtv startup
    3PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
    4
    5#modprobe i2c-core
    6#modprobe i2c-algo-bit
    7#
    8modprobe tuner
    9modprobe msp3400
   10modprobe videodev
   11modprobe saa7115
   12#modprobe ivtv ivtv_debug=1
   13modprobe ivtv
   14modprobe ivtv-fb
   15#modprobe ir-kbd-i2c
   16#
   17# load lirc devices
   18modprobe lirc_dev
   19modprobe lirc_i2c
   20#
   21# lets load oss sound drivers
   22modprobe snd-mixer-oss
   23modprobe snd-seq-oss
   24modprobe snd-pcm-oss
   25
   26#for i in 0 1 2 3 16 32 224 ; do \
   27#    if [ ! -f /dev/video$i ]; then \
   28#        echo "Creating /dev/video$i" && mknod /dev/video$i c 81 $i && \
   29#        chmod 660 /dev/video$i; \
   30#    else echo "/dev/video$i already exists"; \
   31#    fi; \
   32#done
   33
   34# lets make some links and set permissions
   35ln -s /dev/lirc0 /dev/lirc
   36ln -s /dev/video0 /dev/video 
   37chmod 666 /dev/video* /dev/vbi* /dev/fb0 /dev/dvd /dev/ttyS0
   38
   39# lets add the codes in for the pvr350
   40#/usr/local/bin/input-kbd -f /etc/lirc/pvr350.conf 2
   41#sleep 2
   42# 
   43# startup lirc which has i2c support for hauppage remote compiled in
   44/usr/local/sbin/lircd
   45
   46#
   47# this is to start the decode buffer on the card initialized or we green/purple
   48# blocks in a pattern
   49# (due to driver limitations)
   50# this file is nothing more then a capture off the input, /dev/video0
   51cat /home/mythtv/startup.video >/dev/video16
   52#
   53# startup irexec which connects to lircd and waits for button presses config'd
   54# with irexec to execute commands
   55HOME=/home/mythtv sudo -u mythtv irexec &
   56#
   57#
   58/usr/local/bin/ivtvctl -u 0x3000
   59/usr/local/bin/ivtvctl -p 4
   60/usr/local/bin/ivtvctl -f width=720,height=480
   61#
   62# set the channel to 3 to get cable input
   63/usr/local/bin/ptune.pl -c 3
   64#
   65# lets get rid of the ghosting of images
   66ivtvctl -d /dev/video0 -c dnr_mode=0,dnr_temporal=0,dnr_spatial=0
   67# lets set volume
   68ivtvctl -y volume=65530
   69#
   70# ok so its not fully stable, if it times out lets reboot, auto monitor script
   71/home/mythtv/mythtv-logmon.pl &


I also set the options for the ivtv kernel module "ivtv_dynbuf=0". This allocates all the memory required for the module on startup, and supposedly helps on systems with low amounts of memory. IVTV 0.3.8 and up have dynamic buffer allocation turned off by default.

Copy the xdriver into its place:
# cp ivtvdev_drv_o /usr/X11R6/lib/modules/drivers/ivtvdev.o

Modify /etc/inittab, comment out:
1:2345:respawn:/sbin/getty 38400 tty1
and add
1:2345:respawn:/sbin/mingetty --autologin mythtv tty1

Here's my .profile:
    1PATH=/usr/local/bin:$PATH;export PATH
    2if [ -z $DISPLAY ];
    3then
    4        if [ `tty` == "/dev/tty1" ];
    5                then
    6                        startx
    7                        exit
    8                else
    9                        echo not starting X
   10                        export DISPLAY=:0.0
   11                fi
   12else
   13echo display not set
   14fi
   15set -o vi

I do not use a window manager, here is my .xinitrc:
/usr/local/bin/mythfrontend >>mythfrontend.log 2>&1

You will then need to set your X configuration file, here is my XF86Config-4.

Setup notes:
For NTSC, the set resolution is 720x480 and this CANNOT be changed. This display size IS too big for the tv, this extra portion is called overscan. This confused the hell out of me when I was setting up mythtv. You have to configure the backend like this (or export the mythbackend setup display to another box), but once this is done you can go into mythfrontend and change the gui size to fit the screen. When tv recorded through your pvr-XXX card is played back through it, the overscan is taken care of by the card.
I also noticed that with the bare X desktop with the checkered background, I have vertical color lines across the screen. This is normal, your video is not screwed up. When playing normal tv it looks fine.
Also, the decoder needs to be initialized for playback, so everytime you boot, you need to stuff some output to the card, otherwise all you're going to see if a pattern of green/purple lines and blocks. You can capture something raw off /dev/video0 via "cat /dev/video0 > startup.video" wait a couple seconds, hit control-C, then "cat startup.video > /dev/video16", or with the newer versions of the ivtv drivers there is mpeg stream included with the packages which automatically does this when the drivers are loaded.

MythTV
You will need to run a mysql server on this box or another one for mythtv. This is where it stores all it's configuration.

Download mythtv 18.1 sources as well as the mythplugins package. I would reccomend compiling from source as the prepackaged stuff for debian does not include mythgame. It is also more stable when compiled for your own box. You will need ALOT of libraries to compile this, so keep your debian dvd or whatever handy.

The program guide is black after exiting when using a pvr-XXX card, I found this patch on the mythtv-dev mailing list.
Remote Control
I grabbed the latest lirc source and compiled this, there is an option when configuring to pick the Hauppage remote. Compile and install this, then you can run lircd on startup. Easy. I have the grey remote.

Here is my .lircrc file, this is for general use and with xine. This goes in /home/mythtv as .lircrc
Here is my lircrc file for mythtv. This goes in /home/mythtv/.mythtv as just lircrc (no period).

Cable box
I am using Comcast digital cable which has a 9pin serial connector on the back of the box. I did not need to call the cable company to have them enable this, but I have read that some people did need to do this. I am using a straight through 9pin serial cable off the serial port on my computer, in conjuction with the dct program in the contrib directory of the mythtv source. This program is very self explanatory and easy to use. I use a script which you can set in the mythtv configuration to change channels:
#!/bin/sh
/usr/local/bin/channel -n -q $1

Sound
I am using ALSA which Debian configured by default. You need to load the OSS emulation drivers so you can configure mythtv. Add these lines:
modprobe snd-mixer-oss
modprobe snd-seq-oss
modprobe snd-pcm-oss
(in the startup script above)

In mythtv configuration for the pvr-350 do not set pvr-350 only for sound. Plug the soundout from the pvr-350 to the line in on your pc's sound card, then line out from the sound card to your tv. This way you can play recorded tv sound (which goes through the pvr-350) and movies/games which use the sound card. Don't forget to unmute your line in (you can use alsamixer) and configure the sound portion in mythtv. To save the alsa settings for bootup, use the command alsactl.

TV Channel icons
You will probably be setting up Datadirect for program listings, so we need to get channel icons. Install the xmtltv packages (these come precomiled with debian). You can then run "mkiconmap.pl" in the contrib directory of the mythtv source. After this you can run:
# mythfilldatabase --import-icon-map iconmap.xml --update-icon-map
This errored out for me because the XML file it created had special characters. XML CANNOT have the characters & or ' or < or > or " in the data entries
so you will need to remove them, or swap them like such:
change & to &amp;
change ' to &apos;
change < to &lt;
change > to &gt;
change " to &quot;
In the contrib directory there is also a master_iconmap.xml file, this has quite a few stations, but not as many as if you ran mkiconamp yourself.

Mythmovie
I grabbed the latest xine source and compiled this myself, I do not use mplayer because it had a serious audio sync problem, and xine also supports dvd menus. Once you compile this you can set it as the player and I use it as such:
# xine -V xv -pfhq [WHATEVER]

If you want to play a dvd you use:
# xine -V xv -r auto -pfhq dvd:/dev/dvd (or device)

If you had say a mpeg-2 dvd movie ripped onto the hard drive, if you were going to run it by hand you would do:
# xine -V xv -r auto -pfhq dvd:/data/WHATEVER/

But mythmovie does not understand this. So I added a file extension of "link"
into mythmovie, which executes the command:
# xine -V xv -r auto -pfhq `cat %s`
and the filename whatever.link contains:
dvd:/PATH/TO/MOVIE/

You can also just play an iso image of the movie, you can make that with:
# mkisofs -dvd-video -o movie.iso /PATH/TO/MOVIE

NOTE: Unfortunately there is no xine plugin for the pvr-XXX yet (well there was an old one for the old .2 series and earlier, but this will not work after .2). There is a plugin for mplayer available at http://dl.ivtvdriver.org/unsorted-stuff/ivtv_apps/ but it does not keep the audio and video in sync, so it is unusable.

NOTE: After much tribulation, the "-r auto" setting is the best to use, this will pick the proper aspect ratio. This with the "-pf" for fullscreen makes the video look proper.
Importing dvd's without using mythtv transcoding daemon (mtd)
I didn't feel like setting up the mythbackend to do dvd rip's so I wrote a simple perl script. This uses dvdbackup to import the dvd, then creates a symlink in your home directory so xine can play it. You will need to modify the variables at the top of the file. I use /data/ripped as the actually directory where the rip goes, and /data/dvd is configured in mythvideo as the source directory, so after the rip is done my script will create a file named MOVIE.link with the following contents in it:

dvd:/data/ripped/TITLENAME/

You can then setup mythmovie to always play files ending in .link with the following command:
xine -V xv -r auto -pfhq `cat %s`

You will also need to modify an internal mythtv file to run the dvd rip script so you can use it from the Videos -> Import DVD menu. The file is optical_menu.xml, and this is going to be located in you share directory, likely /usr/share/mythtv or /usr/local/share/mythtv. Find the following line:
<action>JUMP Rip DVD<action>
and change it to:
<action>EXEC /PATH/TO/dvdrip.pl 1&gt;&gt;/PATH/TO/dvdrip.log 2&gt;&amp;1 &amp;</action>
changing the path as necessary. You will need to use the gt/amp etc.. shortcuts as the file is xml encoded and does not allow the characters <,>,&," or '.

Here is the dvdrip perl script.

Mythgame
The pvr-350 does not have hardware graphics accelaration (like opengl) so this limits the amount of emulators.
So far I've only setup Nintendo and Super Nintendo emulation.

I just purchased a Logitech Cordless RumblePad 2 which is USB and HID (Human input device) compliant. When I plugged it in joydev (the kernel module) loaded automatically and the input device was /dev/input/js0. This thing is badass but the rumble portion isn't currently supported.

Nintendo:
fceultra
I got this off packages.debian.org.
To run in fullscreen mode with a sound rate at 44000HZ:
# fceu -soundq 1 -fs 1 [ROM]

To configure the keys you need to run the following from a terminal window:
# fceu -inputcfg gamepad1

Then just start the game:
# fceu -input1 gamepad [ROM]


Super Nintendo:
zsnes
I also got this off packages.debian.org.
This saves your settings, so after running this you need to hit "Alt+Enter" to go into fullscreen mode. To edit the keymaps you can go through the system menus, this also works for the video mode. 640x480 FULL is what I use. This needs to be setup without myth running so it can get the keyboard focus.
To get a controller working, just load up zsnes, it should recognize a joystick automatically if one is plugged in, change input #1 and set the appropriate keys like up/down X/Y by hitting the buttons on your gamepad.

TODO
- setup tvwish

Links
www.mythtv.org/wiki/index.php The official mythtv wiki.
www.knoppmythwiki.org This is a good link with alot of howtos, including streaming live tv and exporting recorded shows to dvd.
www.mythtv.info This has more links including add-ons.
mysettopbox.tv More video related links
wilsonet.com/mythtv/ If you are using Fedora core, this is a great guide. This also has good general overview information as well.
MythGameHowto More general information on setting up emulators through mythgame.
nuv2disc Convert myth shows to dvd from shell
mythextra.napsi.net Addon modules mythrecipe, mythmail, and mythkaraoke. Also a patch for mythmusic to add FM radio support.
tony.maro.net A mythtv theme editor, both source (in pascal) and binaries.
Mythburn script HOWTO HOWTO for the mythburn scripts which is required for the new mythburn plugin
Mythflix Plugin A Netflix plugin for mythtv.
Myth2ipod A script for creating feeds and converting video for your ipod.