-   Linux - Hardware (
-   -   [solved] Direct rendering (3D acceleration) issues for linux kernel 2.6.29+ (Debian) (

gringer 03-29-2009 06:15 PM

[solved] Direct rendering (3D acceleration) issues for linux kernel 2.6.29+ (Debian)
I had been having a problem getting 3D acceleration working on a Debian system with a graphics card I recently installed (ATI Technologies Inc RV280 [Radeon 9200 PRO]), and have finally managed to get it working again. I wanted to keep with the free 'radeon' driver, but /var/log/Xorg.0.log kept complaining that Direct Rendering was disabled without any apparent reason:

(II) RADEON(0): [DRI] installation complete
(II) RADEON(0): [drm] removed 1 reserved context for kernel
(II) RADEON(0): [drm] unmapping 8192 bytes of SAREA 0xe07a4000 at 0xb7aa9000
(II) RADEON(0): [drm] Closed DRM master.
(WW) RADEON(0): Direct rendering disabled
(II) RADEON(0): Render acceleration enabled for R200 type cards.

It seems that the main issue was an update of the linux kernel (2.6.29+) to remove non-free binary blobs from the kernel source. I realised this after checking the dmesg output and seeing errors about firmware:

[72190.102626] [drm] Setting GART location based on new memory map
[72190.102707] [drm] Loading R200 Microcode
[72190.102713] platform radeon_cp.0: firmware: requesting radeon/R200_cp.bin
[72190.295514] radeon_cp: Failed to load firmware "radeon/R200_cp.bin"
[72190.295523] [drm:radeon_do_init_cp] *ERROR* Failed to load firmware!

The fix for this is to add in the non-free binary blob package called 'firmware-linux'. After that, direct rendering seems to work again. From the package details for firmware-linux, this should solve issues people have with a few other cards:

This package contains the binary firmware for all firmwares which was
formally shipped in the Linux image.

* 3Com Typhoon firmware, version 03.001.008
* DAB-USB FPGA bitfile, version unknown
* DAB-USB firmware, version unknown
* Intel 82559 D101M microcode, version unknown
* Intel 82559 D101S microcode, version unknown
* Intel 82551-F and 82551-10 microcode, version unknown
* kaweth/new_code.bin, version unknown
* kaweth/new_code_fix.bin, version unknown
* kaweth/trigger_code.bin, version unknown
* kaweth/trigger_code_fix.bin, version unknown
* Matrox G200 WARP engine microcode, version unknown
* Matrox G400/G550 WARP engine microcode, version unknown
* Rage 128 CCE microcode, version unknown
* Radeon R100-family CP microcode, version unknown
* Radeon R200-family CP microcode, version unknown
* Radeon R300-family CP microcode, version unknown
* Radeon R400-family CP microcode, version unknown
* Radeon R500-family CP microcode, version unknown
* Radeon RS690 CP microcode, version unknown
* Tehuti network card firmware, version unknown

farslayer 03-30-2009 01:26 PM

Debian has been moving towards that goal for a while now. even in the release notes for Etch-n-Half it was noted that the firmware for the Broadcom netxtreme NIC card would be removed, and would need to be installed separately.. Kinda kills doing a netinstall with that card.

from the Etch-n-Half release notes..

Broadcom NetXtreme II network controllers
The bnx2 driver for Broadcom NetXtreme II network controllers has been modified to load firmware files from the file system. These firmware files are provided in the firmware-bnx2 package in the non-free section of the archive. Systems that require the bnx2 driver must have the firmware-bnx2 package installed to function with the 2.6.24 "etch-and-a-half" kernel. These devices will not be available at install time when using a Debian "lenny"-based installer.

Here is the Debian Developer statement about Firmware in the kernel..


Debian kernel team identifies the following three types of firmware, currently
found in the Linux kernel:

1. Sourceless binary blobs with no license, no explicit permission to redistribute, or
  an explicit prohibition to redistribute.
  This category currently includes the emi62, keyspan, smctr,
  cops, emi26, and 3c359 drivers. Removal of these drivers will have minimal
  impact on the users, as they are believed to be unpopular and not likely to
  be required during the installation.

2. Sourceless binary blobs distributed under GPL.
  This situation has been interpreted as a violation of the terms of GPL, which
  requires the distribution to be accompanied by the source code. Removal of
  firmware in this category will cause effective removal of a large number of
  important drivers, resulting in a severe negative impact on our users.

3. Binary blobs violating DFSG for other reasons.
  This category includes firmware which contains obfuscated source, or is not
  allowed to be modified. While less numerous than category 2, removal of
  drivers in this category will also have a significant negative
  impact on our users.

It has been agreed within Debian kernel team, that the firmware in category 1
is not acceptable in Debian. It is the intention of the kernel team to prune the
affected drivers from the upstream tarball.

All times are GMT -5. The time now is 10:23 PM.