This text describe how to get TV-out working with a Matrox G400 / G400 MAX card in Linux with MPlayer. The only useful way to get TV-out on G400 is to use the framebuffer, because without YUV and accelerated playback it will be SLOW and have Macrovision copyprotection enabled. If you use your textmode console now you can say goodbye to that and start using a graphic console instead i.e. a framebuffer. Recompile your kernel and enable this stuff in the kernel, not as modules: Character Devices > I2C support > I2C support Character Devices > I2C support > I2C bit-banging interfaces Character Devices > I2C support > I2C device interface Character Devices > Matrox g200/g400 Console drivers > Frame-buffer support > Support for frame buffer devices Console drivers > Frame-buffer support > Matrox acceleration Console drivers > Frame-buffer support > G100/G200/G400/G450/G550 support Console drivers > Frame-buffer support > Matrox I2C support Console drivers > Frame-buffer support > G400 second head support Console drivers > Frame-buffer support > Select compiled-in fonts Console drivers > Frame-buffer support > VGA 8x8 font Console drivers > Frame-buffer support > VGA 8x16 font It will work to have it as module also, but it hasnt always worked for me, it sometimes crashed the computer. And you will get an ugly 640x480 8x16 font by default when you load the module for the matrox framebuffer. Its better to do it right from the beginning. Before you boot your new kernel put these in your lilo.conf: For 1280x1024x32 in the fb put: video=matrox:vesa:283,noblink For 1024x768x32 in the fb put: video=matrox:vesa:280,noblink You can read /usr/src/linux/Documentation/fb/matroxfb.txt or wherever you put your kernel for other modes. If you use 1600x1200x32 it will not work later when you turn TV-out on. "noblink" isnt necessary but i recommend it. You should put it under "append" like this: image=/boot/Linux-2.4.18 label=Linux root=/dev/sda1 append="video=matrox:vesa:283,noblink" read-only So, when you have rebooted your new kernel change to console 5 (Ctrl+Alt F5) and put this script in for example /usr/local/bin/tv-out-init and do chmod a+rx /usr/local/bin/tv-out-init -----cut------ #!/bin/sh con2fb /dev/fb1 /dev/tty6 matroxset -f /dev/fb1 -m 0 matroxset -f /dev/fb0 -m 3 matroxset 1 fbset -fb /dev/fb1 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -depth 32 -laced false -bcast true setterm -blank 0 -----cut------ then you do like this: Enter TVout/matroxset and type make, install it in /usr/local/bin/ Enter TVout/fbset and type make, install it in /usr/local/bin/ Enter TVout and run ./matroxtv script. Press 2 and enter. You should now have the same picture on your TV that you have on your monitor. You can now quit the ./matroxtv script and examine what kind of TV you got and test TV-640x512, TV-640x528, TV-704x528, TV-704x576, TV-720x576 and TV-720x576-old in the same dir. When you have found what kind of TV you got, change to that mode in /usr/local/bin/tv-out-init if needed, by changing every appearance of 640 and 528 on the fbset-line to fit your TV. Run tv-out-init (Having /usr/local/bin in your PATH is a good thing). console 5 will be TV-out, console 6 will be unusable. On console 7 will you have X on most Linux systems. If you have less ttys in console than 6 you can use an other console for TV-out. The consoles will get a refresh rate of 50 Hz, i dont know if that can be changed in to 75 Hz or something like that. Next, create a nice alias to play via TV-out, put alias tv='mplayer -vo mga -fs -quiet -screenw 640 -screenh 528' in your .bashrc. Change to an other mode if you got an other TV than i got. You dont need to be root to init TV-out or to use TV-out. Play something with: $ tv filename This text was written 2002-04-20 by iocc. It was slightly updated 2003-02-15. This text has helped at least 10 persons to get working TV-out in Linux. |