Linux Mint: Difference between revisions
No edit summary |
|||
(19 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
===ATI Driver Installation on Mint 17.x=== | ===ATI Driver Installation on Mint 17.x(DO NOT USE ON Mint 18+!!!, fglrx/Crimson is deprecated)=== | ||
Line 9: | Line 9: | ||
* '''ati''' - actually a thin wrapper that will invoke the radeon driver (or another ati open-source driver for pre-Radeon cards). | * '''ati''' - actually a thin wrapper that will invoke the radeon driver (or another ati open-source driver for pre-Radeon cards). | ||
* '''radeon/radeonSI''' - open source driver supporting all Radeon cards. This driver has excellent 2D acceleration and compatibility with the Linux graphics stack. 3D acceleration is sufficient for desktop effects and a nice set of native Linux games, [http://mesamatrix.net/ Current development is increasing available features quickly, to check on the progress you can head to mesamatrix.net or click here] | * '''radeon/radeonSI''' - open source driver supporting all Radeon cards. This driver has excellent 2D acceleration and compatibility with the Linux graphics stack. 3D acceleration is sufficient for desktop effects and a nice set of native Linux games, [http://mesamatrix.net/ Current development is increasing available features quickly, to check on the progress you can head to mesamatrix.net or click here] | ||
* '''Catalyst (a.k.a fglrx)''' a proprietary "blob" (closed source binary) driver designed by ATI, with 3D code based | * '''Catalyst (a.k.a fglrx)''' a proprietary "blob" (closed source binary) driver designed by ATI, with 3D code based on their Windows driver. Only RadeonHD 5000+ chips are supported on recent Linux distros. | ||
= Updated Open Source Driver PPA's = | = Updated Open Source Driver PPA's = | ||
Line 41: | Line 41: | ||
Install the prerequisite packages: | Install the prerequisite packages: | ||
sudo apt | sudo apt install cdbs dh-make dkms execstack dh-modaliases libqtgui4 xserver-xorg-dev-lts-trusty | ||
''If you are using the x86_64 architecture (64 bit)'': | ''If you are using the x86_64 architecture (64 bit)'': | ||
sudo apt | sudo apt install lib32gcc1 | ||
== Installing Catalyst Manually (from AMD/ATI's site) ''STABLE'' == | == Installing Catalyst Manually (from AMD/ATI's site) ''STABLE'' == | ||
Line 54: | Line 54: | ||
wget <nowiki>--referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' http://www2.ati.com/drivers/linux/</nowiki>{{Catalystfilename}} | wget <nowiki>--referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' http://www2.ati.com/drivers/linux/</nowiki>{{Catalystfilename}} | ||
unzip {{Catalystfilename}} | unzip {{Catalystfilename}} | ||
cd fglrx-15.302/ | |||
=== Create and install .deb packages === | === Create and install .deb packages === | ||
Line 60: | Line 61: | ||
When/if this is the case you'll need to [[#When fglrx-core_conflicts_with_libopencl1| modify the fglrx-core package]] '''before executing the third command below.''' | When/if this is the case you'll need to [[#When fglrx-core_conflicts_with_libopencl1| modify the fglrx-core package]] '''before executing the third command below.''' | ||
chmod a+x {{Catalystrunname}} | |||
sudo ./{{Catalystrunname}} --buildpkg Ubuntu/trusty | |||
sudo dpkg -i fglrx*.deb | |||
=== Generate a basic Xorg configuration === | |||
After all the fglrx .deb components have been installed but BEFORE RESTARTING is is highly recommended you generate a basic xorg configuration file. | |||
Generally speaking fglrx will do this automatically upon next boot, but sometimes it does not(resulting in black screens and xserver start failures) | |||
Better safe than sorry. | |||
Generate a generic configuration with the following command: | |||
sudo amdconfig --initial -f | |||
Then reboot. | |||
If building .deb packages fails you can try an [http://wiki.cchtml.com/index.php/Ubuntu_Precise_Installation_Guide#Alternative_Manual_Installation Alternative Manual Installation] which does NOT create deb packages and might cause some trouble when trying to uninstall. | If building .deb packages fails you can try an [http://wiki.cchtml.com/index.php/Ubuntu_Precise_Installation_Guide#Alternative_Manual_Installation Alternative Manual Installation] which does NOT create deb packages and might cause some trouble when trying to uninstall. | ||
Line 169: | Line 180: | ||
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 | 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 | sudo apt install xvba-va-driver | ||
=== Utilize VA-API Acceleration === | === Utilize VA-API Acceleration === | ||
Line 176: | Line 187: | ||
For Gstreamer acceleration (Firefox, Totem) you also need: | For Gstreamer acceleration (Firefox, Totem) you also need: | ||
sudo apt | sudo apt install gstreamer1.0-vaapi | ||
Note, however, that installing the above package is [https://bugs.launchpad.net/ubuntu/+source/gstreamer-vaapi/+bug/1395070 known to crash Firefox] when trying to play HTML5 video. | Note, however, that installing the above package is [https://bugs.launchpad.net/ubuntu/+source/gstreamer-vaapi/+bug/1395070 known to crash Firefox] when trying to play HTML5 video. | ||
Line 186: | Line 197: | ||
It uses OpenGL under the hood to accelerate drawing and scaling and VA-API (if available) to accelerate video decoding. | It uses OpenGL under the hood to accelerate drawing and scaling and VA-API (if available) to accelerate video decoding. | ||
sudo add-apt-repository ppa:nilarimogard/webupd8 | sudo add-apt-repository ppa:nilarimogard/webupd8 | ||
sudo apt | sudo apt update | ||
sudo apt | sudo apt install libvdpau-va-gl1 | ||
Adobe Flash doesn't use hardware acceleration by default on Linux so we'll have to force it. | Adobe Flash doesn't use hardware acceleration by default on Linux so we'll have to force it. | ||
Line 207: | Line 218: | ||
The tool ''"vainfo"'' allows you to test the proper functioning of the xvba-va driver. | The tool ''"vainfo"'' allows you to test the proper functioning of the xvba-va driver. | ||
sudo apt | sudo apt install vainfo | ||
vainfo | vainfo | ||
Line 233: | Line 244: | ||
sudo add-apt-repository ppa:oibaf/graphics-drivers | sudo add-apt-repository ppa:oibaf/graphics-drivers | ||
sudo apt | sudo apt update | ||
sudo apt | sudo apt upgrade | ||
Reboot your system and proceed by installing the VDPAU driver. | Reboot your system and proceed by installing the VDPAU driver. | ||
sudo apt | sudo apt install mesa-vdpau-drivers | ||
You can test the VDPAU driver by using mplayer. | You can test the VDPAU driver by using mplayer. | ||
Line 258: | Line 269: | ||
To revert to standard Ubuntu drivers | To revert to standard Ubuntu drivers | ||
sudo apt | sudo apt install ppa-purge | ||
sudo ppa-purge ppa:oibaf/graphics-drivers | sudo ppa-purge ppa:oibaf/graphics-drivers | ||
Line 266: | Line 277: | ||
=Removing Catalyst/fglrx= | =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) | 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). | ||
sudo apt remove --purge fglrx* | |||
sudo apt | |||
=IMPORTANT!= | |||
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] | 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 | sudo apt remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon | ||
sudo apt | sudo apt install xserver-xorg-video-ati | ||
sudo apt | sudo apt install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core | ||
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup | sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup | ||
sudo rm -rf /etc/ati | sudo rm -rf /etc/ati | ||
Line 283: | Line 294: | ||
Change the third command above to: | Change the third command above to: | ||
sudo apt | sudo apt install --reinstall libgl1-mesa-glx:i386 libgl1-mesa-glx:amd64 libgl1-mesa-dri:i386 libgl1-mesa-dri:amd64 xserver-xorg-core | ||
= Issues = | = Issues = | ||
Line 303: | Line 314: | ||
Install the compiz settings manager: | Install the compiz settings manager: | ||
sudo apt | sudo apt install compizconfig-settings-manager | ||
ccsm | ccsm | ||
Line 357: | Line 368: | ||
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: | 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 | sudo apt install -f | ||
Catalyst {{Template:Catalystversion}} on 64-bit systems may require the ''--force-overwrite'' command in the above ''dpkg'' command: | Catalyst {{Template:Catalystversion}} on 64-bit systems may require the ''--force-overwrite'' command in the above ''dpkg'' command: | ||
Line 557: | Line 568: | ||
After you have created or downloaded the .deb files, but '''before you install them''', repackage the fglrx-core package by doing the following | After you have created or downloaded the .deb files, but '''before you install them''', repackage the fglrx-core package by doing the following | ||
dpkg-deb -R fglrx-core_15. | dpkg-deb -R fglrx-core_15.302-0ubuntu1_amd64.deb fglrx-core | ||
sed -ri 's/(Conflicts|Provides).*/\1: fglrx-driver-core/' fglrx-core/DEBIAN/control | sed -ri 's/(Conflicts|Provides).*/\1: fglrx-driver-core/' fglrx-core/DEBIAN/control | ||
sudo dpkg-deb -b fglrx-core/ fglrx-core_15. | sudo dpkg-deb -b fglrx-core/ fglrx-core_15.302-0ubuntu1_amd64.deb | ||
Now continue to install the packages as usual (usually dpkg -i) | Now continue to install the packages as usual (usually dpkg -i) | ||
== "apt | == "apt upgrade" overwrites the packages you've manually installed == | ||
You may find that apt | You may find that apt will "upgrade" the version you've installed to the version from an upstream repository. To stop this behavior you can run | ||
sudo apt-mark hold fglrx-dev fglrx-core fglrx fglrx-amdcccle | sudo apt-mark hold fglrx-dev fglrx-core fglrx fglrx-amdcccle | ||
If you later want to reenable this functionality you can run | If you later want to reenable this functionality you can run |
Latest revision as of 18:05, 22 October 2016
ATI Driver Installation on Mint 17.x(DO NOT USE ON Mint 18+!!!, fglrx/Crimson is deprecated)
The Options
Users with ATI cards have the following driver options:
- vesa - very basic, lacks 2D/3D acceleration, and focuses on compatibility with all VESA-compliant graphics cards. It is good for starting the GUI environment when no accelerated driver is available/working, and little else.
- ati - actually a thin wrapper that will invoke the radeon driver (or another ati open-source driver for pre-Radeon cards).
- radeon/radeonSI - open source driver supporting all Radeon cards. This driver has excellent 2D acceleration and compatibility with the Linux graphics stack. 3D acceleration is sufficient for desktop effects and a nice set of native Linux games, Current development is increasing available features quickly, to check on the progress you can head to mesamatrix.net or click here
- Catalyst (a.k.a fglrx) a proprietary "blob" (closed source binary) driver designed by ATI, with 3D code based on their Windows driver. Only RadeonHD 5000+ chips are supported on recent Linux distros.
Updated Open Source Driver PPA's
- oibaf's ppa: https://launchpad.net/~oibaf/+archive/graphics-drivers
- Xorg-edgers: This bleeding-edge PPA offers video driver-related components straight from their code (git) repositories. Follow the instructions at: https://launchpad.net/~xorg-edgers/+archive/ppa
BOTH OF THESE OPTIONS CAN BE VERY UNSTABLE, USE CAUTION!!
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). 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 any modern/supported version of Ubuntu! !!!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 have the option of using the Catalyst Legacy driver, but you will need to install/use Ubuntu 12.04.1
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.
Install the prerequisite packages:
sudo apt install cdbs dh-make dkms execstack dh-modaliases libqtgui4 xserver-xorg-dev-lts-trusty
If you are using the x86_64 architecture (64 bit):
sudo apt install lib32gcc1
Installing Catalyst Manually (from AMD/ATI's site) STABLE
Download the latest Catalyst package
This package contains both the 32-bit and 64-bit driver.
mkdir catalyst15.12 && cd catalyst15.12 wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' 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 cd fglrx-15.302/
Create and install .deb packages
If you have Wine installed, the driver installation may fail due to a conflict with a library included with Wine.
When/if this is the case you'll need to modify the fglrx-core package before executing the third command below.
chmod a+x amd-driver-installer-15.302-x86.x86_64.run sudo ./amd-driver-installer-15.302-x86.x86_64.run --buildpkg Ubuntu/trusty sudo dpkg -i fglrx*.deb
Generate a basic Xorg configuration
After all the fglrx .deb components have been installed but BEFORE RESTARTING is is highly recommended you generate a basic xorg configuration file.
Generally speaking fglrx will do this automatically upon next boot, but sometimes it does not(resulting in black screens and xserver start failures)
Better safe than sorry.
Generate a generic configuration with the following command:
sudo amdconfig --initial -f
Then reboot.
If building .deb packages fails you can try an Alternative Manual Installation which does NOT create deb packages and might cause some trouble when trying to uninstall.
Installing Catalyst Manually (from AMD/ATI's site) BETA/EXPERIMENTAL NOT SUGGESTED!
Note that the beta drivers aren't neccassarily newer than the stable drivers.
Download the latest Catalyst package
This package contains both the 32-bit and 64-bit driver.
mkdir catalyst-14.6beta1.0jul11 && cd catalyst-14.6beta1.0jul11 wget --referer='http://support.amd.com/en-us/download/desktop?os=Linux+x86' http://www2.ati.com/drivers/beta/linux-amd-catalyst-14.6-beta-v1.0-jul11.zip unzip linux-amd-catalyst-14.6-beta-v1.0-jul11.zip cd fglrx-14.20
Create and install .deb packages
sudo ./amd-driver-installer-14.20-x86.x86_64.run --buildpkg Ubuntu/trusty sudo dpkg -i fglrx*.deb
If building .deb packages fails, there is also an Alternative Manual Installation
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 AMD, 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: Advanced Micro Devices, Inc. OpenGL renderer string: AMD Radeon HD 6670 -- (This line may be different depending on what graphics card you are using!) OpenGL version string: 4.3.12798 Compatibility Profile Context 13.35.1005 -- (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
Using VA-API
VA-API is supported by default as of Catalyst 14.12. No additional driver has to be installed any more. The xvba-va driver section below only applies to Catalyst 14.9 and older.
Using the xvba-va driver (pre Catalyst 14.12)
NOTE: The VA-API wrapper for XvBA has been dead code for a while now. It will give you some acceleration of HD formats though.
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 install xvba-va-driver
Utilize VA-API Acceleration
A good player the utilizes va-api is VLC. You can enable va-api in Tools -> Preferences -> Input and Codecs. Check the box named "Use GPU accelerated decoding" and then restart VLC.
For Gstreamer acceleration (Firefox, Totem) you also need:
sudo apt install gstreamer1.0-vaapi
Note, however, that installing the above package is known to crash Firefox when trying to play HTML5 video.
Flash Hardware Video Decode Acceleration (EXPERIMENTAL)
This only applies to Firefox and other NPAPI-compatible web browsers not Pepper Flash included in Chrome.
This next part will provide a generic VDPAU library. It uses OpenGL under the hood to accelerate drawing and scaling and VA-API (if available) to accelerate video decoding.
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install libvdpau-va-gl1
Adobe Flash doesn't use hardware acceleration by default on Linux so we'll have to force it.
sudo mkdir /etc/adobe sudo echo -e "EnableLinuxHWVideoDecode =1\nOverrideGPUValidation =1" | sudo tee /etc/adobe/mms.cfg
Make sure you close Firefox and run it again with the following.
VDPAU_DRIVER=va_gl firefox
You can check if acceleration is working by right clicking a Flash video on YouTube and selecting "Stats for nerds". The stats box that shows up should display the following: "accelerated video rendering, accelerated video decoding"
Because of the highly experimental nature of this method it is not recommended to enable this system-wide. It is likely to cause problems with VDPAU-enabled applications. If, however, you don't want to keep starting Firefox with the above command (or just create a shortcut for it) you can enable the VDPAU acceleration system-wide with the following.
sudo sh -c "echo 'export VDPAU_DRIVER=va_gl' >> /etc/profile"
And reboot your system.
Test VA-API Acceleration
The tool "vainfo" allows you to test the proper functioning of the xvba-va driver.
sudo apt install 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. For 64-bit systems:
sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/x86_64-linux-gnu/dri/fglrx_drv_video.so
For 32-bit systems:
sudo ln -s /usr/lib/va/drivers/fglrx_drv_video.so /usr/lib/dri/fglrx_drv_video.so
Using VDPAU (EXPERIMENTAL)
Requires the latest open source driver provided by Oibaf in his PPA.
sudo add-apt-repository ppa:oibaf/graphics-drivers sudo apt update sudo apt upgrade
Reboot your system and proceed by installing the VDPAU driver.
sudo apt install mesa-vdpau-drivers
You can test the VDPAU driver by using mplayer.
mplayer -vo vdpau -vc ffmpeg12vdpau yourvideofile
Flash Hardware Video Decode Acceleration
This only applies to Firefox and other NPAPI-compatible web browsers not Pepper Flash included in Chrome.
Adobe Flash doesn't use hardware acceleration by default on Linux so we'll have to force it.
sudo mkdir /etc/adobe sudo echo -e "EnableLinuxHWVideoDecode =1\nOverrideGPUValidation =1" | sudo tee /etc/adobe/mms.cfg
Restart Firefox.
You can check if acceleration is working by right clicking a Flash video on YouTube and selecting "Stats for nerds". The stats box that shows up should display the following: "accelerated video rendering, accelerated video decoding"
Revert to original drivers
To revert to standard Ubuntu drivers
sudo apt install ppa-purge sudo ppa-purge ppa:oibaf/graphics-drivers
Updating Catalyst/fglrx
DO NOT TRY INSTALLING A NEWER FGLRX OVER AN OLDER 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).
sudo apt remove --purge fglrx*
IMPORTANT!
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 remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon sudo apt install xserver-xorg-video-ati sudo apt 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 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)
TODO: See if there's a friendlier way to make sure vsync is enabled without installing ccsm.
Install the compiz settings manager:
sudo apt 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 three problems ( Launchpad Bug: #1068404):
- An incompatibility problem between intel and fglrx drivers (This gives segmentation fault at X server)
- An incompatibility problem between intel and fglrx drivers that gives an error related to allocation of resources in Xorg log file.
- 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.
If however you suffer from the problem related to intel driver not able to allocate resources, you need to install the older intel driver 2.20.2-1ubuntu1 which can be found at https://launchpad.net/ubuntu/quantal/+source/xserver-xorg-video-intel
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
This post got both the integrated (Intel 3rd Gen Core processor Graphics Controller) and discrete (Radeon HD 7670M) to work on Ubuntu 13.04 x64.
This GitHub rep provides comfortable indicator for switching between cards.
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.8 in Ubuntu Saucy). This should allow you to install fglrx:
sudo ln -sf /usr/bin/gcc-4.8 /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 install -f
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
Poor battery life (atieventsd not starting and/or not authenticating)
The atieventsd daemon is a daemon that monitors various acpi events (it does this by connecting with the acpid daemon), such as a laptop lid close, or an AC connect/disconnect, presumably to let the GPU know for reasons of power saving. See the man page for more info. On my system, `Ubuntu 13.10`, and with the latest drivers from Catalyst, 13.12, the daemon installs itself at `/etc/alternatives/x86_64-linux-gnu_atieventsd` with a symlink to that at `/usr/bin/atieventsd`.
The Sys-V-init script, `/etc/init.d/atieventsd` thinks the symlink is elsewhere, namely `/usr/sbin/atieventsd` (i.e. `sbin` not where it actually is, `bin`)
So to launch successfully the `atieventsd` on startup I had to do make the change:
DAEMONPATH=/usr/bin/atieventsd
Then remove/regenerate the run levels:
cd /etc/init.d mv atieventsd atieventsd.temp update-rc.d atieventsd remove mv atieventsd.temp atieventsd update-rc.d atieventsd defaults
This should now at least allow the daemon to correctly start/stop. You can test with `service atieventsd start`.
On each startup the daemon attempts to launch a script, `/etc/ati/authatieventsd.sh` (by default) , whose purpose is to grant the `atieventsd daemon` authorization access to the X server display, so it can send it various commands.
This script is called by `atieventd` like (see `ps aux | grep atieventsd` after starting the service or booting)
/etc/ati/authatieventsd.sh grant :0 /tmp/atieventsdGWt098
Here argument one (`$1`) is the action: *grant/revoke* , argument two (`$2`) is the X display number (e.g `:0`), and argument three (`$3`) is the file wanting the authority. See the `xauth` man page for some more background.
The problem is that if you look at the `/etc/ati/authatieventsd.sh` script you will see it does not support `lightdm`, you need to add the chunk of code inside the `GetServerAuthFile()` function:
#Check lightdm LIGHTDM_AUTH_FILE=/var/run/lightdm/root/$1 if [ -e $LIGHTDM_AUTH_FILE ]; then SERVER_AUTH_FILE=$LIGHTDM_AUTH_FILE DISP_SEARCH_STRING="unix$1" return 0 fi
to allow it find the correct server authentication file. Save this and you should see a file in the `/tmp` directory of the form `atieventsdGWt098`, the next time the `atieventd` is stopped/start (or next reboot), and if you do
xauth -f /tmp/atievntX.Dh1AJV list
you should get something like
yourHostname/unix:0 MIT-MAGIC-COOKIE-1 98deg034234kkn34234mmm3242
Showing that the daemon has indeed been granted authority.
You can also look at syslog, if you add the `--debug` option to `/etc/init.d/atieventsd` init file DAEMONOPTS options (regen run levels), and you should see everything is now working correctly, and the daemon is responding to events such as unplugging the AC and lid closes. For example:
<Dbg>: ACPI event: ac_adapter AC 00000080 00000000 <Dbg>: ACPI event: processor CPU0 00000081 00000000 processor CPU1 00000081 00000000 processor CPU2 00000081 00000000 processor CPU3 00000081 00000000
Maybe this will help extend battery life.
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: [1]
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.
When fglrx-core conflicts with libopencl1
If you have Wine installed (Linux Mint 17+ no longer ships with Wine by default, but you may have installed it if you tried to use windows software), the driver installation may fail due to a conflict with a library included with Wine.
After you have created or downloaded the .deb files, but before you install them, repackage the fglrx-core package by doing the following
dpkg-deb -R fglrx-core_15.302-0ubuntu1_amd64.deb fglrx-core sed -ri 's/(Conflicts|Provides).*/\1: fglrx-driver-core/' fglrx-core/DEBIAN/control sudo dpkg-deb -b fglrx-core/ fglrx-core_15.302-0ubuntu1_amd64.deb
Now continue to install the packages as usual (usually dpkg -i)
"apt upgrade" overwrites the packages you've manually installed
You may find that apt will "upgrade" the version you've installed to the version from an upstream repository. To stop this behavior you can run
sudo apt-mark hold fglrx-dev fglrx-core fglrx fglrx-amdcccle
If you later want to reenable this functionality you can run
sudo apt-mark unhold fglrx-dev fglrx-core fglrx fglrx-amdcccle
References and External Resources
Distribution Neutral Steps |