I compiled latest gentoo-soucres kernel (from 25.08.2003). Build agpgart. Then I emerged xfree-drm with USE="radeon". Here is a snippet of the compile process: <snip> * Building DRM... gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested-externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/linux/include/linux/modversions.h -DEXPORT_SYMTAB -I/usr/src/linux/include -c radeon_drv.c -o radeon_drv.o In file included from radeon_drv.c:48: drm_lock.h: In function `radeon_lock_take': drm_lock.h:57: warning: implicit declaration of function `cmpxchg' </snip> when I issue: cat config | grep CMPX I get no entry. Is that the problem? I found an entry at: http://www.mail-archive.com/gentoo-user@gentoo.org/msg13475.html After "emerge xfree-drm" a "modprobe radeon" shows: <snip> /lib/modules/2.4.20-gentoo-r5/kernel/drivers/char/drm/radeon.o: unresolved symbol cmpxchg /lib/modules/2.4.20-gentoo-r5/kernel/drivers/char/drm/radeon.o: insmod /lib/modules/2.4.20-gentoo-r5/kernel/drivers/char/drm/radeon.o failed /lib/modules/2.4.20-gentoo-r5/kernel/drivers/char/drm/radeon.o: insmod radeon failed </snip> Before that I had to insmod agpgart with the unsupported parameter. (because of the Sis Chipset) When I am at home I will post my exact kernel version. But I got the same error as above. I searched the web but I haven't found a solution for that problem anywhere. The ati-drivers doesnt't work either because I have got a PCI Card and the ATI drivers are only for AGP. Btw, Xfree86 works and starts up with DRI disabled. But that is not what I want ;-) Thanks. gonzo P.S.: Perhaps that's important: I have got a Celeron 1.8Ghz cpu SiS 651 chipset (but not using the onboard vga) ATI Radeon 9000 PCI (It's a MSI 651 Hermes barebone Pc System)
I'll be putting -r7 of xfree-drm out before long, which should have better support for direct rendering on PCI cards. I'll post to this bug once it's committed so you can test.
ok here comes my specific console output: USE="radeon" emerge xfree-drm Calculating dependencies ...done! >>> emerge (1 of 1) x11-base/xfree-drm-4.3.0-r6 to / >>> md5 src_uri ;-) linux-drm-4.3.0-kernelsource-20030714.tar.gz >>> md5 src_uri ;-) xfree-drm-4.3.0-r6-gentoo-0.4.tar.bz2 >>> Unpacking source... >>> Unpacking linux-drm-4.3.0-kernelsource-20030714.tar.gz to /var/tmp/portage/xfree- drm-4.3.0-r6/work >>> Unpacking xfree-drm-4.3.0-r6-gentoo-0.4.tar.bz2 to /var/tmp/portage/xfree-drm-4.3.0- r6/work * Applying xfree-drm-4.3.0-r6-gentoo-Makefile-fixup.patch... [ ok ] * Applying xfree-drm-4.3.0-r6-dristat.patch... [ ok ] * Detected rmap enabled kernel. * Applying rmap patch... [ ok ] >>> Source unpacked. * Building DRM... gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing - DCONFIG_AGP -DCONFIG_AGP_MODULE -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/ linux/include/linux/modversions.h -DEXPORT_SYMTAB -I/usr/src/linux/include -c radeon_drv.c - o radeon_drv.o In file included from radeon_drv.c:51: drm_lock.h: In function `radeon_lock_take': drm_lock.h:64: warning: implicit declaration of function `cmpxchg' gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing - DCONFIG_AGP -DCONFIG_AGP_MODULE -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/ linux/include/linux/modversions.h -I/usr/src/linux/include -c radeon_cp.c -o radeon_cp.o gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing - DCONFIG_AGP -DCONFIG_AGP_MODULE -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/ linux/include/linux/modversions.h -I/usr/src/linux/include -c radeon_state.c -o radeon_state.o gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing - DCONFIG_AGP -DCONFIG_AGP_MODULE -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/ linux/include/linux/modversions.h -I/usr/src/linux/include -c radeon_mem.c -o radeon_mem.o gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -D__KERNEL__ -DMODULE -fomit-frame-pointer -fno-strict-aliasing - DCONFIG_AGP -DCONFIG_AGP_MODULE -DCONFIG_DRM_SIS -DMODVERSIONS -include /usr/src/ linux/include/linux/modversions.h -I/usr/src/linux/include -c radeon_irq.c -o radeon_irq.o ld -r radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o -o radeon.o gcc -O2 -Wall -Wwrite-strings -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wnested- externs -Wpointer-arith -g -ansi -pedantic -DPOSIX_C_SOURCE=199309L -D_POSIX_SOURCE - D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -I../../../../../../include -I../../../../../../../../ include -I../../../../../../../../programs/Xserver/hw/xfree86/common -I. -I../../.. -I../../../../../../ ../../lib/X11 dristat.c -o dristat xf86drm.c:1170: warning: `drm_unlock_callback' defined but not used >>> Install xfree-drm-4.3.0-r6 into /var/tmp/portage/xfree-drm-4.3.0-r6/image/ category x11-base * installing DRM... install -d -m 0755 /var/tmp/portage/xfree-drm-4.3.0-r6/image//lib/modules/2.4.20-gentoo- r6/kernel/drivers/char/drm * Stripping binaries... /usr/X11R6/bin/dristat man: >>> Completed installing into /var/tmp/portage/xfree-drm-4.3.0-r6/image/ XFree.0.log says when starting x: .... (--) PCI:*(0:6:0) ATI Technologies Inc Radeon R250 If [Radeon 9000] rev 1, Mem @ 0xd0000000/ 27, 0xdfff0000/16, I/O @ 0xd800/8, BIOS @ 0xdffc0000/17 .... (II) Primary Device is: PCI 00:06:0 (--) Assigning device section with no busID to primary device (--) Chipset ATI Radeon 9000 If (AGP) found .... (**) RADEON(0): Option "ForcePCIMode" "True" .... (**) RADEON(0): Forced into PCI-only mode .... (==) RADEON(0): Write-combining range (0xd0000000,0x4000000) drmOpenDevice: minor is 0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 6, (OK) drmOpenDevice: minor is 0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 6, (OK) drmOpenDevice: minor is 0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: open result is 6, (OK) drmOpenDevice: minor is 1 drmOpenDevice: node name is /dev/dri/card1 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 2 drmOpenDevice: node name is /dev/dri/card2 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 3 drmOpenDevice: node name is /dev/dri/card3 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 4 drmOpenDevice: node name is /dev/dri/card4 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 5 drmOpenDevice: node name is /dev/dri/card5 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 6 drmOpenDevice: node name is /dev/dri/card6 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 7 drmOpenDevice: node name is /dev/dri/card7 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 8 drmOpenDevice: node name is /dev/dri/card8 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 9 drmOpenDevice: node name is /dev/dri/card9 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 10 drmOpenDevice: node name is /dev/dri/card10 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 11 drmOpenDevice: node name is /dev/dri/card11 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 12 drmOpenDevice: node name is /dev/dri/card12 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 13 drmOpenDevice: node name is /dev/dri/card13 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed drmOpenDevice: minor is 14 drmOpenDevice: node name is /dev/dri/card14 drmOpenDevice: open result is -1, (No such device) drmOpenDevice: open result is -1, (No such device) drmOpenDevice: Open failed (II) RADEON(0): [drm] drmOpen failed (EE) RADEON(0): [dri] DRIScreenInit failed. Disabling DRI. and finally here comes syslog: agpgart: Unsupported SiS chipset (device id: 0651), you might want to try agp_try_unsupported=1
As for the cmpxchg issue, the mailing list post you referenced sounded useful. Do you have your processor set correctly (e.g., PentiumIII/Celeron, Pentium4, or whatever yours is) in the Processor Type and Features section of make menuconfig?
Sorry kernel guys, didn't mean to CC you here.
I confirmed that this issue is due to having 386 set in Processor Type and features (it should be 486 or higher), so I'm closing this.