Ubuntu Quantal Installation Guide: Difference between revisions

From cchtml.com
(Fixed a couple of references)
(slight tweak to the wget command, DO NOT REMOVE TEMPLATES)
 
(125 intermediate revisions by 57 users not shown)
Line 1: Line 1:
If you have ATI x1000 series or older, please don't use these drivers. They do not support those cards.
__TOC__


If you have ATI HD 2000 to HD 4000 series:
yLmxHv Muchos Gracias for your blog article. Awesome.
* wget http://www2.ati.com/drivers/legacy/amd-driver-installer-12.6-legacy-x86.x86_64.zip
As of Oct 2012, this is the newest driver supporting these cards. For more information, please see [http://support.amd.com/us/kbarticles/Pages/catalyst126legacyproducts.aspx AMD Catalyst™ 12.6 Legacy Driver]


If you have ATI HD 5000 series or newer:
rv75R9 Thanks so much for the blog post.Much thanks again. Keep writing.
*wget http://www2.ati.com/drivers/beta/amd-driver-installer-12-9-beta-x86.x86_64.zip
You can also use the newest edition of the ATI drivers that support your card.


Next:
= Installing Proprietary Drivers a.k.a. Catalyst/fglrx =
*unzip to home directory
 
*sudo sh ./amd-driver-installer-*.run --buildpkg Ubuntu/quantal
{| WIDTH="650" cellpadding=0 cellspacing=0 style="background-color: red; border: solid 1px #666666; color: #ffffff; text-align: center;"
*sudo dpkg -i fglrx*.deb
| style="background-color: #666666; border: solid 1px #666666; border-bottom: 1px solid #888;" | <font size="-1">'''ATTENTION RADEON USERS'''</font>
*sudo aticonfig --initial -f
|-
| <br />*PLEASE READ FIRST!
'''Which Radeon cards are no longer supported by ATI's Catalyst?'''
<br /><br />
|}
 
'''ATI Radeon 9500-9800, Xpress200-1250, 690G, 740G, X300-X2500, Mobility RadeonHD 2300'''
If your card is on that list, you are limited to open-source drivers on Ubuntu Lucid/10.04 (and later). If you really need the proprietary Catalyst/fglrx driver, you will have to use an older Linux distribution, such as Debian Lenny/5.0.x or Ubuntu Hardy/8.04.x.
NOTE: If you enter your card information on AMD/ATI's driver page, it will offer you the Catalyst 9-3 driver to download. However, the Catalyst 9-3 driver doesn't support X servers past 1.5, and it will not work with Precise (or anything later than Lucid/10,04)! !!!SO BE CAREFUL!!! If you tried to install Catalyst on a system with one of these cards, see the 'Removing the Driver' section to restore the default/pre-installed drivers.
 
'''ATI RadeonHD 2x00 - 4xx0 cards'''
If you have one of these cards, you do have the option of using the Catalyst Legacy driver, but only if you downgrade your Xserver version (the Catalyst Legacy driver does not support the kernel version (3.5) or the Xserver version (1.13) that Ubuntu Quantal/12.10 uses).
This can be done really easily by following the instructions given at [[https://launchpad.net/~makson96/+archive/fglrx]]. This PPA downgrades the Xserver and install a patched version of fglrx that supports kernel version 3.5 of Ubuntu Quantal.
 
== Using Ubuntu-supplied fglrx/Catalyst ==
 
On Ubuntu Quantal, this will install fglrx/Catalyst 9.000, which is roughly equivalent to Catalyst 12-9. NOTE: You must have the restricted repository enabled in Applications -> Software Sources... for this to work. After you complete the install, skip to [[Ubuntu_Quantal_Installation_Guide#Generate_a_new_.2Fetc.2FX11.2Fxorg.conf_file|Generate a new /etc/X11/xorg.conf file]].
 
=== Command line ===
 
sudo apt-get install linux-source fglrx fglrx-amdcccle
 
=== GUI ===
 
Jockey was removed in 12.10. You now need to go to Software Sources and go to the Additional Hardware tab. You will need to install linux-headers-generic beforehand, or the Panel won't show up after the restart.
 
== Installing Catalyst Manually (from AMD/ATI's site) ==
 
I recommend copying and pasting the commands to ensure there are no typing mistakes and speed up the install process. Remember to use Ctrl '''+ Shift''' + V or Shift + Insert to paste into the terminal (or go to the terminals menu, select edit and click paste).
 
===''Before you start''===
If you have previously attempted installing Catalyst, remove any leftover files by following the [[#Removing_Catalyst.2Ffglrx| Removing the Driver]] section. Make sure ''universe'' and ''multiverse'' are enabled in your repository sources (System -> Administration -> Software Sources).
or Applications->Ubuntu Software Center->Edit->Software sources->Other software: check canonical partners.
 
Install the prerequisite packages:
sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot xserver-xorg-dev
 
''If you are using the x86_64 architecture (64 bit)'':
sudo apt-get install lib32gcc1
 
Create a directory for the build environment and move to that directory
mkdir catalyst15.11 && cd catalyst15.11
 
===''Download the latest Catalyst package.''===
This package contains both the 32-bit and 64-bit driver.
 
wget <nowiki>--referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86_64' http://www2.ati.com/drivers/linux/</nowiki>{{catalystfilename}}
unzip {{catalystfilename}}
chmod +x {{catalystfilename}}
 
===''Create and install .deb packages.'' ===
sudo sh ./{{catalystfilename}} --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb
 
===''In case of failure:''===
 
Remember these steps before you reboot your computer.
 
If the X server fails to start, switch to a new TTY using ctrl+alt+F2. Log in, and attempt to start the X server.
 
sudo start lightdm
 
If it fails to start, you will likely see a stacktrace, and immediately above it will be something along the lines of "Could not stat /usr/lib64/fglrx/switchlibGL" which means that you failed to copy the executables properly. Ctrl+c, and immediately copy the switchlibGL and switchlibglx executables to the fglrx folder in /usr/lib64/ or /usr/lib32/.
 
If all else fails, revert your xorg.conf and reboot.
 
sudo cp /etc/X11/xorg.conf.orig /etc/X11/xorg.conf
 
This should return your original display.
 
==''Generate a new /etc/X11/xorg.conf file''==
 
Unfortunately, there is no sure way to generate the ATI version of the Xorg.conf file.  It is entirely dependent on your configuration.  The following subsections will attempt to address possible (and tested) variations for their respective configurations.
 
=== Generic Config ===
This will work for most people:
sudo amdconfig --initial -f
 
=== Minimal Config ===
A very basic /etc/X11/xorg.conf file might be what you need if you have a new card that's not fully supported by amdconfig. Here follows the entirety of a minimal xorg.conf file for the Radeon HD 6870:
 
Section "Device"
  Identifier "ATI radeon 6870"
  Driver "fglrx"
EndSection
 
=== X2/Dual GPU Cards ===
If you have an X2 card (e.g. 5970), use... '''!!Do not use for two separate cards in crossfire!!'''
sudo amdconfig --initial -f --adapter<nowiki>=</nowiki>all
 
=== Dual/Multi Monitors ===
If you have a dual monitor display (also known as "Big Desktop"), use:
sudo amdconfig --initial -f
sudo amdconfig --set-pcs-str<nowiki>=</nowiki>"DDX,EnableRandR12,FALSE"
This was confirmed in http://phoronix.com/forums/showthread.php?t=18553. Be advised that you may need to manually set the correct refresh rate for your second monitor through catalyst.
 
==''Force use of the new xorg.conf (if necessary)''==
Some people find that changes to xorg.conf don't get used by the driver. To force the ATI driver to adopt changes made to xorg.conf, use the following command:
 
sudo amdconfig <nowiki>--input=/etc/X11/xorg.conf --tls=1</nowiki>
 
==''Test your installation''==
NOTE: if you don't reboot first, fglrxinfo gives an error message.
Reboot the computer and type
fglrxinfo
into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Using fglrxinfo on a system with Catalyst 12-3 and a RadeonHD 4550 returns:
<pre>
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 4550 (This line may be different depending on what graphics card you are using.)
OpenGL version string: 3.3.11566 Compatibility Profile Context (This line may be different depending on what graphics card and
Catalyst version you are using.)
</pre>
Now, try:
fgl_glxgears
If you experience issues or a hang, you may need to disable fast TLS.
sudo amdconfig --tls=0
 
== Installing Catalyst Manually (from AMD/ATI's site) BETA/EXPERIMENTAL ==
 
I recommend copying and pasting the commands to ensure there are no typing mistakes and speed up the install process. Remember to use Ctrl '''+ Shift''' + V or Shift + Insert to paste into the terminal (or go to the terminals menu, select edit and click paste).
 
===''Before you start''===
If you have previously attempted installing Catalyst, remove any leftover files by following the [[#Removing_Catalyst.2Ffglrx| Removing the Driver]] section. Make sure ''universe'' and ''multiverse'' are enabled in your repository sources (System -> Administration -> Software Sources).
or Applications->Ubuntu Software Center->Edit->Software sources->Other software: check canonical partners.
 
Install the prerequisite packages:
sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot
 
''If you are using the x86_64 architecture (64 bit)'':
sudo apt-get install lib32gcc1
 
Create a directory for the build environment and move to that directory
mkdir catalyst13.3beta3 && cd catalyst13.3beta3
 
===''Download the latest Catalyst package.''===
This package contains both the 32-bit and 64-bit driver.
 
wget http://www2.ati.com/drivers/beta/linux-amd-catalyst-14.6-beta-v1.0-may23.zip
unzip linux-amd-catalyst-14.6-beta-v1.0-may23.zip
chmod +x fglrx-14.20/amd-driver-installer-14.20-x86.x86_64.run
 
===''Create and install .deb packages.'' ===
sudo sh ./fglrx-14.20/amd-driver-installer-14.20-x86.x86_64.run --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb
 
If building .deb packages fails, there is also an [http://wiki.cchtml.com/index.php/Ubuntu_Precise_Installation_Guide#Alternative_Manual_Installation Alternative Manual Installation]
 
When running the dpkg line, you may receive an error like:
Errors were encountered while processing:
  fglrx
  fglrx-amdcccle
  fglrx-dev
 
They may have attempted to install out of order.  Install them individually as:
 
  sudo dpkg -i fglrx_*.deb
  sudo dpkg -i fglrx-amdcccle*.deb  
  sudo dpkg -i fglrx-dev*.deb
 
You should see a successful result similar to:
 
user@user-ubuntu:~# sudo dpkg -i fglrx_9.010-0ubuntu1_amd64.deb
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx 2:9.010-0ubuntu1 (using fglrx_9.010-0ubuntu1_amd64.deb) ...
Removing all DKMS Modules
Error! There are no instances of module: fglrx
9.010 located in the DKMS tree.
Done.
Unpacking replacement fglrx ...
Setting up fglrx (2:9.010-0ubuntu1) ...
update-alternatives: using /usr/lib/fglrx/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/fglrx/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in auto mode
update-initramfs: deferring update (trigger activated)
Loading new fglrx-9.010 DKMS files...
First Installation: checking all kernels...
Building only for 3.5.0-17-generic
Building for architecture x86_64
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
update-initramfs: deferring update (trigger activated)
Processing triggers for ureadahead ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.5.0-17-generic
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
 
user@user-ubuntu:~# sudo dpkg -i fglrx-amdcccle_9.010-0ubuntu1_amd64.deb
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx-amdcccle 2:9.010-0ubuntu1 (using fglrx-amdcccle_9.010-0ubuntu1_amd64.deb)  ...
Unpacking replacement fglrx-amdcccle ...
Setting up fglrx-amdcccle (2:9.010-0ubuntu1) ...
 
user@user-ubuntu:~# sudo dpkg -i fglrx-dev_9.010-0ubuntu1_amd64.deb
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx-dev 2:9.010-0ubuntu1 (using fglrx-dev_9.010-0ubuntu1_amd64.deb) ...
Unpacking replacement fglrx-dev ...
Setting up fglrx-dev (2:9.010-0ubuntu1) ...
 
===''In case of failure:''===
 
Remember these steps before you reboot your computer.
 
If the X server fails to start, switch to a new TTY using ctrl+alt+F2. Log in, and attempt to start the X server.
 
sudo startx
 
If it fails to start, you will likely see a stacktrace, and immediately above it will be something along the lines of "Could not stat /usr/lib64/fglrx/switchlibGL" which means that you failed to copy the executables properly. Ctrl+c, and immediately copy the switchlibGL and switchlibglx executables to the fglrx folder in /usr/lib64/ or /usr/lib32/.
 
If all else fails, revert your xorg.conf and reboot.
 
sudo cp /etc/X11/xorg.conf.orig /etc/X11/xorg.conf
 
This should return your original display.
 
==''Generate a new /etc/X11/xorg.conf file''==
 
Unfortunately, there is no sure way to generate the ATI version of the Xorg.conf file.  It is entirely dependent on your configuration.  The following subsections will attempt to address possible (and tested) variations for their respective configurations.
 
=== Generic Config ===
This will work for most people:
sudo amdconfig --initial -f
 
=== Minimal Config ===
A very basic /etc/X11/xorg.conf file might be what you need if you have a new card that's not fully supported by amdconfig. Here follows the entirety of a minimal xorg.conf file for the Radeon HD 6870:
 
Section "Device"
  Identifier "ATI radeon 6870"
  Driver "fglrx"
EndSection
 
=== X2/Dual GPU Cards ===
If you have an X2 card (e.g. 5970), use... '''!!Do not use for two separate cards in crossfire!!'''
sudo amdconfig --initial -f --adapter<nowiki>=</nowiki>all
 
=== Dual/Multi Monitors ===
If you have a dual monitor display (also known as "Big Desktop"), use:
sudo amdconfig --initial -f
sudo amdconfig --set-pcs-str<nowiki>=</nowiki>"DDX,EnableRandR12,FALSE"
This was confirmed in http://phoronix.com/forums/showthread.php?t=18553. Be advised that you may need to manually set the correct refresh rate for your second monitor through catalyst.
 
==''Force use of the new xorg.conf (if necessary)''==
Some people find that changes to xorg.conf don't get used by the driver. To force the ATI driver to adopt changes made to xorg.conf, use the following command:
 
sudo amdconfig <nowiki>--input=/etc/X11/xorg.conf --tls=1</nowiki>
 
==''Test your installation''==
NOTE: if you don't reboot first, fglrxinfo gives an error message.
Reboot the computer and type
fglrxinfo
into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Using fglrxinfo on a system with Catalyst 12-3 and a RadeonHD 4550 returns:
<pre>
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 4550 (This line may be different depending on what graphics card you are using.)
OpenGL version string: 3.3.11566 Compatibility Profile Context (This line may be different depending on what graphics card and
Catalyst version you are using.)
</pre>
Now, try:
fgl_glxgears
If you experience issues or a hang, you may need to disable fast TLS.
sudo amdconfig --tls=0
 
===''Just in case''===
Write down or remember this series of Alt+PrntScr key combinations, just in case your screen should go black and Ctrl+Alt+F1 and Ctrl+Alt+Backspace doesn't work.
 
Alt+PrntScr+r, Alt+PrntScr+s, Alt+PrntScr+e, Alt+PrntScr+i, Alt+PrntScr+n, Alt+PrntScr+u, Alt+PrntScr+b
 
These key-presses will reboot the system safely. To remember the key-presses, remember this nonsensical phrase: "Raising Skinny Elephants Is Never Utterly Boring".
 
An alternative would be to hold down Ctrl+Alt+SysRq (SysRq is usually the same key as PrintScreen) and type very slowly R E I S U B. A way to remember this is by inverting the word: "BUSIER" or remembering a phrase: "Restart Even If System Utterly Broken". This would also safely shutdown the system.
 
= Hardware Video Decode Acceleration (EXPERIMENTAL) =
 
== Using XBMC player (XvBA) ==
 
XBMC has added support for accelerating video using XvBA/libxvba directly, but the support is currently not in the xbmc package in Ubuntu's repositories. To install the XvBA-enabled version of xbmc:
 
sudo apt-add-repository ppa:wsnipex/xbmc-xvba
sudo apt-get update
sudo apt-get install xbmc
 
== Using the xvba-va Driver (VA-API) ==
NOTE: The VA-API wrapper for XvBA has been dead code for a while now. It will probably give you some acceleration of HD formats, but using the previously mentioned xbmc PPA is a better solution.
 
This is confirmed to work for newer RadeonHD GPU's (those with UVD2). If you have a RadeonHD 4000-series or newer, you have UVD2. To see the complete list: http://en.wikipedia.org/wiki/Unified_Video_Decoder#UVD_enabled_GPUs
 
sudo apt-get install xvba-va-driver libva-glx1 libva-x11-1 vainfo
vainfo
 
vainfo should return something like the following (and no errors):
      libva: libva version 0.32.0
      Xlib:  extension "XFree86-DRI" missing on display ":0.0".
      libva: va_getDriverName() returns 0
      libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
      libva: va_openDriver() returns 0
      vainfo: VA API version: 0.32
      vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
      vainfo: Supported profile and entrypoints
      VAProfileH264High              : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
 
If vainfo returns an error, you may need to create a symlink:
 
sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/x86_64-linux-gnu/dri/fglrx_drv_video.so  #for 64-bit
sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/dri/fglrx_drv_video.so  #for 32-bit
     
Once you've confirmed that vainfo is correct, you can test video playback. A good test player for va-api is VLC. You can enable va-api in Tools -> Preferences -> Input and Codecs. Check the box named "Use GPU acceleration (experimental)" and then restart VLC.
 
 
== Other ==
There is possibility to enable > H.264 Level 5.1 decoding in the driver which "has been in the driver for some time but not enabled by default"
 
sudo amdconfig --set-pcs-u32=MCIL,HWUVD_H264Level51Support,1
 
or
 
sudo service lightdm stop
sudo cp -p  /etc/ati/amdpcsdb  /etc/ati/amdpcsdb.bak
sudo sed -i '/UvdEnabled=V1/ a HWUVD_H264Level51Support=V1' /etc/ati/amdpcsdb
sudo reboot
 
=Updating Catalyst/fglrx=
 
DO NOT try to install a new version over an old one. Follow the 'Removing Catalyst/fglrx' section below to remove your existing driver, and then you can start at 'Downloading the latest Catalyst' to install the new one.
 
=Removing Catalyst/fglrx=
The uninstall script in the first command will only exist if you downloaded the drivers and installed them directly (rather than building packages as this guide does). Skip the first command if it does not exist.
sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
 
If you plan on using open-source drivers, you will need to reinstall some packages because Catalyst overwrites or diverts some key 3D libraries with proprietary versions. For more information on this issue, see [https://wiki.ubuntu.com/X/Troubleshooting/FglrxInteferesWithRadeonDriver this Ubuntu wiki page]
sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
sudo apt-get install xserver-xorg-video-ati
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo rm -rf /etc/ati
 
If you receive
 
$ E: Internal Error, No file name for libgl1-mesa-dri
 
Change the third command above to:
 
sudo apt-get install --reinstall libgl1-mesa-glx:i386 libgl1-mesa-glx:amd64 libgl1-mesa-dri:i386 libgl1-mesa-dri:amd64 xserver-xorg-core
 
= Issues =
 
== Video Tearing ==
 
AMD/ATI claims that the "Tear Free Video" option is enabled by default, but that wasn't the case with Catalyst 12-3 installed on Kubuntu 12.04.
If you're having issues with tearing, make sure that "Tear Free Video" is on. You can find this option in the Catalyst Control Center under 'Display Options' or you can use the following command:
sudo amdconfig --sync-video=on
The option will not take effect until you restart X (i.e. log out).
 
If you're using compositing, you should also make sure that vsync is enabled in the compositor's settings. I found that vsync was enabled by default, but here are the appropriate settings should you want to experiment.
 
=== kwin ===
You can enable vsync for kwin in System Settings -> Desktop Effects -> Advanced tab
 
=== Compiz (Unity/GNOME-Shell) ===
TODO: See if there's a friendlier way to make sure vsync is enabled without installing ccsm.
 
Install the compiz settings manager:
sudo apt-get install compizconfig-settings-manager
ccsm
 
The 'Sync to Vblank' is found in the 'OpenGL' subsection of the 'General' group
 
== Hybrid Graphics and Catalyst==
 
There are two basic types of hybrid designs. Older hybrid systems use a multiplexor (mux) to switch between GPU's. Newer systems (those with PowerXpress >= 4.0) are muxless. As far as I can tell, PowerXpress 4.0 started with RadeonHD 6000-series GPU's, and systems with older ATI GPU's have a mux, but don't quote that.
 
=== ATI/ATI Hybrids ===
As of Catalyst 11-8, switching between two ATI cards (and maybe Intel/ATI muxless too?) is supposed to be doable, though it's not clear if that applies to all ATI/ATI hybrids or only the muxless ones. One would use amdconfig's PowerXpress options to switch back and forth between the integrated and discrete cards, like so:
 
amdconfig --pxl            # List current activated GPU
sudo amdconfig --px-dgpu  # Activate discrete GPU (High-Performance mode), must re-start X to take effect
sudo amdconfig --px-igpu  # Activate integrated GPU (Power-Saving mode), must re-start X to take effect
 
After switching, one would log out and back in to restart X.
 
=== Intel/ATI Hybrids ===
 
By using the officially provided drivers, there are two problems ( Launchpad Bug: [https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1068404 #1068404]):
: An incompatibility problem between intel and fglrx drivers (This gives segmentation fault at X server)
: Some paths missing for openGL operation of the fglrx driver (This prevents applications that require direct rendering, e.g. Unity/games/etc, from loading correctly)
 
If you follow the instructions described in the [https://help.ubuntu.com/community/BinaryDriverHowto/ATI#WORKAROUND Binary Driver HOWTO], you should get functional configuration
 
 
There is still another bug if you use the integrated GPU (Intel), making the X server crashing ( Launchpad Bug: [https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/1088220 #1088220] )
 
A workaround for now is to use the discrete GPU (ATI)
 
 
For more information you may want to follow this [http://ubuntuforums.org/showthread.php?p=12324761#post12324761 forum topic]
 
==== Script solution ====
 
:Script by anion155, http://pastebin.com/1ALmnqx5.
:It can help you install & uninstall fglrx drivers for this configuration.
 
== Build Fails and Log Shows "mixed implicit and normal rules.  Stop." ==
 
If the installation fails and you find the above message in /var/lib/dkms/fglrx/<version_number>/build/make.log, it may be because you're using a pentium-build wrapper around gcc. See what the following ls command returns:
ls -la /usr/bin/gcc
If it shows that gcc is a link to builder-cc, temporarily redirect the link to point to the real gcc (gcc-4.6 in Ubuntu Precise). This should allow you to install fglrx:
sudo ln -sf /usr/bin/gcc-4.6 /usr/bin/gcc
When you're finished installing the driver, return the gcc link to its original value:
sudo ln -sf /usr/bin/builder-cc /usr/bin/gcc
Launchpad link for this bug: https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/555957
 
== "Errors were encountered while processing: fglrx-amdcccle" (on 64-bit systems) ==
Most likely, you probably did not have the ia32-libs-multiarch:i386 lib32gcc1 libc6-i386 packages installed beforehand. If you have a 64 bit install, the above dpkg command may complain that "Errors were encountered while processing: fglrx-amdcccle".  This is because of a dependency of the amdccle package on 32 bit libraries.  If you receive this error, use the following command, which will force the installation of all of the 32 bit dependencies, and then the amdcccle package:
 
sudo apt-get -f install
 
Catalyst {{Template:Catalystversion}} on 64-bit systems may require the ''--force-overwrite'' command in the above ''dpkg'' command:
sudo dpkg -i --force-overwrite fglrx*.deb
 
== Problems Starting Xserver ==
 
If you get a black screen hang, the first thing to check is if xorg.conf is the problem.
 
You can disable the xorg.conf with:
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.disabled
 
Reboot and check to see if things work now.
 
You can reinstate the file with:
sudo mv /etc/X11/xorg.conf.disabled /etc/X11/xorg.conf
 
Before tweaking ACPI settings, try ensuring /dev/null is chmodded to 0666. This intermittently changes when using the nano (and possibly other) editors with sudo and the group/world permissions are unset. This leads to the ATI drivers hanging on boot or otherwise. A quick and dirty init script saved as /etc/init/chmodnull does the trick -
 
start on filesystem
 
script
chmod 0666 /dev/null
chmod 0666 /lib/udev/devices/null
end script
 
This has been tested using Ubuntu 10.04 64-bit on a ATI Radeon HD 4830 (HP Envy 15-1060ea). It's worth noting that I had to disable TLS  (amdconfig --tls=0) to get things to stay stable!
 
If you've properly installed the driver, but experience problems when starting the X server, such as hanging, black/white/gray screen, distortion, etc., your system BIOS may have a buggy ACPI implementation. To work around, press Ctrl+Alt+F1 to get to a terminal (or failing that, boot to recovery mode) and run:
sudo amdconfig --acpi-services=off
If this method works, you should consider checking your system vendor's BIOS changelogs for relevant ACPI fixes, updating your BIOS, and reenabling the driver's ACPI services.
 
== Unsupported Hardware Watermark ==
This can happen if your card's PCI ID wasn't officially certified to work with a particular version of Catalyst. It does not necessarily mean that your card is unsupported, but it does mean that you shouldn't file bugs with that particular card/driver combination. If you installed the driver by downloading it from AMD/ATI, installing a newer version of Catalyst will probably help.
 
If you installed the proprietary driver included with Ubuntu or you do not want to upgrade to a newer version, it is possible to work around the issue. First check if AMD's signature file has a proper signature:
 
sudo nano /etc/ati/signature
 
If the file only contains the word ''UNSIGNED'', replace the line with:
9777c589791007f4aeef06c922ad54a2:ae59f5b9572136d99fdd36f0109d358fa643f2bd4a2644d9efbb4fe91a9f6590a145:f612f0b01f2565cd9bd834f8119b309bae11a1ed4a2661c49fdf3fad11986cc4f641f1ba1f2265909a8e34ff1699309bf211a7eb4d7662cd9f8e3faf14986d92f646f1bc
 
Reboot and see if the watermark is gone. If not, try using a control file from a older version of Catalyst than the one you're running:
 
cd ~/; mkdir catalyst12.10; cd catalyst12.10/
wget http://www2.ati.com/drivers/linux/amd-driver-installer-catalyst-12.10-x86.x86_64.zip
unzip amd-driver-installer-catalyst-12.10-x86.x86_64.zip
chmod +x amd-driver-installer-catalyst-12.10-x86.x86_64.run
./amd-driver-installer-catalyst-12.10-x86.x86_64.run --extract driver
sudo mv /etc/ati/control ~/control.bak
sudo cp driver/common/etc/ati/control /etc/ati
 
== Hang at logout ==
 
If you experience hangs when logging out (of X) it is probably due to the /etc/ati/authatieventsd.sh script looking for X authorization files in the wrong place when it starts up. You can kill the hanging authatieventsd.sh processes from a console tty to allow the shutdown of the X server.
 
Before the following commands verify that /etc/ati/authatieventsd.sh exists after build and install, if not just do:
(assuming that the installer is in the directory we used to install)
 
cd ~/catalyst{{Catalystversion}}
sh amd-driver-installer-{{Catalystversion}}-x86.x86_64.run --extract driver
sudo cp driver/packages/Ubuntu/dists/quantal/replacements/authatieventsd.sh /etc/ati/authatieventsd.sh
sudo chmod +x /etc/ati/authatieventsd.sh
 
This problem can be fixed permanently with:
 
sudo mkdir -p /var/lib/xdm/authdir
sudo ln -s /var/run/xauth /var/lib/xdm/authdir/authfiles
 
If that doesn't work then you can disable atieventsd with this command:
 
sudo /usr/sbin/update-rc.d -f atieventsd remove
 
You'll have to restart for this to take effect.
 
== Can't remove fglrx with dpkg (diversion issue) ==
 
If dpkg refuses to remove an fglrx package and complains about a diversion of a file, you might need to manually remove it. For example, if dpkg complains:
<pre>dpkg-divert: mismatch on divert-to
  when removing `diversion of /usr/lib/libGL.so.1.2 to /usr/share/fglrx/diversions/libGL.so.1.2 by xorg-driver-fglrx'
  found `diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/libGL.so.1.2.xlibmesa by xorg-driver-fglrx'</pre>
then:
sudo dpkg-divert --remove /usr/lib/libGL.so.1.2
 
== This module/version combo is already installed ==
 
If you get this error-message, simply uninstall the previous version before installing the new one with:
sudo dkms remove -m fglrx --all
 
== New kernel installed? ==
In theory, DKMS should automatically install the fglrx kernel module for your new kernel the first time you boot it. Should you need to manually install it:
sudo dkms build -m fglrx -k `uname -r`
sudo dkms install -m fglrx -k `uname -r`
 
if amdcccle doesn't work and says Identifier is not a valid word. Use lower case letter in xorg.conf
or specify all the correct parameters. For example:
sudo dkms build -m fglrx -v '''9.012''' -k '''3.5.0-22'''-generic
sudo dkms install -m fglrx -v '''9.012''' -k '''3.5.0-22'''-generic
 
[[Category:Installation Documentation]]
 
== amdconfig not found after installation ==
This scenario is possible when the driver installation has seemingly succeeded and is possibly related to previous fglrx installs, including those through Jockey (i.e. you first used drivers provided by Ubuntu but then upgraded to ones available from AMD's website). When doing amdconfig --initial after driver installation, you might end up not having the amdconfig available at all:
<pre>amdconfig: command not found</pre>
After booting you might receive X error '(EE) Failed to load module "fglrx" (module does not exist, 0)'. These do not necessarily indicate that the installation has failed completely. On command line, do
ls /usr/lib/fglrx/bin
and see if the command lists some Ati related programs. If they are listed but not found from /usr/bin, it is possible that the "update-alternatives" fglrx .deb installation does has been ignored. See man update-alternatives for more information about the concept and workings of alternatives. In practice, update-alternatives is supposed to create several symbolic links to the files in the fglrx directory, but it will be ignored if the alternatives for the very related gl_conf entry has been set to manual. Do
update-alternatives --get-selections | grep gl_conf
and see if the mode is manual instead of auto and if mesa is mentioned instead of fglrx in the path that is printed. In this case you need to
sudo update-alternatives --set gl_conf /usr/lib/fglrx/ld.so.conf
to set fglrx as the active alternative. You can alternatively (no pun intended) and additionally change the gl_conf into automatic mode before the installation this way:
sudo update-alternatives --auto gl_conf
After that, the alternatives should automatically be configured correctly when the graphics driver .debs are installed.
 
== "update-alternatives: error" during install ==
During installation you may receive the following message:
<pre>update-alternatives: error: unable to make /usr/lib/xorg/modules/drivers/fglrx_drv.so.dpkg-tmp a symlink to /etc/alternatives/fglrx_drv: No such file or directory</pre>
This can be easily solved by creating directory "drivers" under /usr/lib/xorg/modules/
sudo mkdir /usr/lib/xorg/modules/drivers
 
== 'Can't exec "debian/rules": Permission denied at /usr/bin/dpkg-buildpackage line 507.' during deb generation ==
During installation you may receive the following message:
<pre>Can't exec "debian/rules": Permission denied at /usr/bin/dpkg-buildpackage line 507.</pre>
This can happen when your /tmp folder is mounted with the option "noexec". The noexec is suggested by many howtos regarding Ubuntu on SSD, when placing the /tmp in memory.
A workaround can be found here: [http://serialized.net/2010/03/getting-around-tmpfs-noexec-problems/]
 
== Errors during deb generation ==
You may recieve errors if you do not have devscripts, dh-make, execstack and dh-modaliases installed. Run apt-get to install, and the errors go away and the deb is generated correctly.
 
If you recieve the error dpkg-buildpackage: not found:
sudo apt-get install devscripts
 
If you recieve the error make: dh: command not found:
sudo apt-get install dh-make
 
If you recieve the error make: execstack: Command not found:
sudo apt-get install execstack
 
If you recieve the error make: dh_modaliases: Command not found:
sudo apt-get install dh-modaliases
 
== Black screen after uninstalling old amd drivers ==
Start you computer in recovery mode and exit to root shell.
Remount your partitions in rw mode:
mount -rw -o remount /
...
Go to your download directory and proceed with building and installing the drivers in recovery mode.
All should be fine after a reboot.
 
== References ==
 
<references/>

Latest revision as of 22:08, 21 December 2015

yLmxHv Muchos Gracias for your blog article. Awesome.

rv75R9 Thanks so much for the blog post.Much thanks again. Keep writing.

Installing Proprietary Drivers a.k.a. Catalyst/fglrx

ATTENTION RADEON USERS

*PLEASE READ FIRST!

Which Radeon cards are no longer supported by ATI's Catalyst?

ATI Radeon 9500-9800, Xpress200-1250, 690G, 740G, X300-X2500, Mobility RadeonHD 2300 If your card is on that list, you are limited to open-source drivers on Ubuntu Lucid/10.04 (and later). If you really need the proprietary Catalyst/fglrx driver, you will have to use an older Linux distribution, such as Debian Lenny/5.0.x or Ubuntu Hardy/8.04.x. NOTE: If you enter your card information on AMD/ATI's driver page, it will offer you the Catalyst 9-3 driver to download. However, the Catalyst 9-3 driver doesn't support X servers past 1.5, and it will not work with Precise (or anything later than Lucid/10,04)! !!!SO BE CAREFUL!!! If you tried to install Catalyst on a system with one of these cards, see the 'Removing the Driver' section to restore the default/pre-installed drivers.

ATI RadeonHD 2x00 - 4xx0 cards If you have one of these cards, you do have the option of using the Catalyst Legacy driver, but only if you downgrade your Xserver version (the Catalyst Legacy driver does not support the kernel version (3.5) or the Xserver version (1.13) that Ubuntu Quantal/12.10 uses). This can be done really easily by following the instructions given at [[1]]. This PPA downgrades the Xserver and install a patched version of fglrx that supports kernel version 3.5 of Ubuntu Quantal.

Using Ubuntu-supplied fglrx/Catalyst

On Ubuntu Quantal, this will install fglrx/Catalyst 9.000, which is roughly equivalent to Catalyst 12-9. NOTE: You must have the restricted repository enabled in Applications -> Software Sources... for this to work. After you complete the install, skip to Generate a new /etc/X11/xorg.conf file.

Command line

sudo apt-get install linux-source fglrx fglrx-amdcccle

GUI

Jockey was removed in 12.10. You now need to go to Software Sources and go to the Additional Hardware tab. You will need to install linux-headers-generic beforehand, or the Panel won't show up after the restart.

Installing Catalyst Manually (from AMD/ATI's site)

I recommend copying and pasting the commands to ensure there are no typing mistakes and speed up the install process. Remember to use Ctrl + Shift + V or Shift + Insert to paste into the terminal (or go to the terminals menu, select edit and click paste).

Before you start

If you have previously attempted installing Catalyst, remove any leftover files by following the Removing the Driver section. Make sure universe and multiverse are enabled in your repository sources (System -> Administration -> Software Sources). or Applications->Ubuntu Software Center->Edit->Software sources->Other software: check canonical partners.

Install the prerequisite packages:

sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot xserver-xorg-dev

If you are using the x86_64 architecture (64 bit):

sudo apt-get install lib32gcc1

Create a directory for the build environment and move to that directory

mkdir catalyst15.11 && cd catalyst15.11

Download the latest Catalyst package.

This package contains both the 32-bit and 64-bit driver.

wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86_64' http://www2.ati.com/drivers/linux/radeon-crimson-15.12-15.302-151217a-297685e.zip
unzip radeon-crimson-15.12-15.302-151217a-297685e.zip
chmod +x radeon-crimson-15.12-15.302-151217a-297685e.zip

Create and install .deb packages.

sudo sh ./radeon-crimson-15.12-15.302-151217a-297685e.zip --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb

In case of failure:

Remember these steps before you reboot your computer.

If the X server fails to start, switch to a new TTY using ctrl+alt+F2. Log in, and attempt to start the X server.

sudo start lightdm

If it fails to start, you will likely see a stacktrace, and immediately above it will be something along the lines of "Could not stat /usr/lib64/fglrx/switchlibGL" which means that you failed to copy the executables properly. Ctrl+c, and immediately copy the switchlibGL and switchlibglx executables to the fglrx folder in /usr/lib64/ or /usr/lib32/.

If all else fails, revert your xorg.conf and reboot.

sudo cp /etc/X11/xorg.conf.orig /etc/X11/xorg.conf

This should return your original display.

Generate a new /etc/X11/xorg.conf file

Unfortunately, there is no sure way to generate the ATI version of the Xorg.conf file. It is entirely dependent on your configuration. The following subsections will attempt to address possible (and tested) variations for their respective configurations.

Generic Config

This will work for most people:

sudo amdconfig --initial -f

Minimal Config

A very basic /etc/X11/xorg.conf file might be what you need if you have a new card that's not fully supported by amdconfig. Here follows the entirety of a minimal xorg.conf file for the Radeon HD 6870:

Section "Device"
 Identifier "ATI radeon 6870"
 Driver "fglrx"
EndSection

X2/Dual GPU Cards

If you have an X2 card (e.g. 5970), use... !!Do not use for two separate cards in crossfire!!

sudo amdconfig --initial -f --adapter=all

Dual/Multi Monitors

If you have a dual monitor display (also known as "Big Desktop"), use:

sudo amdconfig --initial -f
sudo amdconfig --set-pcs-str="DDX,EnableRandR12,FALSE"

This was confirmed in http://phoronix.com/forums/showthread.php?t=18553. Be advised that you may need to manually set the correct refresh rate for your second monitor through catalyst.

Force use of the new xorg.conf (if necessary)

Some people find that changes to xorg.conf don't get used by the driver. To force the ATI driver to adopt changes made to xorg.conf, use the following command:

sudo amdconfig --input=/etc/X11/xorg.conf --tls=1

Test your installation

NOTE: if you don't reboot first, fglrxinfo gives an error message. Reboot the computer and type

fglrxinfo

into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Using fglrxinfo on a system with Catalyst 12-3 and a RadeonHD 4550 returns:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 4550 (This line may be different depending on what graphics card you are using.)
OpenGL version string: 3.3.11566 Compatibility Profile Context (This line may be different depending on what graphics card and 
Catalyst version you are using.)

Now, try:

fgl_glxgears

If you experience issues or a hang, you may need to disable fast TLS.

sudo amdconfig --tls=0

Installing Catalyst Manually (from AMD/ATI's site) BETA/EXPERIMENTAL

I recommend copying and pasting the commands to ensure there are no typing mistakes and speed up the install process. Remember to use Ctrl + Shift + V or Shift + Insert to paste into the terminal (or go to the terminals menu, select edit and click paste).

Before you start

If you have previously attempted installing Catalyst, remove any leftover files by following the Removing the Driver section. Make sure universe and multiverse are enabled in your repository sources (System -> Administration -> Software Sources). or Applications->Ubuntu Software Center->Edit->Software sources->Other software: check canonical partners.

Install the prerequisite packages:

sudo apt-get install build-essential cdbs dh-make dkms execstack dh-modaliases linux-headers-generic fakeroot

If you are using the x86_64 architecture (64 bit):

sudo apt-get install lib32gcc1

Create a directory for the build environment and move to that directory

mkdir catalyst13.3beta3 && cd catalyst13.3beta3

Download the latest Catalyst package.

This package contains both the 32-bit and 64-bit driver.

wget http://www2.ati.com/drivers/beta/linux-amd-catalyst-14.6-beta-v1.0-may23.zip
unzip linux-amd-catalyst-14.6-beta-v1.0-may23.zip
chmod +x fglrx-14.20/amd-driver-installer-14.20-x86.x86_64.run

Create and install .deb packages.

sudo sh ./fglrx-14.20/amd-driver-installer-14.20-x86.x86_64.run --buildpkg Ubuntu/quantal
sudo dpkg -i fglrx*.deb

If building .deb packages fails, there is also an Alternative Manual Installation

When running the dpkg line, you may receive an error like:

Errors were encountered while processing:
  fglrx
  fglrx-amdcccle
  fglrx-dev

They may have attempted to install out of order. Install them individually as:

 sudo dpkg -i fglrx_*.deb
 sudo dpkg -i fglrx-amdcccle*.deb 
 sudo dpkg -i fglrx-dev*.deb

You should see a successful result similar to:

user@user-ubuntu:~# sudo dpkg -i fglrx_9.010-0ubuntu1_amd64.deb 
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx 2:9.010-0ubuntu1 (using fglrx_9.010-0ubuntu1_amd64.deb) ...
Removing all DKMS Modules
Error! There are no instances of module: fglrx
9.010 located in the DKMS tree.
Done.
Unpacking replacement fglrx ...
Setting up fglrx (2:9.010-0ubuntu1) ...
update-alternatives: using /usr/lib/fglrx/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/fglrx/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in auto mode
update-initramfs: deferring update (trigger activated)
Loading new fglrx-9.010 DKMS files...
First Installation: checking all kernels...
Building only for 3.5.0-17-generic
Building for architecture x86_64
Module build for the currently running kernel was skipped since the
kernel source for this kernel does not seem to be installed.
update-initramfs: deferring update (trigger activated)
Processing triggers for ureadahead ...
Processing triggers for bamfdaemon ...
Rebuilding /usr/share/applications/bamf.index...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.5.0-17-generic
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
user@user-ubuntu:~# sudo dpkg -i fglrx-amdcccle_9.010-0ubuntu1_amd64.deb 
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx-amdcccle 2:9.010-0ubuntu1 (using fglrx-amdcccle_9.010-0ubuntu1_amd64.deb)  ...
Unpacking replacement fglrx-amdcccle ...
Setting up fglrx-amdcccle (2:9.010-0ubuntu1) ...
user@user-ubuntu:~# sudo dpkg -i fglrx-dev_9.010-0ubuntu1_amd64.deb 
(Reading database ... 168748 files and directories currently installed.)
Preparing to replace fglrx-dev 2:9.010-0ubuntu1 (using fglrx-dev_9.010-0ubuntu1_amd64.deb) ...
Unpacking replacement fglrx-dev ...
Setting up fglrx-dev (2:9.010-0ubuntu1) ...

In case of failure:

Remember these steps before you reboot your computer.

If the X server fails to start, switch to a new TTY using ctrl+alt+F2. Log in, and attempt to start the X server.

sudo startx

If it fails to start, you will likely see a stacktrace, and immediately above it will be something along the lines of "Could not stat /usr/lib64/fglrx/switchlibGL" which means that you failed to copy the executables properly. Ctrl+c, and immediately copy the switchlibGL and switchlibglx executables to the fglrx folder in /usr/lib64/ or /usr/lib32/.

If all else fails, revert your xorg.conf and reboot.

sudo cp /etc/X11/xorg.conf.orig /etc/X11/xorg.conf

This should return your original display.

Generate a new /etc/X11/xorg.conf file

Unfortunately, there is no sure way to generate the ATI version of the Xorg.conf file. It is entirely dependent on your configuration. The following subsections will attempt to address possible (and tested) variations for their respective configurations.

Generic Config

This will work for most people:

sudo amdconfig --initial -f

Minimal Config

A very basic /etc/X11/xorg.conf file might be what you need if you have a new card that's not fully supported by amdconfig. Here follows the entirety of a minimal xorg.conf file for the Radeon HD 6870:

Section "Device"
 Identifier "ATI radeon 6870"
 Driver "fglrx"
EndSection

X2/Dual GPU Cards

If you have an X2 card (e.g. 5970), use... !!Do not use for two separate cards in crossfire!!

sudo amdconfig --initial -f --adapter=all

Dual/Multi Monitors

If you have a dual monitor display (also known as "Big Desktop"), use:

sudo amdconfig --initial -f
sudo amdconfig --set-pcs-str="DDX,EnableRandR12,FALSE"

This was confirmed in http://phoronix.com/forums/showthread.php?t=18553. Be advised that you may need to manually set the correct refresh rate for your second monitor through catalyst.

Force use of the new xorg.conf (if necessary)

Some people find that changes to xorg.conf don't get used by the driver. To force the ATI driver to adopt changes made to xorg.conf, use the following command:

sudo amdconfig --input=/etc/X11/xorg.conf --tls=1

Test your installation

NOTE: if you don't reboot first, fglrxinfo gives an error message. Reboot the computer and type

fglrxinfo

into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Using fglrxinfo on a system with Catalyst 12-3 and a RadeonHD 4550 returns:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 4550 (This line may be different depending on what graphics card you are using.)
OpenGL version string: 3.3.11566 Compatibility Profile Context (This line may be different depending on what graphics card and 
Catalyst version you are using.)

Now, try:

fgl_glxgears

If you experience issues or a hang, you may need to disable fast TLS.

sudo amdconfig --tls=0

Just in case

Write down or remember this series of Alt+PrntScr key combinations, just in case your screen should go black and Ctrl+Alt+F1 and Ctrl+Alt+Backspace doesn't work.

Alt+PrntScr+r, Alt+PrntScr+s, Alt+PrntScr+e, Alt+PrntScr+i, Alt+PrntScr+n, Alt+PrntScr+u, Alt+PrntScr+b

These key-presses will reboot the system safely. To remember the key-presses, remember this nonsensical phrase: "Raising Skinny Elephants Is Never Utterly Boring".

An alternative would be to hold down Ctrl+Alt+SysRq (SysRq is usually the same key as PrintScreen) and type very slowly R E I S U B. A way to remember this is by inverting the word: "BUSIER" or remembering a phrase: "Restart Even If System Utterly Broken". This would also safely shutdown the system.

Hardware Video Decode Acceleration (EXPERIMENTAL)

Using XBMC player (XvBA)

XBMC has added support for accelerating video using XvBA/libxvba directly, but the support is currently not in the xbmc package in Ubuntu's repositories. To install the XvBA-enabled version of xbmc:

sudo apt-add-repository ppa:wsnipex/xbmc-xvba
sudo apt-get update
sudo apt-get install xbmc

Using the xvba-va Driver (VA-API)

NOTE: The VA-API wrapper for XvBA has been dead code for a while now. It will probably give you some acceleration of HD formats, but using the previously mentioned xbmc PPA is a better solution.

This is confirmed to work for newer RadeonHD GPU's (those with UVD2). If you have a RadeonHD 4000-series or newer, you have UVD2. To see the complete list: http://en.wikipedia.org/wiki/Unified_Video_Decoder#UVD_enabled_GPUs

sudo apt-get install xvba-va-driver libva-glx1 libva-x11-1 vainfo
vainfo

vainfo should return something like the following (and no errors):

     libva: libva version 0.32.0
     Xlib:  extension "XFree86-DRI" missing on display ":0.0".
     libva: va_getDriverName() returns 0
     libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
     libva: va_openDriver() returns 0
     vainfo: VA API version: 0.32
     vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
     vainfo: Supported profile and entrypoints
     VAProfileH264High               :	VAEntrypointVLD
     VAProfileVC1Advanced            :	VAEntrypointVLD

If vainfo returns an error, you may need to create a symlink:

sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/x86_64-linux-gnu/dri/fglrx_drv_video.so  #for 64-bit
sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/dri/fglrx_drv_video.so  #for 32-bit
     

Once you've confirmed that vainfo is correct, you can test video playback. A good test player for va-api is VLC. You can enable va-api in Tools -> Preferences -> Input and Codecs. Check the box named "Use GPU acceleration (experimental)" and then restart VLC.


Other

There is possibility to enable > H.264 Level 5.1 decoding in the driver which "has been in the driver for some time but not enabled by default"

sudo amdconfig --set-pcs-u32=MCIL,HWUVD_H264Level51Support,1

or

sudo service lightdm stop
sudo cp -p  /etc/ati/amdpcsdb  /etc/ati/amdpcsdb.bak
sudo sed -i '/UvdEnabled=V1/ a HWUVD_H264Level51Support=V1' /etc/ati/amdpcsdb
sudo reboot

Updating Catalyst/fglrx

DO NOT try to install a new version over an old one. Follow the 'Removing Catalyst/fglrx' section below to remove your existing driver, and then you can start at 'Downloading the latest Catalyst' to install the new one.

Removing Catalyst/fglrx

The uninstall script in the first command will only exist if you downloaded the drivers and installed them directly (rather than building packages as this guide does). Skip the first command if it does not exist.

sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*

If you plan on using open-source drivers, you will need to reinstall some packages because Catalyst overwrites or diverts some key 3D libraries with proprietary versions. For more information on this issue, see this Ubuntu wiki page

sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
sudo apt-get install xserver-xorg-video-ati
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo rm -rf /etc/ati

If you receive

$ E: Internal Error, No file name for libgl1-mesa-dri

Change the third command above to:

sudo apt-get install --reinstall libgl1-mesa-glx:i386 libgl1-mesa-glx:amd64 libgl1-mesa-dri:i386 libgl1-mesa-dri:amd64 xserver-xorg-core

Issues

Video Tearing

AMD/ATI claims that the "Tear Free Video" option is enabled by default, but that wasn't the case with Catalyst 12-3 installed on Kubuntu 12.04. If you're having issues with tearing, make sure that "Tear Free Video" is on. You can find this option in the Catalyst Control Center under 'Display Options' or you can use the following command:

sudo amdconfig --sync-video=on

The option will not take effect until you restart X (i.e. log out).

If you're using compositing, you should also make sure that vsync is enabled in the compositor's settings. I found that vsync was enabled by default, but here are the appropriate settings should you want to experiment.

kwin

You can enable vsync for kwin in System Settings -> Desktop Effects -> Advanced tab

Compiz (Unity/GNOME-Shell)

TODO: See if there's a friendlier way to make sure vsync is enabled without installing ccsm.

Install the compiz settings manager:

sudo apt-get install compizconfig-settings-manager
ccsm

The 'Sync to Vblank' is found in the 'OpenGL' subsection of the 'General' group

Hybrid Graphics and Catalyst

There are two basic types of hybrid designs. Older hybrid systems use a multiplexor (mux) to switch between GPU's. Newer systems (those with PowerXpress >= 4.0) are muxless. As far as I can tell, PowerXpress 4.0 started with RadeonHD 6000-series GPU's, and systems with older ATI GPU's have a mux, but don't quote that.

ATI/ATI Hybrids

As of Catalyst 11-8, switching between two ATI cards (and maybe Intel/ATI muxless too?) is supposed to be doable, though it's not clear if that applies to all ATI/ATI hybrids or only the muxless ones. One would use amdconfig's PowerXpress options to switch back and forth between the integrated and discrete cards, like so:

amdconfig --pxl            # List current activated GPU
sudo amdconfig --px-dgpu   # Activate discrete GPU (High-Performance mode), must re-start X to take effect
sudo amdconfig --px-igpu   # Activate integrated GPU (Power-Saving mode), must re-start X to take effect

After switching, one would log out and back in to restart X.

Intel/ATI Hybrids

By using the officially provided drivers, there are two problems ( Launchpad Bug: #1068404):

An incompatibility problem between intel and fglrx drivers (This gives segmentation fault at X server)
Some paths missing for openGL operation of the fglrx driver (This prevents applications that require direct rendering, e.g. Unity/games/etc, from loading correctly)

If you follow the instructions described in the Binary Driver HOWTO, you should get functional configuration


There is still another bug if you use the integrated GPU (Intel), making the X server crashing ( Launchpad Bug: #1088220 )

A workaround for now is to use the discrete GPU (ATI)


For more information you may want to follow this forum topic

Script solution

Script by anion155, http://pastebin.com/1ALmnqx5.
It can help you install & uninstall fglrx drivers for this configuration.

Build Fails and Log Shows "mixed implicit and normal rules. Stop."

If the installation fails and you find the above message in /var/lib/dkms/fglrx/<version_number>/build/make.log, it may be because you're using a pentium-build wrapper around gcc. See what the following ls command returns:

ls -la /usr/bin/gcc

If it shows that gcc is a link to builder-cc, temporarily redirect the link to point to the real gcc (gcc-4.6 in Ubuntu Precise). This should allow you to install fglrx:

sudo ln -sf /usr/bin/gcc-4.6 /usr/bin/gcc

When you're finished installing the driver, return the gcc link to its original value:

sudo ln -sf /usr/bin/builder-cc /usr/bin/gcc

Launchpad link for this bug: https://bugs.launchpad.net/ubuntu/+source/fglrx-installer/+bug/555957

"Errors were encountered while processing: fglrx-amdcccle" (on 64-bit systems)

Most likely, you probably did not have the ia32-libs-multiarch:i386 lib32gcc1 libc6-i386 packages installed beforehand. If you have a 64 bit install, the above dpkg command may complain that "Errors were encountered while processing: fglrx-amdcccle". This is because of a dependency of the amdccle package on 32 bit libraries. If you receive this error, use the following command, which will force the installation of all of the 32 bit dependencies, and then the amdcccle package:

sudo apt-get -f install

Catalyst 15.12 on 64-bit systems may require the --force-overwrite command in the above dpkg command:

sudo dpkg -i --force-overwrite fglrx*.deb

Problems Starting Xserver

If you get a black screen hang, the first thing to check is if xorg.conf is the problem.

You can disable the xorg.conf with:

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.disabled

Reboot and check to see if things work now.

You can reinstate the file with:

sudo mv /etc/X11/xorg.conf.disabled /etc/X11/xorg.conf

Before tweaking ACPI settings, try ensuring /dev/null is chmodded to 0666. This intermittently changes when using the nano (and possibly other) editors with sudo and the group/world permissions are unset. This leads to the ATI drivers hanging on boot or otherwise. A quick and dirty init script saved as /etc/init/chmodnull does the trick -

start on filesystem
script

chmod 0666 /dev/null chmod 0666 /lib/udev/devices/null

end script

This has been tested using Ubuntu 10.04 64-bit on a ATI Radeon HD 4830 (HP Envy 15-1060ea). It's worth noting that I had to disable TLS (amdconfig --tls=0) to get things to stay stable!

If you've properly installed the driver, but experience problems when starting the X server, such as hanging, black/white/gray screen, distortion, etc., your system BIOS may have a buggy ACPI implementation. To work around, press Ctrl+Alt+F1 to get to a terminal (or failing that, boot to recovery mode) and run:

sudo amdconfig --acpi-services=off

If this method works, you should consider checking your system vendor's BIOS changelogs for relevant ACPI fixes, updating your BIOS, and reenabling the driver's ACPI services.

Unsupported Hardware Watermark

This can happen if your card's PCI ID wasn't officially certified to work with a particular version of Catalyst. It does not necessarily mean that your card is unsupported, but it does mean that you shouldn't file bugs with that particular card/driver combination. If you installed the driver by downloading it from AMD/ATI, installing a newer version of Catalyst will probably help.

If you installed the proprietary driver included with Ubuntu or you do not want to upgrade to a newer version, it is possible to work around the issue. First check if AMD's signature file has a proper signature:

sudo nano /etc/ati/signature

If the file only contains the word UNSIGNED, replace the line with:

9777c589791007f4aeef06c922ad54a2:ae59f5b9572136d99fdd36f0109d358fa643f2bd4a2644d9efbb4fe91a9f6590a145:f612f0b01f2565cd9bd834f8119b309bae11a1ed4a2661c49fdf3fad11986cc4f641f1ba1f2265909a8e34ff1699309bf211a7eb4d7662cd9f8e3faf14986d92f646f1bc

Reboot and see if the watermark is gone. If not, try using a control file from a older version of Catalyst than the one you're running:

cd ~/; mkdir catalyst12.10; cd catalyst12.10/
wget http://www2.ati.com/drivers/linux/amd-driver-installer-catalyst-12.10-x86.x86_64.zip
unzip amd-driver-installer-catalyst-12.10-x86.x86_64.zip
chmod +x amd-driver-installer-catalyst-12.10-x86.x86_64.run
./amd-driver-installer-catalyst-12.10-x86.x86_64.run --extract driver
sudo mv /etc/ati/control ~/control.bak
sudo cp driver/common/etc/ati/control /etc/ati

Hang at logout

If you experience hangs when logging out (of X) it is probably due to the /etc/ati/authatieventsd.sh script looking for X authorization files in the wrong place when it starts up. You can kill the hanging authatieventsd.sh processes from a console tty to allow the shutdown of the X server.

Before the following commands verify that /etc/ati/authatieventsd.sh exists after build and install, if not just do: (assuming that the installer is in the directory we used to install)

cd ~/catalyst15.12
sh amd-driver-installer-15.12-x86.x86_64.run --extract driver
sudo cp driver/packages/Ubuntu/dists/quantal/replacements/authatieventsd.sh /etc/ati/authatieventsd.sh
sudo chmod +x /etc/ati/authatieventsd.sh

This problem can be fixed permanently with:

sudo mkdir -p /var/lib/xdm/authdir
sudo ln -s /var/run/xauth /var/lib/xdm/authdir/authfiles

If that doesn't work then you can disable atieventsd with this command:

sudo /usr/sbin/update-rc.d -f atieventsd remove

You'll have to restart for this to take effect.

Can't remove fglrx with dpkg (diversion issue)

If dpkg refuses to remove an fglrx package and complains about a diversion of a file, you might need to manually remove it. For example, if dpkg complains:

dpkg-divert: mismatch on divert-to
  when removing `diversion of /usr/lib/libGL.so.1.2 to /usr/share/fglrx/diversions/libGL.so.1.2 by xorg-driver-fglrx'
  found `diversion of /usr/lib/libGL.so.1.2 to /usr/lib/fglrx/libGL.so.1.2.xlibmesa by xorg-driver-fglrx'

then:

sudo dpkg-divert --remove /usr/lib/libGL.so.1.2

This module/version combo is already installed

If you get this error-message, simply uninstall the previous version before installing the new one with:

sudo dkms remove -m fglrx --all

New kernel installed?

In theory, DKMS should automatically install the fglrx kernel module for your new kernel the first time you boot it. Should you need to manually install it:

sudo dkms build -m fglrx -k `uname -r`
sudo dkms install -m fglrx -k `uname -r`

if amdcccle doesn't work and says Identifier is not a valid word. Use lower case letter in xorg.conf

or specify all the correct parameters. For example:

sudo dkms build -m fglrx -v 9.012 -k 3.5.0-22-generic
sudo dkms install -m fglrx -v 9.012 -k 3.5.0-22-generic

amdconfig not found after installation

This scenario is possible when the driver installation has seemingly succeeded and is possibly related to previous fglrx installs, including those through Jockey (i.e. you first used drivers provided by Ubuntu but then upgraded to ones available from AMD's website). When doing amdconfig --initial after driver installation, you might end up not having the amdconfig available at all:

amdconfig: command not found

After booting you might receive X error '(EE) Failed to load module "fglrx" (module does not exist, 0)'. These do not necessarily indicate that the installation has failed completely. On command line, do

ls /usr/lib/fglrx/bin

and see if the command lists some Ati related programs. If they are listed but not found from /usr/bin, it is possible that the "update-alternatives" fglrx .deb installation does has been ignored. See man update-alternatives for more information about the concept and workings of alternatives. In practice, update-alternatives is supposed to create several symbolic links to the files in the fglrx directory, but it will be ignored if the alternatives for the very related gl_conf entry has been set to manual. Do

update-alternatives --get-selections | grep gl_conf

and see if the mode is manual instead of auto and if mesa is mentioned instead of fglrx in the path that is printed. In this case you need to

sudo update-alternatives --set gl_conf /usr/lib/fglrx/ld.so.conf

to set fglrx as the active alternative. You can alternatively (no pun intended) and additionally change the gl_conf into automatic mode before the installation this way:

sudo update-alternatives --auto gl_conf

After that, the alternatives should automatically be configured correctly when the graphics driver .debs are installed.

"update-alternatives: error" during install

During installation you may receive the following message:

update-alternatives: error: unable to make /usr/lib/xorg/modules/drivers/fglrx_drv.so.dpkg-tmp a symlink to /etc/alternatives/fglrx_drv: No such file or directory

This can be easily solved by creating directory "drivers" under /usr/lib/xorg/modules/

sudo mkdir /usr/lib/xorg/modules/drivers

'Can't exec "debian/rules": Permission denied at /usr/bin/dpkg-buildpackage line 507.' during deb generation

During installation you may receive the following message:

Can't exec "debian/rules": Permission denied at /usr/bin/dpkg-buildpackage line 507.

This can happen when your /tmp folder is mounted with the option "noexec". The noexec is suggested by many howtos regarding Ubuntu on SSD, when placing the /tmp in memory. A workaround can be found here: [2]

Errors during deb generation

You may recieve errors if you do not have devscripts, dh-make, execstack and dh-modaliases installed. Run apt-get to install, and the errors go away and the deb is generated correctly.

If you recieve the error dpkg-buildpackage: not found:

sudo apt-get install devscripts

If you recieve the error make: dh: command not found:

sudo apt-get install dh-make

If you recieve the error make: execstack: Command not found:

sudo apt-get install execstack

If you recieve the error make: dh_modaliases: Command not found:

sudo apt-get install dh-modaliases

Black screen after uninstalling old amd drivers

Start you computer in recovery mode and exit to root shell. Remount your partitions in rw mode:

mount -rw -o remount /
...

Go to your download directory and proceed with building and installing the drivers in recovery mode. All should be fine after a reboot.

References