Tried kernels 3.4.0-1.1-x86_64 and 3.4.0-25.1-x86_64 this morning
amd-driver-installer-12-4-x86.x86_64.run had the following log,
Detected a previous installation, /usr/share/ati/amd-uninstall.sh
Dryrun uninstall succeeded continuing with installation.
Uninstalling any previously installed drivers.
Forcing uninstall of AMD Catalyst(TM) Proprietary Driver.
No integrity verification is done.
restore of system environment completed
Uninstall fglrx driver complete.
For detailed log of uninstall, please see /etc/ati/fglrx-uninstall.log
System must be rebooted to avoid system instability and potential data loss.
/usr/share/ati/amd-uninstall.sh completed with 0
[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 *.a .??* *.symvers
make -C /lib/modules/3.4.0-1-desktop/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-3.4.0-1-obj/x86_64/desktop'
/usr/src/linux-3.4.0-1/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
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 ‘kasInitExecutionLevels’:
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:4157:5: error: ‘cpu_possible_map’ undeclared (first use in this function)
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:4157:5: note: each undeclared identifier is reported only once for each function it appears in
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:4157:5: warning: left-hand operand of comma expression has no effect -Wunused-value]
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-3.4.0-1-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
Creating /var/log/boot.msg
doneCheck for rebuild the fglrx kernel module if necessary ...
The fglrx kernel module does not exist! I build it NOW. Please wait ...
<notice -- May 25 16:03:07.650561000> service boot.klog done
FATAL: The fglrx kernel module could not be built!
Check for the fglrx kernel module is running...
The fglrx kernel module is not loaded! Try it to modprobe now ...
FATAL: Module fglrx not found.
FATAL: The fglrx kernel module could not loaded!
failed
<notice -- May 25 16:03:21.939284000> service boot.fglrxrebuild done
System Boot Control: The system has been set up
Failed features: boot.fglrxrebuild
Skipped features: boot.cycle
You can use my SAKC bash script to load any kernel version you find at The Linux Kernel Archives, just don’t use a kernel version older than the distribution was released with.
By the way, NVIDIA 302 on kernel 3.4 is not building too!
I had to roll back on both computers to kernel 3.1.10 from Update
It is interesting precisely because of this problem is skipped 4 alpha, is likely, and beta 12.2?
Had another play with the patch and the catalyst driver has now installed ok
The following worked
all has to be done with root privilages, extreme caution needed.
1. ran cmd sh amd-driver-installer-12-4-x86.x86_64.run
- installed and ended with failure message
2. inserted a new line, so changed file looked as follows
/lib/modules/fglrx/build_mod/kcl_ioctl.c
line
216 /** \brief Allocate user space for 32-bit app making 64-bit IOCTL
217 * \param size [in] Number of bytes to allocate
218 * \return Pointer to allocated memory
219 */
220
221 DEFINE_PER_CPU(unsigned long, old_rsp);
222
223 void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)
3. changed one line in file so it looked as follows
/lib/modules/fglrx/build_mod/firegl_public.c
line
4153 static int kasInitExecutionLevels(unsigned long level_init)
4154 {
4155 unsigned int p;
4156 KCL_DEBUG5(FN_FIREGL_KAS, "%d
", level_init);
4157 for_each_possible_cpu(p)
4158 {
4195 KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d
", p);
4. ran cmd in the shown directory
/lib/modules/fglrx/build_mod # sh make.sh
AMD kernel module generator version 2.1
doing Makefile based build for kernel 2.6.x and higher
rm -rf *.c *.h *.o *.ko *.a .??* *.symvers
make -C /lib/modules/3.4.0-2-desktop/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-3.4.0-2-obj/x86_64/desktop'
/usr/src/linux-3.4.0-2/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_agp.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_io.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_pci.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_str.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_iommu.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl.o
CC [M] /lib/modules/fglrx/build_mod/2.6.x/kcl_wait.o
LD [M] /lib/modules/fglrx/build_mod/2.6.x/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: "old_rsp" [/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
CC /lib/modules/fglrx/build_mod/2.6.x/fglrx.mod.o
LD [M] /lib/modules/fglrx/build_mod/2.6.x/fglrx.ko
make[1]: Leaving directory `/usr/src/linux-3.4.0-2-obj/x86_64/desktop'
build succeeded with return value 0
duplicating results into driver repository...
done.
You must change your working directory to /lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
linux-qz4c:/lib/modules/fglrx/build_mod #
5. ran cmd in the shown directory
/lib/modules/fglrx # ./make_install.sh
- recreating module dependency list
- trying a sample load of the kernel modules
WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
done.
Rebooted
Linux 3.4.0-2-desktop x86_64, openSUSE Tumbleweed (x86_64)
KDE: 4.8.3 (4.8.3) “release 5”
ATI Radeon HD 3200 Graphics, 2D driver: fglrx, 3D driver: ATI
Looking at what’s in the repository you mentioned, it doesn’t look like it’s the same ATI proprietory driver (12.4) that we are trying to make work. It’s version 8.961-5 in your repository and my driver (using amdcccle) shows to be 8.96.4, assuming that the naming method between the two drivers is at all similar. For what it’s worth, the Radeon driver from the standard OpenSuSE repositories works fairly well compared to how it worked a year ago. If you are not worried about maximum performance or frame rate, the standard driver is probably OK.
I am quite sure that you know more than I. That’s why I posted the question. I’ve been installing the ATI proprietary drivers for a few years now. I also run gkrellm to monitor my system. When an ATI driver installs normally or uninstalls normally, you can see that mkinitrd is being run near the end of the install (or uninstall) by watching what processes are running. If you run “aticonfig --uninstall” from a command line, you can actually see the output as mkinitrd is run. So I am assuming that ATI may think it is necessary for whatever reason. Looking at the output you posted, it appears it may not be necessary. The only thing I might ask is, if mkinitrd is not run after driver install, then the driver is not built into the initrd, so during boot the driver is not loaded until the kernel loads and probes hardware. Is that correct or am I missing something? I am asking only to try and get a better understanding of how things work. I have used OpenSuSE since 8.1 and though I am comfortable with Linux, I do still consider myself to be somewhat of a newb.
I only ever learn the absolute minimum to get me from A to B,
once at B, I switch off mentally
what I’ve noticed is that sometimes after running a driver update it gives a
message ‘no need to run mkinitrd’
but I’ve no idea when or why this occurs
sometimes, even after a kernel update there is no need to re-install the AMD
driver
in the past if I thought mkinitrd should be run, I’ve gone into yast and forced
a change as this normally automatically does a mkinitrd re-run