Matrox G450
HowTo Enable TVOut with a Matrox G450
This overview will cover how to get the TVOut working on a Matrox G450 using FC4 and MythTV .19. This covers my experience with this setup and how I got it to work.
For the most part, I followed Jarod's Guide on getting MythTV set up on Fedora Core. The initial setup was a little difficult in the GUI because while the installer correctly identified my Matrox G450, the Matrox drivers that ship for x.org are for v. <= 6.8.1 while the installer uses 6.8.2. No biggie, I've set up FC before and was able to get by.
After the installation completed, I grabbed the updated Matrox drivers from Matrox. Setting them up is easy - download, extract run install.sh to have the files copied to the correct place. A quick restart of X (ctrl+alt+backspace) gets everything nice and pretty.
After doing some reading in various places, I discovered that in order to get the framebuffer devices created so we can use them, we have to load the matrox modules at boot. We need to create /etc/sysconfig/modules/matrox.modules with the following code:
#!/bin/sh
/sbin/modprobe i2c-matroxfb
/sbin/modprobe matroxfb_Ti3026
/sbin/modprobe matroxfb_crtc2
/sbin/modprobe matroxfb_maven
Remember to make it executable (chmod +x /etc/sysconfig/modules/matrox.modules) and then reboot. After the system comes back up, you should have 2 framebuffer devices listed in /dev
# ls -l /dev/fb?
crw------- 1 mythtv root 29, 0 Apr 6 14:46 /dev/fb0
crw------- 1 mythtv root 29, 1 Apr 6 14:46 /dev/fb1
Now, to get the TVOut working we need to download matroxset - a tool for manipulating the Matrox fb devices. It's a simple install also, download, extract, make, copy to /usr/bin and you're ready to use it. The matroxset tool doesn't have to be run as root as long as the user has read/write access to the fb devices. Run the following commands to get the framebuffers in a usable state for TVOut:
matroxset -f /dev/fb0 -m 5
matroxset -f /dev/fb1 -m 2
matroxset -f /dev/fb1 -o 1 2
The first line turns off the secondary output, the second line connects the secondary output to /dev/fb1 and the third line sets the secondary output to NTSC (use -o 1 1 for PAL). You should now be able to test the output with mplayer.
mplayer -vo fbdev -fb /dev/fb1 /path/to/testvideo.mpg
You can also scale the mplayer output using the "-vop scale" option like so:
mplayer -vo fbdev -fb /dev/fb1 -vop expand=640:480,scale=640:-2 /path/to/testvideo.mpg
That should play your video on your TV if everything is working correctly.