====== 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 ===== * [[http://www.mythtv.org/wiki/index.php/AtiProprietaryDriver|ATI Proprietary Driver with MythTV]] * [[http://guide.debianizzati.org/index.php/Installazione_driver_proprietari_Ati|Installazione driver proprietari ATI su Debian]] * [[wp>ATI_FireGL|FireGL]] and [[wp>Radeon|Radeon]] graphics adapter by ATI Technologies. * [[wp>OpenGL|OpenGL]] graphics acceleration. * [[wp>X_video_extension|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-__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 1024x768 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.