HOWTO: Get AMD/ATI or Nvidia Video Cards working in Sabayon
- 1 Kernel Upgrade (optional)
- 2 AMD - New Sabayon install w/FGLRX
- 3 AMD APU + AMD PCI-E Graphics
- 4 AMD - FGLRX to Open Source
- 5 AMD - Open Source to FGLRX
- 6 NVIDIA
Kernel Upgrade (optional)
Method 1 (kernel-switcher tool)
This method should automagically install the corresponding driver updates and addons such as the zfs mod.
Lets see what is available!
localhost root # kernel-switcher list
Find a kernel you wish to use, and switch!
localhost root # kernel-switcher switch linux-sabayon-4.1.7
Method 2 (Manual)
This method isn't better or worse than kernel-switcher. It just allows you to know exactly whats going on, what you are doing, and what is changing. This method doesn't automagically upgrade drivers or install addons such as virtualbox addons or the zfs mod.
localhost root # equo install sys-kernel/linux-sabayon localhost root # equo install sys-kernel/sabayon-sources
Now use eselect to set the soft links(shortcuts) to the proper libraries and files. eselect allows us to keep different libraries so we can switch without damaging the system by replacing important files.
First off we need to know which is our new kernel and bzimage
localhost root # eselect bzimage list localhost root # eselect kernel list
You should get something like this...
localhost root # eselect bzimage list Available kernel targets:  kernel-genkernel-x86_64-3.13.0-sabayon *  kernel-genkernel-x86_64-3.14.0-sabayon localhost root # eselect kernel list Available kernel symlink targets:  linux-3.13.0-sabayon  linux-3.14.0-sabayon * localhost root #
Now select the newer bzimage and kernel.
localhost root # eselect bzimage set 2 localhost root # eselect kernel set 2
Once your new kernel is installed reboot!
AMD - New Sabayon install w/FGLRX
Upon booting your Live Disc, you will notice a GRUB screen that varies based on UEFI and NON-UEFI.
- UEFI -
Select "Advanced Options" Select "Disable Kernel Mode Settings (for AMD Radeon GPUs with FGRLX)" Boot Live Disc
- NON-UEFI -
Press F5 for "Other Options" Select "nomodeset" Boot Live Disc
AMD APU + AMD PCI-E Graphics
Found a hiccup with graphics detections and Sabayon installation. Getting stuck at root login shell?
Yeah, it has to do with having 2 Graphic Cards, APU + PCI-E. You have the APU disabled in BIOS you say?
This mainly happens with fglrx installations.
sabayon ~ # lspci ---cut--- 00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kaveri [Radeon R7 Graphics] ---cut--- 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Fiji XT [Radeon R9 FURY X] (rev ca)
Sometimes it doesn't matter. Pending on the motherboard, the hardware is still attached (its part of the CPU!) and seen, thus detected and configured as such. This detects both cards and populates them in order seen then assigns them separate "screens" in xorg.conf or only sets up the first card seen.
The APU is first on the PCI-E bus making it "primary". Fret not! We've got your back. Until an automatic solution is found I give you the fix!
sabayon ~ # nano /etc/X11/xorg.conf
The solution is to swap "BusID" in the "Device" Sections essentially swapping "Primary" and "Secondary" Cards.
Section "Device" Identifier "SabayonVga0" Driver "fglrx" BusID "PCI:00:01" ---cut-- EndSection Section "Device" Identifier "SabayonVga1" Driver "fglrx" BusID "PCI:01:00" ---cut-- EndSection
Section "Device" Identifier "SabayonVga0" Driver "fglrx" BusID "PCI:01:00" ---cut-- EndSection Section "Device" Identifier "SabayonVga1" Driver "fglrx" BusID "PCI:00:01" ---cut-- EndSection
Now! That should fix the graphics card confusion, but you still need to get into the GUI right? Simple!
Just replace sddm with whichever desktop manager you use such as gdm(Gnome), lightdm(other), lxdm.
sabayon ~ # equo i lightdm sabayon ~ # systemctl disable -f sddm sabayon ~ # systemctl enable lightdm
AMD - FGLRX to Open Source
"Why" you ask? Besides the drivers not quickly supporting new Kernel releases, Open Source drivers are getting better all the time and AMD has announced plans to open source as much as possible. The new plan (drivers after "catalyst omega"), is to create an open source driver with hooks. The majority of the drivers will be opensource while proprietary features will remain in a kernel agnostic binary blob. If you want to go full opensource, then the driver will hook into mesa for all rendering etc. If you want proprietary features, the driver hooks into the blob. Same driver, different options. One source would be Phoronix.com
Its very similar to the "Roll back" in the following section with a couple differences.
[email protected] ~ $ su localhost root # equo update localhost root # equo remove ati-drivers ati-userspace amdcccle localhost root # equo install xf86-video-ati localhost root # eselect opengl set xorg-x11 localhost root # sed -i 's/nomodeset//g' /etc/default/grub localhost root # sed -i 's/nomodeset//g' /boot/grub/grub.cfg localhost root # sed -i 's/"fgrlx"/"ati"/g' /etc/X11/xorg.conf
Reboot and enjoy!
AMD - Open Source to FGLRX
Lets prepare the system for a fresh install of the ati-drivers package and block the conflicting driver Radeon at boot. be sure to look at the first part of the line. $ is for user while # is for root!
[email protected] ~ $ su localhost root # equo update --force localhost root # equo remove ati-drivers localhost root # equo remove xf86-video-ati localhost root # echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
If your radeon module is still loaded after boot and its blacklisted, look into /etc/conf.d/modules to see if it is listed in the modules line and make sure grub is booting with nomodeset(below).
Now we need to disable KMS (Kernel Mode Setting)
localhost root # nano /etc/default/grub
You will notice a Difference. I have highlighted in Red what needs to be added.
# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/sys-boot/grub/files/grub.default-2,v 1.2 201$ # # To populate all changes in this file you need to regenerate your # grub configuration file afterwards: # 'grub2-mkconfig -o /boot/grub2/grub.cfg' # # See the grub info page for documentation on possible variables and # their associated values. GRUB_DEFAULT=saved GRUB_DISTRIBUTOR="Sabayon Linux 15.08" GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=5 GRUB_CMDLINE_LINUX_DEFAULT="nomodeset quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console
Populate the changes
localhost root # grub2-mkconfig -o /boot/grub/grub.cfg
OK, lets install the drivers and set the links to the GL libraries.
localhost root # equo install --bdeps x11-drivers/ati-drivers-15.9-r1#$(uname -r) ati-userspace amdcccle localhost root # eselect opengl set ati localhost root # eselect opencl set amd
Need an updated or new xorg.conf? If you weren't using fglrx before then... yes.
Newer versions of X11 do not require an xorg.conf file, but may not load fgrlx drivers.
creating an xorg.conf file and forcing X11 to use it to override auto-detection can help.
Backup old (if one exists) and update.
localhost root # cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak localhost root # /opt/bin/aticonfig --initial localhost root # X -config /etc/X11/xorg.conf
OK now reboot!
Once you login and decide you want to set resolutions and extra settings, open amdcccle.
Once you have everything working you can remove the old kernel if you like. MAKE SURE YOU SELECT THE CORRECT KERNEL! Look using "equo search linux-sabayon" then copy and paste!
[email protected] ~ $ su localhost root # equo remove sys-kernel/linux-sabayon-3.13.11
If you're looking at this. We are either curious or ran into a snag.
Good News: everything is reversible!
Bad News: you're stuck in a terminal until its fixed! But you knew that didn't you ;)
With your computer powered off, connect the computer to the internet via a cable and then press the power button. When you reach the Grub selection screen press an arrow key to halt the timer and select the "Advanced Options....". Then you will select the option with "(Recovery Mode)"
This will take you through the normal boot process, then will put you at a CLI screen and request the root password. Enter the root password and you will be brought into a terminal as root!
Now to start putting things back!
localhost root # equo update localhost root # equo remove ati-drivers ati-userspace amdcccle localhost root # equo install xf86-video-ati localhost root # eselect opengl set xorg-x11 localhost root # sed -i '/blacklist radeon/d' /etc/modprobe.d/blacklist.conf localhost root # sed -i 's/nomodeset//g' /etc/default/grub localhost root # cp /etc/X11/xorg.conf.bak /etc/X11/xorg.conf
Now reboot! Now you are back on the Open Source Drivers! You will keep your upgraded kernel so that was not reverted. (reason for less steps)
If for some reason you don't have proprietary Nvidia drivers installed and you want them, there are simple steps to follow.
Update package database
First thing is to make sure that package database is up to date.
# equo update --force
Available driver version
To get a list of all drivers for all kernels that are available:
$ equo search -qv nvidia-drivers
List of all drivers versions available for currently running kernel:
$ equo search -qv nvidia-drivers#$(uname -r)
Knowing what driver version you want to install (usually the newest, i.e. highest number version, it may differ if you have old card that needs older drivers):
Newest drivers for currently running kernel
# equo install --ask nvidia-driver#$(uname -r) nvidia-userspace
Will install newest driver available for currently running kernel.
Older drivers for currently running kernel
List Nvidia drivers for your current kernel (insturctions above), and install it along with corresponding nvidia-userspace, e.g.:
# equo install --ask nvidia-drivers-304.108#$(uname -r) nvidia-drivers-304.108
Block nouveau driver
For Nvidia drivers to work properly nouveau can't be loaded. Thus, it must be blocked.
# echo blacklist nouveau >> /etc/modprobe.d/blacklist.conf
Set Nvidia drivers as active
# eselect opengl set nvidia