Switching Between Free and Non-free Video-Drivers

From Chakra | Wiki
Jump to: navigation, search
Switching Between Free and Non-free Video-Drivers
Chakra gives you the option during the startup of the LiveCD to choose between using and installing the free or non-free (proprietary) graphics card drivers. There are several reasons why it would be nice to be able to switch graphics card drivers anytime after you have installed Chakra. Some users don't realize that when the LiveCD starts the default option is for free drivers, but would have preferred to use non-free. Or that the driver currently in use is causing problems and you need to switch to the other one.

To go from free graphic card drivers to either NVIDIA or Catalyst proprietary drivers, also means going to a different libgl. Because the Catalyst and NVIDIA drivers both provide their own, it is not just a simple "pacman -S <new_driver>". Used drivers need to be removed first!

Steps to switch from radeonhd to Catalyst/fglrx - only for HD5xxx series and newer Radeons

  • note: very likely you will experience worse performance in KDE's KWIN window manager compared to the radeonHD driver. This can mean sensable lag with desktop effects and lower overall performance of the desktop. (This issue does not affects performance in 3D apps and games)
sudo pacman -Syu
sudo pacman -Rdd mesa-libgl lib32-mesa-libgl
sudo pacman -R xf86-video-ati

If lib32-mesa-libgl are not installed, then just leave it out from the commands above.

Most cards don't need this, but if you know that yours does, disable (Kernel-based Mode-Setting) KMS. Look for this line in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

and at the end of this line add nomodeset so it looks like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset"

Remember to update grub after this:

sudo update-grub 

Now install Catalyst:

sudo pacman -S catalyst
sudo pacman -S catalyst-libgl lib32-catalyst-libgl
sudo modprobe fglrx

If you have a /etc/X11/xorg.conf file, then the best to do is to remove it (and backup, just in case) before the next step. Catalyst will generate a new /etc/X11/xorg.conf for itself.

sudo aticonfig --initial
  • note: For Multiple Monitors

However, if you have two monitors and want to use both of them, you can run the command stated below. Note that this example will generate a dual head configuration with the second screen located above the first screen.

sudo aticonfig --initial=dual-head --screen-layout=above --input=/etc/X11/xorg.conf

For more options of aticonfig see

sudo aticonfig --help | less




sudo reboot

After a reboot, you can launch Catalyst Control Center with the needed rights using this command

kdesu amdcccle

To eliminate image and video tearing, go to Display settings -> Tear free desktop, where check Enable tear free desktop option on the conrtol center.

If you want to use the Video Acceleration API (VA-API) for HW acceleration of videos, then install the needed package

sudo pacman -S xvba-video

Then you can use VA-API output in programs like VLC, or vaapi enabled mplayer (SMPlayer with mplayer-vaapi) but it may not work due to the lack of VA-API support.

If you want to monitor your card's propertys like core and memory speeds or temperature, then you can install and put to your desktop the pyCatalystmonitor plasmoid from KDE's plasmoid downloader.

Steps to switch from Catalyst/fglrx to radeonhd

Remove the Catalyst/fglrx driver:

sudo pacman -Syu
sudo pacman -Rdd catalyst catalyst-libgl catalyst-utils lib32-catalyst-libgl lib32-catalyst-utils

If lib32-catalyst... packages are not installed, then just leave it out from the command above.

Install the radeonhd driver:

sudo pacman -S xf86-video-ati mesa-libgl lib32-mesa-libgl

Nowadays, manual editing of xorg.conf are no more required. Instead, please remove (and backup, just in case) the /etc/X11/xorg.conf file from the X11 folder, because the system will handle everything by itself.

Remove nomodeset from your kernel line in /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet nomodeset" 

or

GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.modeset=0" 

and at the end of this line remove either nomodeset or radeon.modeset=0 so it looks like this:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Remember to update grub after this, and reboot:

sudo update-grub
sudo reboot

If you want to use hardware acceleration for video playback, then install VDPAU related packages. VDPAU is an open source library and API to offload portions of the video decoding process and video post-processing to the GPU video-hardware.

sudo pacman -S libvdpau mesa-vdpau

After this step, you can set players like VLC, Bomi and SMPlayer to use VDPAU for video output and video decode. If you experience problems in video players with VDPAU output, then try to set it to R600 mode. Add the necessary enviromental variables to your bashrc file, then reboot.

printf '\nexport LIBVA_DRIVER_NAME=vdpau\nexport VDPAU_DRIVER=r600' >> ~/.bashrc

It will needs a logout -> login to activate the new variables.


Steps to switch from Nouveau to NVIDIA

Update your system and remove entries related to nouveau:

sudo pacman -Syu
sudo pacman -Rdd mesa-libgl
sudo pacman -R xf86-video-nouveau

Most NVIDIA graphics cards need these packages:

sudo pacman -S nvidia
sudo pacman -S nvidia-utils

7xxx and below graphics cards:

sudo pacman -S nvidia-304xx
sudo pacman -S nvidia-304xx-utils

This step only needed for 304xx: To create the correct entries in /etc/x11/xorg.conf:

sudo nvidia-xconfig

Steps to switch from NVIDIA to Nouveau

Remove the NVIDIA driver:

If you have a newer NVIDIA graphics card:

sudo pacman -Syu
sudo pacman -Rdd nvidia
sudo pacman -Rdd nvidia-utils

If you have a GeForce FX series graphics card:

sudo pacman -Syu
sudo pacman -Rdd nvidia-173xx
sudo pacman -Rdd nvidia-173xx-utils

If you have a 7xxx and below graphics card:

sudo pacman -Syu
sudo pacman -Rdd nvidia-304xx
sudo pacman -Rdd nvidia-304xx-utils

Install the Nouveau driver:

sudo pacman -Syu
sudo pacman -S xf86-video-nouveau
sudo modprobe nouveau

There is no automatic way of editing xorg.conf for the Nouveau driver, so:

kdesu kate /etc/X11/xorg.conf

Look for information below. Comment the "nvidia" line out by adding the hash (#) symbol in front and add the line below it listed here:

Section "Device"
 Identifier  "Card0"
 #Driver      "nvidia"
 Driver      "nouveau"
 VendorName  "nVidia Corporation"
 BoardName   "G96-GeForce 9400 GT"
 BusID       "PCI:1:0:0"
 Option      "DRI"    "true"
EndSection

Use the fall-back driver, if all else fails

Unfortunately there are cases neither free or non-free drivers will produce a working desktop. In those cases, it is recommended to start the LiveCD with the vesa driver (same driver for all video cards).

To use the vesa driver, start the LiveCD like normal, select your language on the first screen. Next screen use the "Tab" key, an editable line will show at the bottom of your screen. At the end of that line, switch "xdriver=no" to "xdriver=vesa". Editing will start at the end of this line, so using 'backspace' will remove text, normal typing will enter text.

Tip for hybrid cards not booting

Chakra is working on fully supporting hybrid graphics cards, but unfortunately, not all are working yet. To still be able to boot into a live-CD, it is needed to turn of one of the cards. Some can do this in the BIOS. For those who can't, follow these steps:

  • select your language on the first screen
  • next screen use the "Tab" key
  • editable line will show at the bottom of your screen
  • at the end of that line, add "edd=off"

Common issues

Are you trying to switch from Intel to Nvidia or Catalyst and you can't? Are you trying to change your graphics card driver but you can't? Are you trying to install a lib32 package but you can't? Don't worry.

Black bars over the scren / undersized or oversized picture using AMD cards

This is a hardware related issue, mostly when using an LcdTV as a monitor. Switching Radeon cards in your pc may alter this situation, so proper settings may be card dependent. With catalyst/fglrx driver, you can use the driver to adjust the overcan / underscan value in the Catalyst Control Center. With the free driver, you can try this solution: related arch wiki page

Conflicts between libgl and nvidia-utils or catalyst-utils

libgl and catalyst-utils are in conflict. Remove libgl? [y/N] Y
libgl and nvidia-utils are in conflict. Remove libgl? [y/N] Y

There is nothing wrong. libgl is also provided by catalyst-utils or nvidia-utils. You can replace libgl by nvidia-utils or catalyst-utils without problem (just install the correct one for your graphics card.)

Error: failed to prepare transaction (could not satisfy dependencies)

If you answer yes and pacman is still showing an error related to dependencies would be because you have lib32 packages installed in your system. Your new error should look like:

error: failed to prepare transaction (could not satisfy dependencies)
:: catalyst: requires catalyst-utils
error: failed to prepare transaction (could not satisfy dependencies)
:: nvidia: requires nvidia-utils

You just need to install the lib32 equivalent to your graphics card:

Catalyst

If you are trying to install catalyst-utils you will need lib32-catalyst-utils too:

sudo pacman -S catalyst-utils lib32-catalyst-utils

NVIDIA

If you are trying to install nvidia-utils you will need lib32-nvidia-utils too:

sudo pacman -S nvidia-utils lib32-nvidia-utils

Installing the first lib32 package after driver update

The last scenario with libgl error could come with the first lib32-package installation. Imagine you installed nvidia-utils without problems and now you want to install Skype. You will see an error related to libgl, asking to remove nvidia-utils. You only need to install lib32-nvidia-utils before doing it. Of course, this is the same scenario for catalyst-utils, also for other lib32-packages.