Ubuntu Intrepid Installation Guide: Difference between revisions

From cchtml.com
(→‎The open source drivers: glxgears is not a benchmark)
Line 14: Line 14:
By default, one of the open source drivers are used. If this works for you, you don't need to change anything.
By default, one of the open source drivers are used. If this works for you, you don't need to change anything.


These comes with Ubuntu:
These comes with the X.org X server:
* vesa
* vesa
* ati
* ati
Line 20: Line 20:
* radeonhd
* radeonhd


You might be interested in trying the radeonhd driver instead of the ati driver if your card supports it.
The "ati" driver will automatically choose the best driver for your video card. There is no need to change it from "ati" or even create an xorg.conf file in most cases. The xorg.conf file is being deprecated.
Just edit xorg.conf and change "ati" to "radeonhd" if that is the case. Just use the one that works best for you. "glxgears" is okay for a very rough benchmark.


= Installing the restricted drivers "the Ubuntu way" =
= Installing the restricted drivers "the Ubuntu way" =

Revision as of 14:04, 22 October 2008

Installation Guide for Ubuntu Intrepid (v 8.10)

The three alternatives

ATI has a bad track-record when it comes to drivers for Linux. There are countless stories about black screens, hours of configuring X, installing drivers and swearing at the computer. AMD has traditionally been a bit more Linux-friendly, so after AMD bought ATI, there has arised a slight hope for better drivers for ATI-cards on Linux.

However, creating better drivers takes some time, so while the people at AMD are doing their thing, people with ATI cards basically have these options:

  1. Use the open source drivers. These are stable and nice, but currently they have poor 3D-performance, if any. If that's not a problem, they are the Right Choice (tm).
  2. Use the restricted-driver management system that comes with Ubuntu to install the drivers (envy/jocky/"restricted" packages). As of today, 15. okt 2008, System->Administration->Hardware drivers works! Great job Ubuntu-people! Thanks! :))
  3. Install the drivers manually. This should be your last resort, and may not even work.

The open source drivers

By default, one of the open source drivers are used. If this works for you, you don't need to change anything.

These comes with the X.org X server:

  • vesa
  • ati
  • radeon
  • radeonhd

The "ati" driver will automatically choose the best driver for your video card. There is no need to change it from "ati" or even create an xorg.conf file in most cases. The xorg.conf file is being deprecated.

Installing the restricted drivers "the Ubuntu way"

Restricted Drivers Manager

For most users it won't be necessary to go into installation and configuration details of the driver. Ubuntu 8.10 (Intrepid) provides a notification saying that there are restricted drivers available. You just have to go there (Restricted Drivers Manager) and enable the "ATI accelerated graphics driver". Ubuntu will then install and configure the driver for you. If this does not provide the optimal solution you were looking for, please read ahead.

Installation

Just use the hardware manager on the system menu (jocky-gtk), or this:

This will install the current driver in Ubuntu's repository. It is older than the one AMD has released, but will be supported by Ubuntu. Note that there are different version-numbers for Catalyst itself and the amdccle program that comes with Catalyst!

sudo apt-get update	
sudo apt-get install linux-restricted-modules-generic restricted-manager
sudo apt-get install xorg-driver-fglrx
sudo depmod -a

The second line may not be necessary as you may already have restricted modules installed. Run it just in case. If the third line fails, you probably don't have the restricted repository enabled. See Pre-Installation.

After this, you'll may need to edit Xorg.conf:

sudo gedit /etc/X11/xorg.conf

In the device section, if it is not already there add:

File: /etc/X11/xorg.conf

Driver "fglrx"

Then to make sure Xorg is set up correctly, you'll have to let aticonfig "initialize" it:

sudo aticonfig --initial -f

aticonfig must be used every time you change xorg.conf!

After this you should be able to restart your computer and have the driver working. To test type

fglrxinfo

into a terminal. If the vendor string is not ATI, but Mesa, check #Removing Mesa drivers

Post-Installation Tweaks

To enable hardware accelerated video on pre-R500 cards, edit /etc/X11/xorg.conf to include the following lines without [...]

Section "Device"
	[...]
	Driver		"fglrx"
	Option		"VideoOverlay"	"on"
	Option		"OpenGLOverlay"	"off"
	[...]
EndSection

Note that when Visual Effects (Compiz) are active, flickering and artifacts may occur in OpenGL applications and hardware accelerated video windows (particularly with R300 chipset). To prevent this, disable Visual Effects.

Installing the restricted drivers manually

Explanation

The latest drivers from AMD (Catalyst 8.9) does not support the version of X that comes with Intrepid (xorg 7.4). That means that for now, X must be downgraded for it to work. Cross your fingers and toes that ATI/AMD will support Xorg 7.4 soon. :)

Downgrading is messy business, I sure hope there is a better way.

Catalyst 8.10 is now released by AMD and is included in intrepid, you no longer need to downgrade xorg to install the fglrx driver for 8.10 supports xorg 7.4

How to downgrade X from 7.4 to 7.3

Here's the way that worked for me:

  • Use "sudo", "sudo -s" or "su -" as needed.
  • The synaptic package manager can also be used for locking package versions ("holding") and other tasks.
  1. Use "aptitude remove" to remove all packages that are named something with "xorg" or "x11". Take note of which packages are removed that you wish to reinstall later on. This will remove the graphical environment, so be prepared to use ctrl-alt-backspace, ctrl-alt-f1, ctrl-alt-f7 and hopefully not alt-prntscr-r,s,e,i,n,u,b.
  2. Also downgrade "xkb-data", or else the keyboard may end up acting really weird.
  3. If dpkg really-really refuses to remove an older fglrx-package, it might be needed to edit /var/lib/dpkg/diversions and remove a few lines.
  4. In your /etc/apt/sources.list, search and replace "intrepid" with "hardy".
  5. aptitude update; aptitude safe-upgrade
  6. Install xorg again, this time with the hardy repositories, which makes sure you have xorg 7.3. This will take some time, grab a snack or meditate.
  7. "aptitude hold" all packages named something with "xorg" or "x11"
  8. Change back /etc/apt/sources.list, by replacing "hardy" with "intrepid".
  9. aptitude update; aptitude safe-upgrade. Make sure to deny any attempts to upgrade xorg 7.3 to 7.4.
  10. Now install the restricted drivers ("envyng -t" worked for me, but the keyboard ended up being wrong since I forgot to downgrade absolutely all X-packages).

How to install the restricted drivers (Catalyst 8.8 or 8.9)

wget https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-8-9-x86.x86_64.run

(this installer is for 32bit and 64bit systems)

Follow These Instructions Carefully

If you are using the x86_64 architecture (64 bit), be sure to inst "ia32-libs" before proceeding!

Make sure universe and multiverse are enabled in your repository sources.

Switch to the directory you downloaded the installer to.


sudo apt-get update
sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++5 dkms linux-headers-$(uname -r)

(package cdbs is required starting with Catalyst 8.8). On my machine it was installed during the package build process following the below command.

Now use the following command to create the .deb files you will be using for installation:

sh ati-driver-installer-8-9-x86.x86_64.run --buildpkg Ubuntu/hardy

"hardy" is not a typo.

If that command does not work, download the driver itself from the official site (ati.com) and move it to your home folder (/home/<username>)

If that command fails to find libGL.so.1, check your /usr/lib directory for libGL.so with:

ls /usr/lib/libGL*

If you can see libGL.so in that list then:

sudo ln -s /usr/lib/libGL.so /usr/lib/libGL.so.1

and Repeat

sh ati-driver-installer-8-9-x86.x86_64.run --buildpkg Ubuntu/hardy

Now we have to blacklist the driver in Ubuntu's repository, so that the new driver will be used.

sudo gedit /etc/default/linux-restricted-modules-common

Add "fglrx" to the line "DISABLED_MODULES"

File: /etc/default/linux-restricted-modules-common
DISABLED_MODULES="fglrx"

Please note that after the modification above, the "Restricted Driver Manager" will signal "ATI accelerated graphics driver" not enabled (unticked). This is perfectly correct. At the end of the installation procedure it will signal in Status: "in use" (green light), but NOT enabled. It simply means that the fglrx module contained in the linux-restricted-modules package is not enabled, but another fglrx module (8.8) is in use.

You may also need to edit the file(s) (if they exist):

sudo gedit /etc/modprobe.d/blacklist-restricted
sudo gedit /etc/modprobe.d/blacklist-local

Put a # in front of the line "blacklist fglrx", if it is present. Otherwise, the kernel module will not load automatically, and you will not get 3D acceleration.

Install .debs. If there are no other versions of the driver in the same folder, you can save yourself some typing work:

sudo dpkg -i xorg-driver-fglrx_*.deb fglrx-kernel-source_*.deb fglrx-amdcccle_*.deb

Otherwise, do not use wildcards. You can use this methode in any case.

sudo dpkg -i xorg-driver-fglrx_8.532-0ubuntu1_i386.deb fglrx-kernel-source_8.532-0ubuntu1_i386.deb fglrx-amdcccle_8.532-0ubuntu1_i386.deb

Additional 64-bit instructions

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, issue the following command after the above dpkg command, which will force the installation of all of the 32 bit dependencies, and then the amdccle package:

sudo apt-get install -f

Catalyst 8.9 on 64-bit systems requires the --force-overwrite command in the above dpkg command:

sudo dpkg -i --force-overwrite xorg-driver-fglrx_8.532*.deb fglrx-kernel-source_8.532-0*.deb fglrx-amdcccle_8.532-0*.deb

When installing the packages, if xorg-driver-fglrx_8.532 fails to install due to a diverted file conflict, you can fix the package with this procedure. If you get problems with dkms, you can patch the temporary sources and compile them yourself: http://www.phoronix.com/forums/showthread.php?t=12546

If you can't get past these problems, consider using Hardy and just upgrading the kernel manually and installing the packages you need from Intrepid. "EnvyNG" is also an idea.

Finishing the Install: Configuration

If you've used fglrx previously, you will not need to do this.

Now you'll have to edit your xorg.conf

sudo gedit /etc/X11/xorg.conf

and add the following line to the Device section (if it does not already exist). Include the following lines without [...]:

Section "Device"
	[...]
	Driver		"fglrx"
	[...]
EndSection

Save and exit, then run

sudo aticonfig --initial -f

in a terminal. If it does not error you should be fine.

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, type the following command:

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

Finally, reboot the computer and type

fglrxinfo

into the terminal. If the vendor string contains ATI, you have installed the driver successfully. Release 8.8 looks like:

display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon X1950 Series
OpenGL version string: 2.1.7873 Release

Please note: Depending on the particular ATI card that you own, you may or may not automatically have all of the relevant driver features enabled. R500 and R600 cards (X1xxx, HD series, and newer) in particular will need TexturedVideo enabled in Xorg.conf (rather than the traditional VideoOverlay) in order to support Xv accelerated video playback.

Finally

  1. Add tweaks as needed: http://ge.ubuntuforums.com/showthread.php?t=849422
  2. Restart X, if it doesn't work, you can use the "vesa", "radeon" or "radeonhd" driver in the mean time, until you make it work.
  3. Enter synaptic, make sure all packages with "xorg" and "x11" are locked so that you can update and upgrade without worries.

Done! Now run amdcccle, glxgears, warsow etc :)

Issues

Couldn't find library libfglrx_gamma.so.1

If you are having this error:

dpkg-shlibdeps: failure: couldn't find library libfglrx_gamma.so.1 needed by debian/xorg-driver-fglrx/usr/bin/fglrx_xgamma (its RPATH is '').

Fix it by doing the following:

sudo sh ati-driver-installer-8-7-x86.x86_64.run --extract driver
cd driver/arch/x86_64/usr/X11R6/lib64
sudo ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1
cd ../../../../../
sudo sh ati-installer.sh -- --buildpkg Ubuntu/hardy

Mesa drivers

If fglrxinfo reports that Indirect rendering by Mesa is in place, even though you have installed ATI driver, you might want to remove Mesa:

  • Remove the package xserver-xgl.
sudo apt-get remove xserver-xgl
Explanation: If you installed this previously in order to make compiz work, it will not allow direct rendering on your display. You can check out if this is what it causing the problem by running
DISPLAY=:0 glxinfo | grep render
If it returns an ATI renderer, it means that xgl is being displayed indirectly on the display 1. (Taken from [1])
Warning: This might make your compiz stop working as it is configured to use XGL. A solution might be to run the Envy script in order to configure compiz. Or, if Compiz stopped working due to "Composite" problem, check that the following is set in the /etc/X11/xorg.conf
Section "Extensions"
	Option		"Composite"	"Enable"
EndSection




  • Check for AGP and DRI errors in /var/log/Xorg.0.log like these are:
(EE) fglrx(0): [agp] unable to acquire AGP, error -1023
(EE) fglrx(0): cannot init AGP
(EE) fglrx(0): atiddxDriScreenInit failed, GPS not been initialized.
(WW) fglrx(0): * DRI initialization failed! *
If you have Intel 8285P and E7205 chipsets and AGP not detected then you have to remove the i82875p_edac module and restart a some others:
rmmod i82875p_edac
rmmod fglrx
rmmod intel-agp
rmmod agpgart
modprobe agpgart
modprobe intel-agp
modprobe fglrx
Blacklist the modules e7xxx_edac so it doesn't start up again when booting - add the following line at the beginning of /etc/modprobe.d/blacklist:
blacklist i82875p_edac
This has been known to fix issues with -Mesa -AGP -DRI -Google earth and -suspend to RAM (s2ram).
Explanation: http://openwetware.org/wiki/Computing/Linux/Ubuntu




  • Check you are running the correct kernel.
Explanation: If you're upgrading from Gutsy to Hardy in some instances the Grub bootloader does not get updated and the new kernel is not loaded.
Run in a terminal:
uname -r
If the output starts with 2.6.22 or below you are not using the current kernel and the Ati drivers will not load properly.

If this doesn't help, try Ubuntu Gutsy Installation Guide#Verifying, or other links: [2], [3], [4].


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 authorisation 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. This 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


Suspend/Hibernation

Suspend hibernation works with the latest driver.

For ATI X1400, to get the laptop to wake up from suspend, I had to change the following in /etc/default/acpi-support:

SAVE_VBE_STATE=false

POST_VIDEO=false 

ENABLE_LAPTOP_MODE=false


For Radeon 3200, to wake up from suspend, I had to add the following lines to /etc/X11/xorg.conf: (This settings is not good option, if you are using compiz-fusion or any other transparency-based thingie. Not working for HD 3850)

Section "Extensions"
        Option        "Composite"        "Disable"
EndSection

Section "ServerFlags"
       Option  "AIGLX" "off" 
EndSection

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 -v 8.522 --all