Contents |
Linux is the primary development platform for DRI. Nvidia and ATI provide binary drivers for their range of graphics chipsets which usually outporform their Open Source equivalants.
However, in terms of ease of configuration and stability, the DRI drivers work better for me.
Livna is a 3rd party yum repository which provides binary only drivers from Nvidia and ATI in a packaged form. See http://rpm.livna.org/livna-switcher.html
sudo rpm -ivh http://rpm.livna.org/livna-release-5.rpm
yum install kmod-fglrx sudo /usr/sbin/ati-fglrx-config-display enable sudo reboot
[fglrx] Internal AGP support requested, but kernel AGP support active. [fglrx] Have to use kernel AGP support to avoid conflicts. [fglrx] AGP detected, AgpState = 0x1f000217 (hardware caps of chipset) agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0. agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode [fglrx] AGP enabled, AgpCommand = 0x1f000314 (selected caps) [fglrx] total GART = 268435456 [fglrx] free GART = 252440576 [fglrx] max single GART = 252440576 [fglrx] total LFB = 28307456 [fglrx] free LFB = 22016000 [fglrx] max single LFB = 22016000 [fglrx] total Inv = 0 [fglrx] free Inv = 0 [fglrx] max single Inv = 0 [fglrx] total TIM = 0
[shanu@faith ~]$ fglrxinfo libGL: XF86DRIGetClientDriverName: 8.25.18 fglrx (screen 0) libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri. so: undefined symbol: __glXFindDRIScreen) libGL error: unable to find driver: fglrx_dri.so display: :0.0 screen: 0 OpenGL vendor string: Mesa project: www.mesa3d.org OpenGL renderer string: Mesa GLX Indirect OpenGL version string: 1.2 (1.5 Mesa 6.4.2)
Screw it, use r300 from CVS DRI.
As of this time (June 2006), ATI Radeon r300 drivers dont ship with FC5. Compile it from CVS as described in http://dri.freedesktop.org/wiki/Building
sudo yum install -y kernel-devel
$ mkdir ~/cvs/ && cvs ~/cvs/ $ cvs -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri login $ cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/dri co drm $ cvs -z3 -d:pserver:anonymous@anoncvs.freedesktop.org:/cvs/mesa co Mesa
$ cd drm $ ./autogen.sh --prefix=/usr $ make && sudo make install
$ sudo yum install -y mesa-libGL-devel libdrm-devel libXext-devel libXxf86vm-devel imake expat-devel $ sudo yum install -y libXmu-devel gcc-c++ freeglut-devel libXt-devel libXi-devel
$ cd ~/cvs/Mesa/ $ make linux-dri-x86 $ sudo make install $ sudo cp lib/r300_dri.so /usr/lib/dri/
$ cd ~/cvs/drm/linux-core $ make DRM_MODULES="radeon" $ Building modules, stage 2. [..] MODPOST CC /home/shanu/cvs/drm/linux-core/drm.mod.o LD [M] /home/shanu/cvs/drm/linux-core/drm.ko CC /home/shanu/cvs/drm/linux-core/radeon.mod.o LD [M] /home/shanu/cvs/drm/linux-core/radeon.ko make[1]: Leaving directory `/usr/src/kernels/2.6.16-1.2122_FC5-i686' $ sudo cp -v *.ko /lib/modules/`uname -r`/kernel/drivers/char/drm `drm.ko' -> `/lib/modules/2.6.16-1.2122_FC5/kernel/drivers/char/drm/drm.ko' `radeon.ko' -> `/lib/modules/2.6.16-1.2122_FC5/kernel/drivers/char/drm/radeon.ko'
$ make clean
[shanu@faith ~]$ uname -r 2.6.16-1.2122_FC5 [shanu@faith linux-core]$ dmesg | grep drm [drm] Initialized drm 1.0.1 20051102 [drm] Initialized radeon 1.25.0 20060524 on minor 0: [drm] Setting GART location based on old memory map [drm] Loading R300 Microcode [drm] writeback test succeeded in 2 usecs [drm] Loading R300 Microcode
[shanu@faith ~]$ LIBGL_DEBUG=verbose glxinfo name of display: :0.0 libGL: XF86DRIGetClientDriverName: 4.0.3 r300 (screen 0) libGL: OpenDriver: trying /usr/lib/dri/r300_dri.so drmOpenByBusid: Searching for BusID pci:0000:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 4, (OK) drmOpenByBusid: drmOpenMinor returns 4 drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0 libGL error: Can't open configuration file /etc/drirc: No such file or directory. libGL error: Can't open configuration file /home/shanu/.drirc: No such file or directory. Mesa: CPU vendor: GenuineIntel Mesa: CPU name: Intel(R) Pentium(R) M processor 1.60GHz Mesa: MMX cpu detected. Mesa: SSE cpu detected. Mesa: Not testing OS support for SSE, leaving enabled. display: :0 screen: 0 direct rendering: Yes server glx vendor string: SGI server glx version string: 1.2 server glx extensions: GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig client glx vendor string: SGI client glx version string: 1.4 client glx extensions: GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_texture_from_drawable, GLX_MESA_allocate_memory, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group GLX version: 1.2 GLX extensions: GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group OpenGL vendor string: Tungsten Graphics, Inc. OpenGL renderer string: Mesa DRI R300 20040924 AGP 1x x86/MMX/SSE2 TCL OpenGL version string: 1.3 Mesa 6.5.1 OpenGL extensions: GL_ARB_fragment_program, GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_MESAX_texture_float, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint, GL_EXT_compiled_vertex_array, GL_EXT_convolution, GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_histogram, GL_EXT_packed_pixels, GL_EXT_polygon_offset, GL_EXT_rescale_normal, GL_EXT_secondary_color, GL_EXT_separate_specular_color, GL_EXT_stencil_wrap, GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_vertex_program, GL_OES_read_format, GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod glu version: 1.3 glu extensions: GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat ---------------------------------------------------------------------- 0x23 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x24 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x25 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x27 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x28 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x2a 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x2b 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x2c 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x2d 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x2e 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x2f 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x30 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x31 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x32 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow