Ubuntu Gutsy Installation Guide: Difference between revisions
(→Verifying: update for libGL.so.1.2, don't know where it came from but it's there now [tengil]) |
|||
Line 131: | Line 131: | ||
If you followed the instructions and Blacklisted the fglrx driver, this will ensure that Gutsy finds the correct module and loads it. This is a dirty hack I am sure, but it worked for me getting around the way Gutsy removed the softlink at a reboot. <i>Comment: This did not work for me. I believe the reason is that the rc.local file is executed</i> after<i> X starts. Instead, I added the "insmod" command above to the beginning of /etc/init.d/gdm , so that the module is loaded before gdm (and thus X) starts. This is an even dirtier hack, so people are welcome to come up with a better solution.</i> | If you followed the instructions and Blacklisted the fglrx driver, this will ensure that Gutsy finds the correct module and loads it. This is a dirty hack I am sure, but it worked for me getting around the way Gutsy removed the softlink at a reboot. <i>Comment: This did not work for me. I believe the reason is that the rc.local file is executed</i> after<i> X starts. Instead, I added the "insmod" command above to the beginning of /etc/init.d/gdm , so that the module is loaded before gdm (and thus X) starts. This is an even dirtier hack, so people are welcome to come up with a better solution.</i> | ||
Try this instead: | |||
<pre> | |||
modprobe -vf fglrx | |||
</pre> | |||
If the result is something like this: | |||
<pre> | |||
install /sbin/lrm-video fglrx | |||
</pre> | |||
You would have to modify "/etc/modprobe.d/lrm-video" | |||
Comment out the line with fglrx: | |||
<pre> | |||
#install fglrx /sbin/lrm-video fglrx $CMDLINE_OPTS | |||
</pre> | |||
Revision as of 22:12, 9 November 2007
The latest fglrx driver supports Radeon 9500 and the X-series cards up to HD2900. Workstation cards are not supported.
Pre-Installation Checks
Enable "restricted" Repository
Make sure the restricted repository is enabled in /etc/apt/sources.list or this guide will not work!
System > Administration > Software Sources. Check "Proprietary Drivers for Devices (Restricted)" box.
Installation
For most users it won't be necessary to go into installation and configuration details of the driver. Ubuntu 7.10 (Gutsy) 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.
Method 1: Install the Driver the Ubuntu Way
sudo apt-get update sudo apt-get install linux-restricted-modules-generic restricted-manager sudo apt-get install xorg-driver-fglrx sudo depmod -a
Note: The second line of the above may not be necessary. If apt says it cannot find the "linux-restricted-modules" package, try line 3. If that fails, check your sources.list (see top of page)
If the system complains about dependencies, use your preferred package manager to download python2.4 and, if necessary, its dependencies.
(Note: This method did not work with ATI X1300 Radeon on Gutsy whereas method 2 worked perfectly for us. 26/10/2007)
Method 2: Install the 8.42.3 Driver Manually
- Note: This is just an alternative installation method for the section above. It might help if you still get 'DRI missing' errors.
Download the ATI driver installer: ati-driver-installer-8.42.3-x86.x86_64.run (this installer is for 32bit and 64bit systems)
Change to the download directory. Make sure that you have the universe and multiverse repositories enabled in /etc/apt/sources.list before doing these steps.
There is a detailed manual with screenshots at Ubuntu Wiki.
By default, Ubuntu did not enable the Universe and Multiverse repositories, but now in Gutsy, both Universe and Multiverse are activated by default.
Install necessary tools:
sudo apt-get update sudo apt-get install module-assistant build-essential fakeroot dh-make debhelper \ debconf libstdc++5 linux-headers-generic
Create .deb packages:
(don't use fakeroot ,"fakeroot: nested operation not yet supported")
sudo bash ati-driver-installer-8.42.3-x86.x86_64.run --buildpkg Ubuntu/gutsy
Blacklist old fglrx module from linux-restricted-modules:
As Ubuntu Gutsy's linux-restricted-modules package includes the fglrx module from an old driver version (8.37.6), we have to blacklist this module to make sure the new kernel module which is needed by the new driver will be used instead.
Ubuntu/Gnome users type in:
gksu gedit /etc/default/linux-restricted-modules-common
Kubuntu/KDE users type in:
kdesu kate /etc/default/linux-restricted-modules-common
Add "fglrx" to the line "DISABLED_MODULES"
File: /etc/default/linux-restricted-modules-common |
DISABLED_MODULES="fglrx" |
Install .deb packages:
sudo dpkg -i xorg-driver-fglrx_8.42.3-1*.deb \ fglrx-kernel-source_8.42.3-1*.deb \ fglrx-amdcccle_8.42.3-1*.deb
- Note: If you get a 'Bad file descriptor' message concerning the xorg.conf file try switching user to root and repeating the same command without sudo. This might be valid for the following commands too. (Ubuntu Gutsy installs with no password set for root by default. You can set a password for the root by typing 'sudo passwd root' first.)
- Note: If you have a 64 bit install, the above dpkg command will likely 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 recieve 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 pacakge:
sudo apt-get install -f
Remove any old fglrx debs from /usr/src/:
sudo rm /usr/src/fglrx-kernel*.deb
Fix broken dependencies
- Note: You only need to do this if you have installed previous versions of these drivers using this method before.
sudo apt-get -f install
Compile the kernel module:
sudo module-assistant prepare,update sudo module-assistant build,install fglrx -f sudo depmod -a
It's necessary, because sometimes this file is written by other packages, and so there's no 3D acceleration. Check that the file /lib/modules/$(uname -r)/misc/fglrx.ko has been created.
Create the following folder
sudo mkdir /lib/modules/$(uname -r)/volatile
Note: the volatile directory might already exist at this stage then simply continue with the next step.
Create a symbolic link
sudo ln -sf /lib/modules/$(uname -r)/misc/fglrx.ko /lib/modules/$(uname -r)/volatile/fglrx.ko
NOTE : On my Gutsy install, after a reboot this link was always removed automatically leaving me without an fglrx module loaded, and thus no ATI rendering. To get around this rather than using a link, you can use rc.local to load the driver.
Simply
gksu gedit /etc/rc.local
and before the "exit 0" line add the following :
insmod /lib/modules/$(uname -r)/misc/fglrx.ko
If you followed the instructions and Blacklisted the fglrx driver, this will ensure that Gutsy finds the correct module and loads it. This is a dirty hack I am sure, but it worked for me getting around the way Gutsy removed the softlink at a reboot. Comment: This did not work for me. I believe the reason is that the rc.local file is executed after X starts. Instead, I added the "insmod" command above to the beginning of /etc/init.d/gdm , so that the module is loaded before gdm (and thus X) starts. This is an even dirtier hack, so people are welcome to come up with a better solution.
Try this instead:
modprobe -vf fglrx
If the result is something like this:
install /sbin/lrm-video fglrx
You would have to modify "/etc/modprobe.d/lrm-video"
Comment out the line with fglrx:
#install fglrx /sbin/lrm-video fglrx $CMDLINE_OPTS
IMPORTANT: You have to recompile the kernel module after each kernel update!
(Note: This does not affect you until the next time you update your kernel.)
Configure the Driver
- Note Method 2 Users: Before you carry out this step you must reboot your machine. Or else the fglrx driver will not be in use on xorg.conf and using the aticonfig options will cause a memory dump and not intialise the Driver properly.
- Note: An alternative to the aticonfig --initial command is to edit /etc/X11/xorg.conf and replace the string "ati" with "fglrx" in the "Device" section. This way you won't lose your old "Screen" and "Monitor" settings. Afterwards you can use aticonfig for setting overlay etc. Another alternative is aticonfig --initial --force if you encounter issues with the first command.
sudo aticonfig --initial
Then:
sudo aticonfig --overlay-type=Xv
- Note: Is there an alternative to the previous step?
Finish the Installation
Now save any open document and reboot your system:
sudo shutdown -r now
- Note: An alternative to rebooting is to restart the X Server by pressing your CTRL ALT BACKSPACE keys. You must remove any old kernel modules such as "drm" "radeon" or "fglrx" using the "rmmod" command. Example:
sudo rmmod fglrx
Post-Installation Checks
Verifying
Run the following command to check its output to ensure the fglrx driver is installed properly:
$ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: ATI Radeon Xpress Series OpenGL version string: 2.0.6958 Release
The OpenGL vendor string
should read ATI and not Mesa.
If it still says Mesa and not ATI, even after re-enabling the driver from the Restricted-manager: You can try the following:
- Remove all the packages provided by the
xserver-xorg-video-all
meta-package (search for it using Synaptic or Adept), then restart the machine. The X Server should now use the new fglrx driver by force (provided the driver is being used in xorg.conf).
- If you can't log in after this, you'll have to log in to a terminal in the login screen, and reinstall the
xserver-xorg-video-all
package. Your problem is probably somewhere else. (taken from [1]).
- Remove all the packages provided by the
If it says libGL.so.1: cannot open shared object file: No such file or directory... Check if you have a /usr/lib/libGL.so.1.2, if so do this:
sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so.1
If you see a message like "Xlib: extension "XFree86-DRI" missing on display ":0.0"." you may simply need to enable the restricted drivers.
Ubuntu and Kubuntu use a Restricted-Driver manager to load/unload non-FOSS drivers. Even if they are installed and specified in the xorg.conf does not mean they'll load properly.
To start the restricted manager in both Ubuntu & Kbuntu:
sudo /usr/bin/restricted-manager
If you check the box to enable the restricted driver and reboot, it should work.
3D desktop effects
The new ATI drivers use AIGLX so there is not need to install XGL that older drivers (< 8.40) required.
Remove this section from to the /etc/X11/xorg.conf file. The new xorg server enables "Composite" by default.
# Section "Extensions" # Option "Composite" "0" # EndSection
Compiz does not know about the fglrx driver. You can either skip the checks
mkdir -p ~/.config/compiz && echo SKIP_CHECKS=yes >> ~/.config/compiz/compiz-manager
or add it to the compiz white list, and clear the blacklist pci Ids variable *Recommended*
sudo gedit /usr/bin/compiz
# Driver whitelist WHITELIST="fglrx nvidia intel ati radeon i810"
# blacklist based on the pci ids # BLACKLIST_PCIIDS="$T" BLACKLIST_PCIIDS=""
After the necessary configurations, just restart X and enjoy the cool effects.
For Kubuntu you need some extra steps:
sudo apt-get install compiz compiz-kde compizconfig-settings-manager compiz-core compiz-fusion-plugins-main compiz-plugins
To test 3D Effects, press ALT+F2 and type "compiz --replace".
To configure use the tool KMenu->Settings->Avanced Desktop Effect Settings.
Additional configure with aticonfig tool
You can configure the driver even further with the aticonfig tool, more information can be found at Configuring.
For example:
- use powerplay option to switch power state for battery friendly or performance mode
- use dual head or one big desktop mode
- turn second monitor on/off on the fly
Ubuntu-specific Issues
If installing on Ubuntu x64...
(thanks to Michael at Phoronix forums and aolana at Ubuntuforums.org)
Building packages for Ubuntu 64-Bit is known to be broken. If you're installing on Ubuntu 64-Bit, do this:
Download this: fglrx-8.42-ubuntu+debian-2.tar.bz2
Extract the installer:
bash ati-driver-installer-8.42.3-x86.x86_64.run --extract somedirectory
Extract the archive you downloaded to the directory that you extracted the driver's installation files to.
Then build the package:
./ati-installer.sh 8.42.3 --buildpkg Ubuntu/gutsy
Revert to Xorg driver
If (for any reason) the fglrx install fails, you can revert to the Xorg driver by executing
sudo dpkg-reconfigure xserver-xorg
and selecting the "ati" driver, or simply restoring the previous /etc/X11/xorg.conf file, if you made a backup.
You also need to remove the xorg-driver-fglrx or your manually installed drivers to get the 3D acceleration back, since it is provided by file /usr/lib/libGL.so.1.2 which belongs to libgl1-mesa package and which is moved to backup and replaced at the installation of xorg-driver-fglrx (or the manually built) package. In case the removal of the fglrx drivers fails to restore the file from libgl1-mesa, you have to reinstall the package by running:
sudo apt-get install --reinstall libgl1-mesa
Attention: Suspend/Hibernation will not work
With Gutsy release, there's a big problem using the ATI proprietary drivers. The Suspend/Hibernate function will stop working. The problem is due to the new SLUB allocator incorporated in 2.6.22 / 2.6.23 Kernel. There are no workaround, except:
- Return to Feisty (with 2.6.20 kernel, and apply specific solutions: see Feisty installation guide).
- Use default Mesa Drivers (the easiest way is to disable ATI driver from Restricted Driver Manager).
- Recompiler your Kernel to use SLAB.
Unfortunately some new ATI cards couldn't start X with Mesa drivers, so the only workaround is returning to Feisty.
The problem will be solved in the next ATI driver release.
If you get /usr/X11R6/lib/modules/dri/fglrx_dri.so not found
sudo ln -s /usr/lib/ /usr/X11R6/lib/modules
libGL error
- fglrxinfo gives: libGL.so.1: cannot open shared object file.
- Fixed with command:
sudo ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so.1