Monday, October 31, 2016

3D Dual head in gutsy with ATI X200 some troubles and solutions

3D Dual head in gutsy with ATI X200 some troubles and solutions


I already had dual head up and running with Edgy, which was quite easy.
When I upgraded to Gutsy, things became more complicated.

The dual screen worked only in clone mode, without any way to have a proper dual screen.

So, I had to google a lot, and finally came to a solution.

First: enable 3d for ATI X200 (not strictly necessary for dual head, but nice nonetheless).

I followed Ubuntu Gutsy installation guide, using the manual installation method.

Here it is:
Method 2: Install the Catalyst 7.11 Driver Manually

* Note: This is just an alternative installation method for the section above. It might help if you still get DRI missing errors.

* Note: If you are running the -rt kernel, you will fail to compile the kernel module with "FATAL: modpost: GPL-incompatible module fglrx.ko uses GPL-only symbol __rcu_read_lock".

Download the ATI driver installer: ati-driver-installer-7-11-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:


sudo bash ati-driver-installer-7-11-x86.x86_64.run --buildpkg Ubuntu/gutsy

note: if this step fails with a signal being caught, and you are running the script on an NFS-mounted directory, copy it to a local partition, and it will work.

If this step fails on amd64/x86_64 with a No such file or directory message about missing files in X11R6/lib, follow these instructions and come back here.


Blacklist old fglrx module from linux-restricted-modules:

As Ubuntu Gutsys 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"

Please note that after the modification above, the "Restricted Driver Manager" will signal "ATI accelerated grapichs 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 (7.11) is in use.

Install .deb packages:

sudo dpkg -i xorg-driver-fglrx_8.433-1*.deb fglrx-kernel-source_8.433-1*.deb fglrx-amdcccle_8.433-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

Its necessary, because sometimes this file is written by other packages, and so theres 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. There have been several ways of getting around this suggested here, and here is the one that worked for me:

sudo gedit /etc/init.d/ati-module-fix

And put this in it:

#!/bin/sh -e

# For loading ATI display drivers

ln -sf /lib/modules/$(uname -r)/misc/fglrx.ko /lib/modules/$(uname -r)/volatile/fglrx.ko
exit 0


Make it executable

sudo chmod ugo+x /etc/init.d/ati-module-fix

Now, make this run before gdm (which starts with sequence number 13)

sudo update-rc.d ati-module-fix defaults 12

It is possible that gdm sequence number is different. To find the gdm sequence number:

ls /etc/rc2.d/

And substitute 12 in the previous command with gdm sequence number - 1.


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.)
[edit] 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 wont 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??
* Note: Alternative in the overlay-type to "Xv" can be "opengl" or "disable" if the TV-out makes problems in videos.

Finish the Installation

Now save any open document and reboot your system:

sudo shutdown -hr 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.1.7059 Release

The OpenGL vendor string should read ATI and not Mesa.

In the Gutsy installation, you will find also how to enable desktop effects (compiz & such), but I skipped that passage).

Secondly, I enabled big destop

I followed this howto from Ubuntuforums.org

ATI Big-Desktop
Dual Monitor Support With Binary, ATI-Only Big-Desktop
The following HowTo attempts to enable Dual Monitor support by enabling the Big-Desktop function of the Ati-only binary graphics driver.

System Requirements:

ONE Dual-Output ATI graphics card
Functional Fglrx Driver.

The following guide explains how to install and enable the fglrx driver: https://help.ubuntu.com/community/BinaryDriverHowto/ATI

Lets get started!!!

Update: Instead of Manually editing the Xorg file, Ive decided to attempt to write a HowTo based on the "aticonfig" tool. So, for about a week or so, I need individuals to try out this method and report the outcome. You can continue to post in this thread, or you can send me a private message to report the result. So, here goes nothing!

1. I know you have already saved a back of the xorg.conf file (you did, didnt you? ).:

Code:

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



2. Next, we want X to be using the fglrx driver, so:

Code:

sudo aticonfig --initial --overlay-type=Xv



3. Now that the xorg.conf is fit to be edited, enter the following commands:

Code:

sudo aticonfig --desktop-setup=horizontal --sync-vsync=on --add-pairmode=Width0xHeight0+Width1xHeight1



Heres what each command means:
Code:

--desktop-setup=horizontal

this command enables Big-Desktop, and places the two monitors next to each other (left-right orientation). Other arguments that could replace it are:
Code:

--desktop-setup=horizontal,reverse <= flips your screens.
--desktop-setup=vertical <=places your monitors in a up-down orientation.
--desktop-setup=vertical,reverse <=flips your screens.
--desktop-setup=clone
--desktop-setup=single

Code:

--sync-vsync=on

this command prevents tearing during 3D rendering.
Code:

--add-pairmode=Width0xHeight0+Width1xHeight1

this command tells X what are the resolutions for Monitor1+Monitor2.

4. Now, you can experiment with your monitors without restarting X. First, you need to see how X identifies your monitors:

Code:

sudo aticonfig --query-monitor



Then based on the information provided by the query monitor command, replace STRING in the following command:

Code:

sudo aticonfig --enable-monitor=STRING,STRING

The values of STRING should be one of these:
Code:

none crt1 crt2 lvds tv tmds1 tmds2

5. If the enable-monitor command works for you, then you need to add it to the config file:

Code:

sudo aticonfig --force-monitor=STRING,STRING



Again replace STRING with the values given by query-monitor.

5. Now restart X (ctrl+alt+backspace) or reboot your computer.

Note: the --enable-monitor command DOES NOT change your configuration file (xorg.conf). Therefore when you restart X or your computer, it may or may not work.

If this method doesnt work, you may have to edit your xorg.conf manually (following the above-mentioned howto).

Hope this helps: it worked for me :-)

Available link for download