How to build ATI Catalyst driver in Lucid?

Using applications, configuring, problems
Post Reply
Message
Author
User avatar
playdayz
Posts: 3799
Joined: Fri 25 Apr 2008, 18:57

How to build ATI Catalyst driver in Lucid?

#1 Post by playdayz »

The ATI Catalyst Display Driver will build, install, and run in Karmic Puppy (upup-432), but it will not build in Lucid Puppy. I did an experiment and built a Karmic Puppy (upup-433) with the 2.6.33.2 kernel that is used in Lucid, and then I compared upup-432 (kernel 2.6.30.5) with upup-433 (2.6.33.2). ATI Catalyst did *not* build in upup-433. Further, the error log is *exactly* the same as the error log I get trying to build Catalyst in Luci-237 (from which I conclude that the kernel sources might be the problem, rather than the difference between Xorg 7.4 and 7.5?).

So perhaps I have enough information for someone who knows kernels and drivers inside out to figure out how we could build Catalyst in Lucid Puppy. I would be most grateful for assistance. BTW, we have been using the open-source 'radeon' and 'radeonhd' drivers which function well and provide hardware acceleration. However, by my testing the ATI Catalyst fglrx driver provides about twice the framerate of the radeon driver. In addition we have not been able to make Compiz function with the radeon driver and I suspect it might work with the ATI fglrx driver. Thank you.

I see the post http://www.murga-linux.com/puppy/viewtopic.php?t=62000

ati-driver-installer-10-8-x86.x86_64.run
(install the devx and kernel sources, set the permissions on the ati driver installer, and run it in a terminal.)
http://support.amd.com/us/gpudownload/l ... ng=English

upup-432 -> http://diddywahdiddy.net/Puppy400/upup-432.iso
upup_devx_432 -> http://diddywahdiddy.net/Puppy400/upup_devx_432.sfs
kernel sources 2.6.30.5 -> http://bkhome.org/sources/kernel-2.6.30 ... d.sfs4.sfs
fglrx install log - success

upup-433 -> http://diddywahdiddy.net/Puppy400/upup-433.iso
upup_devx_433 -> http://diddywahdiddy.net/Puppy400/upup_devx_433.sfs
kernel sources 2.6.33.2 -> http://bkhome.org/sources/kernel-2.6.33 ... atched.sfs
fglrx install log - failure

luci-237 -> http://diddywahdiddy.net/Puppy500/luci-237-SCSI.iso
luci_devx_237 -> http://diddywahdiddy.net/Puppy500/luci_devx_237.sfs


upup 432 (2.6.30.5) fglrx install log - success
[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.30.5/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.30.5'
CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
In file included from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:451:
/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h: In function 'FGLDRM__vma_info':
/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h:497: warning: format '%08lx' expects type 'long unsigned int', but argument 5 has type 'phys_addr_t'
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_MapPageToPfn':
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1636: warning: unused variable 'bus_addr'
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
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c: In function 'KCL_DEBUG_Print':
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:96: warning: format not a string literal and no format arguments
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c: In function '__ke_printk':
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:157: warning: format not a string literal and no format arguments
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c: At top level:
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:65: warning: 'kcl_debug_sysrq_op' defined but not used
/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:72: warning: 'kcl_debug_sysrq_dump_op' defined but not used
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_wait.o
LD [M] /lib/modules/fglrx/build_mod/2.6.x/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
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-2.6.30.5'
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.
- recreating module dependency list
- trying a sample load of the kernel modules
done.
[Message] Kernel Module : update initramfs not required
upup-433 (2.6.33.2) fglrx install log - failure
same as luci-237 fglrx install log - failure
[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.33.2/build SUBDIRS=/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.33.2'
CC [M] /lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
In file included from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:107:
include/linux/mmzone.h:18:30: error: generated/bounds.h: No such file or directory
include/linux/mmzone.h:258:5: warning: "MAX_NR_ZONES" is not defined
include/linux/mmzone.h:260:7: warning: "MAX_NR_ZONES" is not defined
include/linux/mmzone.h:262:7: warning: "MAX_NR_ZONES" is not defined
In file included from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:107:
include/linux/mmzone.h:300: error: 'MAX_NR_ZONES' undeclared here (not in a function)
In file included from /usr/src/linux-2.6.33.2/arch/x86/include/asm/pci.h:4,
from include/linux/pci.h:1140,
from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:114:
include/linux/mm.h:454:63: warning: "NR_PAGEFLAGS" is not defined
include/linux/mm.h:502:62: warning: "NR_PAGEFLAGS" is not defined
In file included from /lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:451:
/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h: In function 'FGLDRM__vma_info':
/lib/modules/fglrx/build_mod/2.6.x/drm_proc.h:497: warning: format '%08lx' expects type 'long unsigned int', but argument 5 has type 'phys_addr_t'
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_MapPageToPfn':
/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1636: warning: unused variable 'bus_addr'
make[2]: *** [/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.33.2'
make: *** [kmod_build] Error 2
build failed with return value 2
[Error] Kernel Module : Failed to compile kernel module - please consult readme.

User avatar
Karl Godt
Posts: 4199
Joined: Sun 20 Jun 2010, 13:52
Location: Kiel,Germany

#2 Post by Karl Godt »

http://packages.ubuntu.com/search?suite ... s=bounds.h

http://packages.ubuntu.com/search?suite ... 2Fbounds.h

http://packages.ubuntu.com/search?suite ... 2Fmmzone.h

431:
81 : #define MAX_NR_ZONES 3 /* Sync this with ZONES_SHIFT */

I am running 431 ATM and cannot find bounds.h for now and mm.h hasn't defined NR_PAGEFLAGS either here AIS

I used pfind Search Text in Files at /usr/include
(pfind turns out disgusting when using it many times)

also possible :

Code: Select all

# grep MAX_NR_ZONES /usr/include/*
# grep MAX_NR_ZONES /usr/include/linux/*
/usr/include/linux/gfp.h: * This zone list contains a maximum of MAXNODES*MAX_NR_ZONES zones.
/usr/include/linux/mm.h: * We'll have up to (MAX_NUMNODES * MAX_NR_ZONES) zones total,
/usr/include/linux/mmzone.h:#define MAX_NR_ZONES                3       /* Sync this with ZONES_SHIFT */
/usr/include/linux/mmzone.h:#define ZONES_SHIFT         2       /* ceil(log2(MAX_NR_ZONES)) */
/usr/include/linux/mmzone.h:    unsigned long           protection[MAX_NR_ZONES];
/usr/include/linux/mmzone.h:    struct zone *zones[MAX_NUMNODES * MAX_NR_ZONES + 1]; // NULL delimited
/usr/include/linux/mmzone.h:    struct zone node_zones[MAX_NR_ZONES];
/usr/include/linux/mmzone.h:    if (zone - pgdat->node_zones < MAX_NR_ZONES - 1)
/usr/include/linux/mmzone.h: *  for (i = 0; i < MAX_NR_ZONES; ++i) {
# 
{EDIT}
MacpupF3 might be 430 and looking at MacpupO2 I found no mmzone.h and no mm.h
I might have installed some additional .h packages for compiling
:oops:

User avatar
playdayz
Posts: 3799
Joined: Fri 25 Apr 2008, 18:57

#3 Post by playdayz »

Hey Karl, Guess what. I built a luci with kernel 2.6.33.5 (not 2.6.33.2 as we have always used) and with that luci I was able to build ATI catalyst, which installed and ran.

Now there are two possibilities. I can use that luci to build a package that will work on our regular kernel 2.6.33.2, or, we can start to build luci with 2.6.33.5. It has been a long day. Thank you for your help.

Nym1
Posts: 15
Joined: Wed 12 Oct 2005, 19:18

#4 Post by Nym1 »

Hello,

Kernel_src-2.6.33.2-LHP.sfs has worked for me with fewer problems than kernel_src-2.6.33.2-patched.sfs. I don't have a machine with an ATI adapter but decided to try to compile the driver in luci-237 out of curiosity. Luci_devx_237.sfs and Kernel_src-2.6.33.2-LHP were added.

I used the "generate distribution specific package driver option" and chose to "build package for detected OS: Slackware/All" (at the bottom of the list of choices). The fglrx-install.log is shown below:
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.33.2/build SUBDIRS=/initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.33.2'
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_MapPageToPfn':
/initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1636: warning: unused variable 'bus_addr'
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_acpi.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_agp.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.o
/initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:65: warning: 'kcl_debug_sysrq_op' defined but not used
/initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_debug.c:72: warning: 'kcl_debug_sysrq_dump_op' defined but not used
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_ioctl.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_io.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_pci.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_str.o
CC [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/kcl_wait.o
LD [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
CC /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.mod.o
LD [M] /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko
make[1]: Leaving directory `/usr/src/linux-2.6.33.2'
build succeeded with return value 0
duplicating results into driver repository...
done.
You must change your working directory to /initrd/mnt/dev_save/dl/ati-driver/fglrx-install.iyYZRX/common/lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
I didn't proceed to call make_install.sh but the process appears to have worked up to that point at least when Kernel_src-2.6.33.2-LHP was used.

Good Luck,

Nym1

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#5 Post by 01micko »

um.. important I think...

When I compiled the kernel I did make a kernel source sfs and upoloaded to smkey01,com, however I didn't make clean that src and it was massive :shock: .

I did fix it and there is, and has been for quite awhile now this package.. http://www.smokey01.com/01micko/lupu_ke ... atched.sfs.. I thought you knew, there is a link on my dev page.

Cheers, and lets hope tomorrow is more fruitful. :wink:
Puppy Linux Blog - contact me for access

User avatar
01micko
Posts: 8741
Joined: Sat 11 Oct 2008, 13:39
Location: qld
Contact:

#6 Post by 01micko »

:oops:
double
Puppy Linux Blog - contact me for access

mories
Posts: 70
Joined: Mon 21 Dec 2009, 12:51

make modules_prepare

#7 Post by mories »

I think the problem is that needs to be done previously 'make modules_prepare' for prepare the kernel for building external modules.

Post Reply