This script is not intended to install the ATI driver. It’s a service which recompiles already installed kernel modules after a kernel update.
To install/upgrade Catalyst, you can use that script: Upgrading ATI driver with atiupgrade
If you have a good reason to install 10.7 rather than the latest version (10.10) you should change the value of catalystVer in the script. It hasn’t been tested with 10.7 though.
Oh, I see that you have fglrx64_7_5_0_SUSE113-8.783-1.x86_64 installed. It is the latest Catalyst version (10.10).
Do you have the file /etc/modautocompile.conf with the following content?
# kernel modules to autocompile after kernel update
# name command
fglrx /usr/bin/fglrx-kernel-build.sh
I already have the file /etc/modautocompile.conf. And I ran the commands
find /lib/modules -name "fglrx.ko"
/lib/modules/2.6.34-12-desktop/extra/fglrx.ko
/lib/modules/2.6.31.12-0.1-desktop/extra/fglrx.ko
/lib/modules/2.6.31.12-0.2-desktop/extra/fglrx.ko
service modautocompile start
- compiling module fglrx.ko
file /lib/modules/2.6.36-90-desktop/source/include/../arch/x86/include/asm/compat.h says: COMPAT_ALLOC_USER_SPACE=arch_compat_alloc_user_space
/usr/src/kernel-modules/fglrx /home/izaak
make: Entering directory `/usr/src/linux-2.6.36-90-obj/x86_64/desktop'
make -C ../../../linux-2.6.36-90 O=/usr/src/linux-2.6.36-90-obj/x86_64/desktop/.
CC [M] /usr/src/kernel-modules/fglrx/firegl_public.o
/usr/src/kernel-modules/fglrx/firegl_public.c:410:5: error: unknown field 'ioctl' specified in initializer
/usr/src/kernel-modules/fglrx/firegl_public.c:410:5: warning: initialization from incompatible pointer type
/usr/src/kernel-modules/fglrx/firegl_public.c: In function 'KCL_GetInitKerPte':
/usr/src/kernel-modules/fglrx/firegl_public.c:2378:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2379:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2380:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function 'KCL_GetPageTableByVirtAddr':
/usr/src/kernel-modules/fglrx/firegl_public.c:2425:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2428:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2429:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function 'KCL_TestAndClearPageDirtyFlag':
/usr/src/kernel-modules/fglrx/firegl_public.c:2598:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c: In function 'KCL_GetDmaPhysAddr':
/usr/src/kernel-modules/fglrx/firegl_public.c:2636:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2637:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2638:5: warning: return makes integer from pointer without a cast
/usr/src/kernel-modules/fglrx/firegl_public.c:2640:5: warning: return makes integer from pointer without a cast
make[3]: *** [/usr/src/kernel-modules/fglrx/firegl_public.o] Error 1
make[2]: *** [_module_/usr/src/kernel-modules/fglrx] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory `/usr/src/linux-2.6.36-90-obj/x86_64/desktop'
******************************
Build of kernel module failed!
******************************
As you can see, the module failed to build. What else am I missing?
You’re not missing anything. It just looks like the fglrx module doesn’t compile with kernel 2.6.36-90. It might be related with the asm compat bug we had before. In that case you can either patch the kernel or patch the module. I do not garantee that it’s going to work anf you might have to modify the patch anyway, as the files probably don’t match exactly.
These were the patches used to fix that bug on kernel 2.6.34.7-0.3 (not needed anymore since 2.6.34.7-0.4) :
Do not apply both of them! Either patch the kernel or patch the module (rather patch the module!). But again, if the files are different from previous versions, the patch is not going to work and you will have to apply the changes manually. If it doens’t help, it’s another bug.
You wouldn’t have problems with kernel 2.6.34.7-0.5.
I tried patching the module and ‘service modautocompile start’. I guess it really isn’t going to work.
So is reverting to an older kernel a staightforward process? i.e. zypper in kernel-desktop-2.6.34.7-0.5…etc and removing the newer one?
Don’t forget to reverse the patch before compiling the module for kernel 2.6.34.7-0.5!
I have no idea about fglrx issues on kernel 2.6.36. I don’t use that one.
The author is a kernel developer and also a well known packager of openSUSE RPMs (jengelh), so if you don’t trust me, THIS guy knows, what he is talking about.
And as an additional note, with openSUSE >= 11.3, “kernel-source” is not needed any more for building external kernel modules, kernel-devel and kernel-$flavor-devel for the respective kernel flavor(s) is enough.
(I really DO “love” this function preventing you from editing your posts after a few minutes.)