Under Linux you have two methods to get G400 TV out working:
for Matrox G450/G550 TV-out instructions, please see the next section!
Using the driver and the HAL module, available from the Matrox site. This will give you X on the TV.
This method doesn't give you accelerated playback as under Windows! The second head has only YUV framebuffer, the BES (Back End Scaler, the YUV scaler on G200/G400/G450/G550 cards) doesn't work on it! The windows driver somehow workarounds this, probably by using the 3D engine to zoom, and the YUV framebuffer to display the zoomed image. If you really want to use X, use the -vo x11 -fs -zoom options, but it will be SLOW, and has Macrovision copy protection enabled (you can "workaround" Macrovision using this perl script).
Using the matroxfb modules in the 2.4 kernels. 2.2 kernels don't have the TVout feature in them, thus unusable for this. You have to enable ALL matroxfb-specific feature during compilation (except MultiHead), and compile them into modules! You'll also need I2C enabled.
Enter TVout and type
./compile.sh. Install
TVout/matroxset/matroxset
somewhere into your PATH
.
If you don't have fbset installed, put
TVout/fbset/fbset
somewhere into your PATH
.
If you don't have con2fb installed, put
TVout/con2fb/con2fb
somewhere into your PATH
.
Then enter into the TVout/ directory in the MPlayer source, and execute ./modules as root. Your text-mode console will enter into framebuffer mode (no way back!).
Next, EDIT and run the ./matroxtv script. This will present you to a very simple menu. Press 2 and Enter. Now you should have the same picture on your monitor, and TV. If the TV (PAL by default) picture has some weird stripes on it, the script wasn't able to set the resolution correctly (to 640x512 by default). Try other resolutions from the menu and/or experiment with fbset.
Yoh. Next task is to make the cursor on tty1 (or whatever) to disappear, and turn off screen blanking. Execute the following commands:
echo -e '\033[?25l' setterm -blank 0
or
setterm -cursor off setterm -blank 0
You possibly want to put the above into a script, and also clear the screen. To turn the cursor back:
echo -e '\033[?25h'
or
setterm -cursor on
Yeah kewl. Start movie playing with
mplayer -vo mga -fs -screenw 640 -screenh 512 filename
(If you use X, now change to matroxfb with for example
Ctrl-Alt-F1.)
Change 640
and 512
if you set
the resolution to other...
Enjoy the ultra-fast ultra-featured Matrox TV output (better than Xv)!
Building a Matrox TV-out cable. No one takes any responsibility, nor guarantee for any damage caused by this documentation.
Cable for G400. The CRTC2 connector's fourth pin is the composite video signal. The ground are the sixth, seventh and eighth pins. (info contributed from Balázs Rácz)
Cable for G450. The CRTC2 connector's first pin is the composite video signal. The ground are the fifth, sixth, seventh, and fifteenth (5, 6, 7, 15) pins. (info contributed from Balázs Kerekes)
TV output support for these cards has only been recently introduced, and is not yet in the mainstream kernel. Currently the mga_vid module can't be used AFAIK, because the G450/G550 driver works only in one configuration: the first CRTC chip (with much more features) on the first display (on monitor), and the second CRTC (no BES - for explanation on BES, please see the G400 section above) on TV. So you can only use MPlayer's fbdev output driver at the present.
The first CRTC can't be routed to the second head currently. The author of the kernel matroxfb driver - Petr Vandrovec - will maybe make support for this, by displaying the first CRTC's output onto both of the heads at once, as currently recommended for G400, see the section above.
The necessary kernel patch and the detailed HOWTO is downloadable from http://www.bglug.ca/matrox_tvout/
PREAMBLE. Currently ATI doesn't want to support any of its TV-out chips under Linux, because of their licensed Macrovision technology.
ATI CARDS TV-OUT STATUS ON LINUX
ATI Mach64: supported by GATOS.
ASIC Radeon VIVO: supported by GATOS.
Radeon and Rage128: supported by MPlayer! Check VESA driver and VIDIX sections.
Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: supported by atitvout.
On other cards, just use the VESA driver, without VIDIX. Powerful CPU is needed, though.
Only thing you need to do - Have the TV connector plugged in before booting your PC since video BIOS initializes itself only once during POST procedure.
First, you MUST download the closed-source drivers from http://nvidia.com. I will not describe the installation and configuration process because it does not cover the scope of this documentation.
After XFree86, XVideo, and 3D acceleration is properly working, edit your card's Device section in the XF86Config file, according to the following example (adapt for your card/TV):
Section "Device" Identifier "GeForce" VendorName "ASUS" BoardName "nVidia GeForce2/MX 400" Driver "nvidia" #Option "NvAGP" "1" Option "NoLogo" Option "CursorShadow" "on" Option "TwinView" Option "TwinViewOrientation" "Clone" Option "MetaModes" "1024x768,640x480" Option "ConnectedMonitor" "CRT, TV" Option "TVStandard" "PAL-B" Option "TVOutFormat" "Composite" EndSection
Of course the important thing is the TwinView part.
The NeoMagic chip is found in a variety of laptops, some of them are equipped with a simple analog TV encoder, some have a more advanced one.
Analog encoder chip: It has been reported that reliable TV out can be obtained by using -vo fbdev or -vo fbdev2. You need to have vesafb compiled in your kernel and pass the following parameters on the kernel command line: append="video=vesafb:ywrap,mtrr" vga=791. You should start X, then switch to console mode with e.g. Ctrl-Alt-F1. If you fail to start X before running MPlayer from the console, the video becomes slow and choppy (explanations are welcome). Login to your console, then initiate the following command:
clear; mplayer -vo fbdev -zoom -cache 8192 dvd://
Now you should see the movie running in console mode filling up about half your laptop's LCD screen. To switch to TV hit Fn-F5 three times. Tested on a Tecra 8000, 2.6.15 kernel with vesafb, ALSA v1.0.10.
Chrontel 70xx encoder chip: Found in IBM Thinkpad 390E and possibly other Thinkpads or notebooks.
You must use -vo vesa:neotv_pal for PAL or -vo vesa:neotv_ntsc for NTSC. It will provide TV output function in the following 16 bpp and 8 bpp modes:
NTSC 320x240, 640x480 and maybe 800x600 too.
PAL 320x240, 400x300, 640x480, 800x600.
Mode 512x384 is not supported in BIOS. You must scale the image to a different resolution to activate TV out. If you can see an image on the screen in 640x480 or in 800x600 but not in 320x240 or other smaller resolution you need to replace two tables in vbelib.c. See the vbeSetTV function for details. Please contact the author in this case.
Known issues: VESA-only, no other controls such as brightness, contrast, blacklevel, flickfilter are implemented.