ati driver issues on tumbleweed 2.6.38-18-desktop kernel

Hi,
I just updated to new 2.6.38-18 kernel and headers. Now the latest Ati 11.2 driver wont install completely and I cannot get any X.
So I removed the ati drivers to use the opensuse drivers but kde wont start now (dont know what the issue is… maybe someone can poitn me out the the correct log file to look for errors)… I am using gnome now. Anyone knows how to get ground this and install ati drivers.
thanks

What ATI card???

radeon HD3470

Does it boot to GUI with the boot code ‘nomodeset’ ? How about with failsafe settings /

NO… I cannot even get any graphics in the failsafe mode.
When I tried to install the ati driver, during the final building… it throws up unreadable garbage out. It is even impossible to continue using the shell. I suspect some libraries are not compatible and when I tried to startx (init 3 & init 5) the Xserver throws up error about inaccesible locations (again bringing the issue of incompatible libraries).

Incompatible libraries ?

Hmmm … did you have other repositories besides OSS, Non-OSS, Update, Packman and Tumbleweed ?

Did you remove your xorg.conf file when trying with the open source driver? It may still be trying to load fglrx.

The only other libraries I have are kde-extra and kde-release-46 in my list of repositories. and this is the log file when i try to complile ati drivers:

[Message] Kernel Module : Trying to install a precompiled kernel module.
[Message] Kernel Module : Precompiled kernel module version mismatched.
[Message] Kernel Module : Found kernel module build environment, generating kernel module now.
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o .ko .GCC .?? *.symvers
make -C /lib/modules/2.6.38-18-desktop/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory /usr/src/linux-2.6.38-18-obj/x86_64/desktop' make -C ../../../linux-2.6.38-18 O=/usr/src/linux-2.6.38-18-obj/x86_64/desktop/. modules CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘fglrx_pci_suspend’: /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:851:9: error: implicit declaration of function ‘acquire_console_sem’ /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:873:9: error: implicit declaration of function ‘release_console_sem’ make[4]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1 make[3]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2 make[2]: *** [sub-make] Error 2 make[1]: *** [all] Error 2 make[1]: Leaving directory /usr/src/linux-2.6.38-18-obj/x86_64/desktop’
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module - please consult readme.
[Reboot] Kernel Module : mkinitrd

yes I did … and opensource driver works with gnome but my kde fails to load …

Did you remove your xorg.conf file when trying with the open source driver? It may still be trying to load fglrx.
Klaatu Barada Nikto

I am having the same issue.

kernel: 2.6.38-18-desktop
video card: ATI Technologies Inc RV730XT [Radeon HD 4670]

I tried ati-driver-installer-11-1-x86.x86_64.run and ati-driver-installer-11-2-x86.x86_64.run both die during installation.

Then I tried this:

cd /lib/modules/fglrx/build_mod/
./make.sh

and here is the resulting output.

AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o *.ko *.GCC* .??* *.symvers
make -C /lib/modules/2.6.38-18-desktop/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.38-18-obj/x86_64/desktop'
make -C ../../../linux-2.6.38-18 O=/usr/src/linux-2.6.38-18-obj/x86_64/desktop/. modules
  CC [M]  /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘fglrx_pci_suspend’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:851:9: error: implicit declaration of function ‘acquire_console_sem’
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:873:9: error: implicit declaration of function ‘release_console_sem’
make[4]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[3]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.38-18-obj/x86_64/desktop'
make: *** [kmod_build] Error 2
build failed with return value 2

I am currently using the OSS driver while I look more into this issue.

Okey… I found a working solution by patching the /lib/modules/fglrx/build_mod/firegl_public.c file (found in gentoo forums).


--- ati.orig/common/lib/modules/fglrx/build_mod/firegl_public.c 2011-03-15 14:40:22.000000000 -0600
+++ ati/common/lib/modules/fglrx/build_mod/firegl_public.c      2011-03-15 14:38:09.000000000 -0600
@@ -848,7 +848,7 @@
      * happen much less frequent then without this workaround.
      */
     if (state == PM_EVENT_SUSPEND)
-        acquire_console_sem();
+        console_lock();
 
     if (firegl_cail_powerdown(privdev, state))
         ret = -EIO;
@@ -870,7 +870,7 @@
     }
 
     if (state == PM_EVENT_SUSPEND)
-        release_console_sem();
+        console_unlock();
 
     KCL_DEBUG_TRACEOUT(FN_FIREGL_ACPI, ret, NULL);  
     
@@ -894,7 +894,7 @@
     if (PMSG_EVENT(pdev->dev.power.power_state) == 0) return 0;
 
     if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
-        acquire_console_sem();
+        console_lock();
 
 #ifdef FIREGL_USWC_SUPPORT
     // Restore the PAT after resuming from S3 or S4.
@@ -919,7 +919,7 @@
     firegl_cail_powerup(privdev);
 
     if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
-        release_console_sem();
+        console_unlock();
 
     PMSG_EVENT(pdev->dev.power.power_state) = 0;
     KCL_DEBUG_TRACEOUT(FN_FIREGL_ACPI, 0, NULL);

basically you need to replace release_console_sem() with console_unlock() and acquire_console_sem() with console_lock(). I manually changed it as I the line numbers are a bit differnent for me (ymmv) but changing 4 words was easy.

the compilation was smooth… by make.sh and make_install.sh and now I am writing to you using the ati drivers again. I presume this will be fixed in the ati 11.3 version.

Okay I found a patch that fixes this issue. 04-2.6.38-support.diff is the patch file in this bug report:

Bug#611779: fglrx-modules-dkms Linux 2.6.38 support - linux.debian.bugs.dist | Google Groups

If you do not have a google account here is the patch file

04-2.6.38-support.diff:

Description: Add Linux 2.6.38 support
 The following commit renamed acquire_console_sem to console_lock and
 release_console_sem to console_unlock on the Linux kernel:
 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ac751efa6a0d70f2c9daef5c7e3a92270f5c2dff
Author: Miguel Colon <debian.micove@gmail.com>
Forwarded: no
Last-Update: 2011-02-01

--- fglrx-driver-11-1.orig/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ fglrx-driver-11-1/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -850,7 +850,12 @@ static int fglrx_pci_suspend(struct pci_
      * happen much less frequent then without this workaround.
      */
     if (state == PM_EVENT_SUSPEND)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
+        console_lock();
+#else
         acquire_console_sem();
+#endif
+
 
     if (firegl_cail_powerdown(privdev, state))
         ret = -EIO;
@@ -872,7 +877,11 @@ static int fglrx_pci_suspend(struct pci_
     }
 
     if (state == PM_EVENT_SUSPEND)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
+        console_unlock();
+#else
         release_console_sem();
+#endif
 
     KCL_DEBUG_TRACEOUT(FN_FIREGL_ACPI, ret, NULL);  
     
@@ -896,7 +905,11 @@ static int fglrx_pci_resume(struct pci_d
     if (PMSG_EVENT(pdev->dev.power.power_state) == 0) return 0;
 
     if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
+        console_lock();
+#else
         acquire_console_sem();
+#endif
 
 #ifdef FIREGL_USWC_SUPPORT
     // Restore the PAT after resuming from S3 or S4.
@@ -921,7 +934,11 @@ static int fglrx_pci_resume(struct pci_d
     firegl_cail_powerup(privdev);
 
     if (PMSG_EVENT(pdev->dev.power.power_state) == PM_EVENT_SUSPEND)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)
+        console_unlock();
+#else
         release_console_sem();
+#endif
 
     PMSG_EVENT(pdev->dev.power.power_state) = 0;
     KCL_DEBUG_TRACEOUT(FN_FIREGL_ACPI, 0, NULL);  
mv 04-2.6.38-support.diff /lib/modules/fglrx/build_mod/
cd /lib/modules/fglrx/build_mod/
patch firegl_public.c 04-2.6.38-support.diff
./make.sh
cd /lib/modules/fglrx/
./make_install.sh

Then I made sure my xorg.conf was setup and rebooted to a working fglrx driver.

Just to inform most of you but Catalyst latest version is 11.6 actually.
It support 2.6.36 up to 3.0 kernel.

Build without a hit under factory.
openSUSE Lizards