devel.reinikainen.net
HomeDocumentsCodeBugtrackerSearchreinikainen.netJB Consulting

Ubuntu Linux: MPlayer + Console Framebuffer + ATI TV-Out

Jani Reinikainen, Address

14. February 2006

Introduction

Hardware: ATI Radeon 9550 AGP on MSI K8MM-V with AMD 2800+ 64-bit.
Software: Ubuntu Linux 5.10 (Breezy Badger), MPlayer 1.0pre7try2, Linux kernel 2.6.15.4.

This was a b*tch to set up. So if you must, here is a guide. But read the conclusion first ;-)

Kernel Configuration

IMPORTANT: ONLY compile in VESAFB. You might be tempted to compile in radeonfb, but it DOES NOT WORK. Compiling both vesafb and radeonfb will result in driver conflicts. MTRR support speeds things up.

No kernel patches (such as vesafb-tng, which does not work on AMD64) are needed.

Code maturity level options  --->
  [*] Prompt for development and/or incomplete code/drivers

Processor type and features  --->
  [*] MTRR (Memory Type Range Register) support

Device drivers  --->
  Graphics support --->
    <*> Support for frame buffer devices
    [*]   VESA VGA graphics support


MPlayer Installation

Note: VIDIX support is not available at the moment on AMD64. Also, libgtk2.0-dev and gcc-4.0 packages will not work with current MPlayer versions. You need libgtk1.2-dev and gcc-3.3.

There are indeed packages for both mplayer and mplayer-amd64, but both crashed all the time on my system. I decided to compile from source.


# apt-get install gcc-3.3 libgtk1.2-dev
$ mkdir -p /usr/lib/codecs; cd /usr/lib/codecs
$ tar xfvj essential.tar.bz2

$ tar xfvj mplayer-<version>.tar.bz2
$ cd mplayer-<version>
$ ./configure --enable-gui
$ make
# make install

$ cd /usr/local/share/mplayer/font/
$ wget http://www1.mplayerhq.hu/MPlayer/releases/fonts/font-arial-iso-8859-1.tar.bz2
$ tar xfvj font-arial-iso-8859-1.tar.bz2

GRUB

video= option

You must add video=vesafb:800x600-16@50 to the kernel line. Just adding video=vesafb or video=vesafb: does not work (the vesafb driver does not get loaded). The mode after the colon doesn't seem to do anything, as the mode is controlled using the vga= option.

vga= option

Some guides tell you to use 7xx modes. These DO NOT WORK (scrambled tv-out). Also, just using a mode of 315 (i.e. without the 0x in front) does also not work (also scrambles tv-out). The correct format is:

vga=0x315

Feel free to use other 0x3xx modes, too (see /usr/src/linux/Documentation/fb/vesafb.txt for a table of modes). Just remember the 0x in front. Also, vga=ask will fail horribly.

Usage

Reboot. Open up a console. Type:

mplayer -vo fbdev -vf scale:800x600:1 movie.avi

Enjoy your movie without the overhead of X! But remember to keep hands off Ctrl+Alt+Fx buttons (console switching). Switching a console may cause some display corruption.

Debugging

dmesg | grep fb is your friend.

Conclusion

Just use Xv. MPlayer on a framebuffer with software scaling uses about 70-75% CPU on my machine. The same value in X using XV is about 40-45%.

Further documentation

Copyright © 2007 Jani Reinikainen. All rights reserved.
Permission granted to replicate information found on these pages, provided that all copyright headers/footers remain intact.