I recently purchased an AMD HD 6670 graphics card to use with Steam on Fedora 18.
It has been sometime since I have used a dedicated graphics card within a Linux distribution, and I wanted to see how the kernel would handle installing a dedicated graphics card without installing any additional packages or drivers.
Unfortunately things did not go well. I encountered several different display behaviors on system boot. One behavior would give me a usable GUI but there were artifacts all over the screen. The second behavior would give me an unusable GUI with a partially rendered background. And, the third behavior would give me nothing. The display behavior would change each time the system was rebooted.
I discovered the most seamless method to get everything working was to do the following steps:
- Install the AMD Catalyst Proprietary Driver before installing the graphics card
- Shutdown the system
- Install the graphics card
- Boot the system
- Create the xorg.conf using the
aticonfig
command - Reboot one last time.
This method and the steps below should be similar for other AMD graphics cards.
Install the AMD Catalyst Proprietary Driver
Fully Update the System
yum update -y
Install rpmfusion Free and Nonfree Repositories
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-18.noarch.rpm
rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-18.noarch.rpm
Install the Development Tools and Headers
yum install gcc kernel-devel kernel-headers wget
Install the AMD Catalyst Proprietary Driver
yum install akmod-catalyst
Create New initramfs
The following command will create a new /boot/initramfs-%{version}-%{release}.%{arch}.img and modify /boot/grub2/grub.cfg:
new-kernel-pkg --kernel-args=nomodeset --mkinitrd --dracut --update $(rpm -q --queryformat="%{version}-%{release}.%{arch}\n" kernel | tail -n 1)
The only change in /boot/grub2/grub.cfg is the addition of the nomodeset kernel parameter on the most recently installed kernel’s boot line.
Here is a diff of the modified grub.cfg and the original grub.cfg:
[root@devaron grub2]# diff grub.cfg grub.cfg.orig
108c108
< linux /vmlinuz-3.9.2-200.fc18.x86_64 root=/dev/mapper/fedora_devaron-root ro
rd.md=0 rd.dm=0 rd.luks=0 rd.lvm.lv=fedora_devaron/swap vconsole.keymap=us
rd.lvm.lv=fedora_devaron/root rhgb quiet LANG=en_US.UTF-8 radeon.modeset=0
rd.driver.blacklist=radeon nomodeset
---
> linux /vmlinuz-3.9.2-200.fc18.x86_64 root=/dev/mapper/fedora_devaron-root ro
rd.md=0 rd.dm=0 rd.luks=0 rd.lvm.lv=fedora_devaron/swap vconsole.keymap=us
rd.lvm.lv=fedora_devaron/root rhgb quiet LANG=en_US.UTF-8 radeon.modeset=0
rd.driver.blacklist=radeon
Install the Graphics Card
At this point shutdown the system, install the graphics card, move the display cable to the graphics card, and boot up the system. The system should boot up without any problems.
Create /etc/X11/xorg.conf
The following command will create /etc/X11/xorg.conf specific to the graphics card installed. The command will not work without installing the graphics card. The command will backup an existing xorg.conf, but, in my case, an xorg.conf file did not exist when using the onboard video:
aticonfig --initial -f
Reboot the System
Finally, reboot the system:
init 6