Table of Contents
ATI proprietary Linux driver for X.org
The free way
2010-04-20: Now I'm using an ATI Radeon X300 PCIE video card with X.org 7.5 on a Debian Squeeze. I'm using the free video driver provided by the package xserver-xorg-video-radeon.
As reported by the NEWS.Debian
file: standard linux kernels in Debian as of version 2.6.29-1 do not contain the firmware necessary to allow the radeon driver to use 3D acceleration via DRI.
Starting the (non-free) GoogleEarth application I was noticed that OpenGL was working in software emulation only, and the kernel warns:
kernel: [12221.004285] [drm] Setting GART location based on new memory map kernel: [12221.004818] [drm] Loading R300 Microcode kernel: [12221.005096] platform radeon_cp.0: firmware: requesting radeon/R300_cp.bin kernel: [12221.154273] radeon_cp: Failed to load firmware "radeon/R300_cp.bin" kernel: [12221.154278] [drm:radeon_do_init_cp] *ERROR* Failed to load firmware!
After installing the package firmware-linux-nonfree
OpenGLS runs with satisfying hardware acceleration.
Non-free
Here we use NON FREE SOFTWARE, please avoid this as possible!
Unfortunately the TV-OUT of my ATI card does not work with the free X.org driver. I tried this setup on my Debian GNU/Linux box, just to see movies on the TV.
- Debian Etch
- Linux kernel 2.6.18
- X.org 7.1.0
- Debianized fglrx-driver 8.28.8-4
- ATI Radeon X300SE
- Composite-SCART cable
Despite the non-free driver, TV-OUT image adjusting does not work. I tried all the relevant options: TVHPosAdj, TVVPosAdj, TVHSizeAdj, TVVSizeAdj and TVHStartAdj, but nothing noticeable happens. About 20 horizontal pixels are missing on the left edge and there is a black band of about 30 pixels at the bottom.
I experienced also several system crashes during video mode change.
I will buy soon a different video card, with free and open source driver available. ATI sucks.
References
- OpenGL graphics acceleration.
- X video extension graphics acceleration.
Build the software
Those are the Debian (Etch) packages installed, some are specific for FireGL driver, others are Debian building tools:
- fglrx-control
- fglrx-driver
- fglrx-driver-dev
- fglrx-kernel-src
- module-assistant
- build-essential
- fakeroot
- dh-make
- debconf
m-a prepare m-a update m-a build fglrx m-a install fglrx depmod -a
The module-assistant commands will build and install the fglrx-kernel-<kern.ver>_<drv.ver>_i386.deb package (you will find it into the /usr/src/
directory). Remember to load the proprietary kernel module fglrx.ko.
Do not execute the aticonfig
utility: it will mess your xorg.conf
!. Just read its man page aticonfig(1x)
, the man page for fglrx(4x)
and configure x.org by hand.
Configuring X.org
The X.org configuration file is /etc/X11/xorg.conf
. It contains several sections, where the most important is ServerLayout. The ServerLayout section refers to other sections, which in turns refer to others. This is the schema:
- ServerLayout = Screen + InputDevice
- Screen = Device + Monitor
The Screen section selects the Device (video adapter) and the Monitor. We select a resolution of 1024×768 which is not the optimal resolution for the VGA monitor, but it is the max resolution for the TV-OUT (otherwise we get only a viewport on the TV, with panning when the mouse moves ahead).
#------------------------------------------------------------------------- # Screen setup for cloned VGA LCD and TV-OUT output. #------------------------------------------------------------------------- Section "Screen" Identifier "TV-OUT Layout" Device "ATI-FireGL" Monitor "SyncMaster 710N" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection
Then we need a suitable Device section to setup the video card options. Here we set operation on both analog VGA monitor and composite TV-OUT in clone mode: the same image is displayed on both monitors.
#------------------------------------------------------------------------- # ATI Technologies Inc RV370 5B60 [Radeon X300 (PCIE)] # ATI closed source driver for ATI Radeon and FireGL adapters. # Need the kernel module fglrx.ko, see the fglrx(4x) man page. #------------------------------------------------------------------------- Section "Device" Identifier "ATI-FireGL" Driver "fglrx" #------------------------------------------------------- # Acceleration with OpenGL. Option "OpenGLOverlay" "on" Option "VideoOverlay" "off" # Acceleration with Xv (X video extension). #Option "OpenGLOverlay" "off" #Option "VideoOverlay" "on" #------------------------------------------------------- # crt{1|2} -- Analog CRT monitor (VGA connector 1 or 2) # lvds -- Laptop flat panel # tv -- TV-OUT # tmds{1|2} -- Desktop flat panel (DVI connector 1 or 2) # tmds2i -- Desktop flat panel (Dual link DVI) Option "EnableMonitor" "crt1,tv" Option "DesktopSetup" "clone" # Option "TVFormat" "PAL-B" Option "TVStandard" "VIDEO" EndSection
NOTE: you can use OpenGL (best) acceleration or Xv, remember that some software needs to know what video drivers to use. For example, start mplayer with the correct option if you want full screen resize:
mplayer -vo xv movie.avi mplayer -vo gl2 movie.avi
Testing
Check if the proprietary acceleration is available:
$ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: RADEON X300/X550 Series Generic OpenGL version string: 2.0.6011 (8.28.8)
Acceleration demo:
$ fgl_glxgears
DVI single and dual links
The Digital formats are available in DVI-D Single-Link and Dual-Link as well as DVI-I Single-Link and Dual-Link format connectors. These DVI cables send information using a digital information format called TMDS (transition minimized differential signaling). Single link cables use one TMDS 165Mhz transmitter, while dual links use two. The dual link DVI pins effectively double the power of transmission and provide an increase of speed and signal quality; i.e. a DVI single link 60-Hz LCD can display a resolution of 1920 x 1080, while a DVI dual link can display a resolution of 2048 x 1536.