Graphic Cards

The major graphic cards are from ATI and Nvidia. Both manufacturers support Linux and are continuously improve the support and documentation. If you have the choice use Nvidia since it has better Linux documentation and is easier to be installed.

A problem is that manufacturers proprietary drivers don't tell the open source community how the hardware works. This is because they want to hide it to the manufacturers competitors. The open source community restricts kernel devices to be open source, a dilemma.

The newest graphic cards might therefore problematic since the kernel probably does not support them and the newest proprietary drivers is not integrated in the actual Linux distribution. A last chance way out is using the VESA vga drivers. This driver works fine but does not support the multimedia and gaming feature as 3D support, hardware acceleration and so on. Frustrating when you have to use this, having a high end graphic card.

Nvidia

It has to be decided between nouveau the driver that comes with the kernel and the nvidia binary drivers. Follow Gentoo nvidia guide to setup the card. As a general rules the driver coming with the source should be taken since it works well together with the kernel. Exception if the functionality is limited and the additional features of the nvidia drivers are required.

Nouveau

Nouveau should work right out of the box using Plug and Play data (EDID from the monitor). glxinfo and glxgears will show if hardware acceleration work.

But it might happen that the monitor does not identify itself as expected (e.g. it is not a monitor but a TV) then nouveau tries continuously to find some monitor with PnP and every couple of second it blanks the screen. To avoid that pass the following to the kernel as via /boot/grub/grub.conf:

kernel /kernel-3.7.10-gentoo-2013-03-16 root=/dev/sda2 vga=0xf07  drm_kms_helper.poll=0

Proprietary nvidia drivers

The the nvidia proprietary drivers must be compiled for the used kernel version. This might be considered as disadvantage, however on the other hand the installation went smooth indicating that there is good Linux support. It works well and gets a compact not confusing /etc/X11/xorg.conf. Nice comprehensive documentation is provided at: /usr/share/doc/nvidia-drivers-<no>/html/index.html. However it is not necessary to read it since there is also emerge nvidia-settings. There all the settings as Video Output for an attached TV can be made and when done the /etc/X11/xorg.conf can be created out of it.

Pivot functionality (turning monitor 90° to have portrait) is easily supported using nvidia cards. In /etc/X11/xorg.conf in the device section where nvidia driver is, add the line

Section "Device"
  “       
 Driver        "nvidia"         
  “               
 Option        "RandRRotation" "true"
EndSection

When successful the desktop tools for screen resize & rotate will contain now the options to rotate the screens. If not checkout /var/log/Xorg.0.log since since rotation might be restricted to 24 depth only. So set:

DefaultDepth 24

The commands xrandr -o left and xrandr -o right will then turn it and xrandr -o normal brings it back.

ATI Graphics Cards Radeon

There are drivers available via kernel source or closed source drivers from ATI.

Create a kernel with no frame buffer except efi if you boot with efi.

In the xorg.conf.d/21-radeon.conf file add

Section "Device"
 Identifier "radeon"
 Driver "radeon"
EndSection

to avoid that Xorg needs to guess, producing errors and finally be faster to start.

ATI drivers from kernel source

Linux is open source and this is especially true for the kernel. However when it comes to new kernels and modern ATI graphic cards then an exception appears. Proprietary ATI firmware in form of a number of binary files needs to be configured in the kernel (or made available when the kernel loads the graphic card as module). The kernel .config file can be prepared in a way that the kernel compilation knows those files from /lib/firmware that do not come with the kernel source. To get the ATI radeon firmware emerge linux-firmware and find the firmware files under /lib/firmware/radeon.

To know what firmware file needs to be installed is best done by not install any at all but then check the logs for what is missing:

dmesg and /var/log/Xorg.0.log will show if there are some troubles.

cat /var/log/messages | grep 'error'

radeon 0000:01:05.0: Direct firmware load for radeon/R600_rlc.bin failed with error -2

Then add the missing firmware and redo the steps.

Figure 5.1. Firmware blobs

firmware blobs


ATI closed source drivers

The proprietary drivers from ATI where used in the past to support more features.

The more modern way (and sometimes the only way) is use the standard kernel way and have the kernel know and load firmware into the graphic cards.


Linurs startpage