You are not logged in.
Well at least they give a solution :
X Fails to load on systems with Linux kernel version 2.6.x
This information applies to the following system configurations:Linux kernel version 2.6.x
Any ATI Linux driver
A blank screen may appear momentarily when X starts to load. The following error message (or similar) may appear on the text console or in /var/log/XFree86.0.log:(EE) fglrx(0): [agp] unable to acquire AGP, error ""xf86_ENODEV""
This is not a problem with the display driver.
Version 2.6 kernels require a second kernel module in addition to agpgart, which should be named similar to the manufacturer of your motherboard AGP chipset. This error message should occur if the other agp module is not loaded.
This issue can be worked around as follows:
First make sure that agpgart is loading properly.
To find out which AGP controller your motherboard uses, issue the following command: lspci | grep AGP
To find a list of AGP related kernel modules installed on your machine, issue the following command and look for a module (*.ko file) that suits your AGP Controller: ls /lib/modules/`uname -r`/kernel/drivers/char/agp
Use the modprobe command (as root) to load the module. For example: On a motherboard using a VIA® AGP Controller, you would load the via-agp.ko using modprobe as follows (notice that the trailing .ko is omitted): modprobe via-agp
Check the modprobe manpage for more information on loading kernel modules.To verify that the AGP module is already loaded, run lsmod as root. With the XServer running and the connection established, the usage count of this module must be greater than zero.
If you cannot find a suitable agp module for your motherboard, then you may want to upgrade to the latest version of the Linux kernel, or check your motherboard manufacturer's website for more information.Didn't read this before. Sorry.
And perhaps there is still some hope, but you never know : http://www.rage3d.net/board/showpost.ph … stcount=27
CU ActionNews
Ahh, ok, I've heard of that module. It looks like Arch's kernel26 has the agpgart & the agp-* modules compiled into it.
[link@blue ~]$ grep AGP /boot/kconfig26
CONFIG_AGP=y
CONFIG_AGP_ALI=y
CONFIG_AGP_ATI=y
CONFIG_AGP_AMD=y
CONFIG_AGP_AMD64=y
CONFIG_AGP_INTEL=y
CONFIG_AGP_INTEL_MCH=y
CONFIG_AGP_NVIDIA=y
CONFIG_AGP_SIS=y
CONFIG_AGP_SWORKS=y
CONFIG_AGP_VIA=y
CONFIG_AGP_EFFICEON=y
So we should be okay for a 3.14.1 build. I'll get on that today after work.
Offline
this is getting realy frusterating.
I finally hoped this would work, but it's still not working.
firstly i took links Xorg that was a bit back in the topic, and downgraded my xorg.
This simply resulted in Xorg no longer functioning.
it tried to find modules that wheren't there.
(EE) Failed to load module "bitmap" (module does not exist, 0)
(EE) Failed to load module "pcidata" (module does not exist, 0)
But since i have a tendencie never to trow away stuff i happily still had the old xorg 6.7 in the /var/cache/pacman/pkg directory, and installed that one.
Then i installed links repositories, and downloaded the ati drivers and ati kernel module.
So i installed it and booted into the default 2.6.8.1 kernel.
I expected it to be that simple.
However i was presented with the following error when trieng to load the ati driver.
fglrx: version magic '2.6.8.1 SMP preempt PENTIUM4 gcc-3.4' should be '2.6.8.1 SMP preempt 686 gcc-3.4'
Now i'm guessing that this would be a leftover from another 'trying to get this damn ati to work' project, described on page 1 of this topic.
my question is, why wasn't that one overwritten, or what did i forget to do, and why isn't it working.
followed by some obnoxious cries for help in all caps.
but however, i also tried to force load it.
Which precented me wih this nice addition to errors when trying to start X
Xorg.8.log.old:Symbol DRIGetDrawableInfo from module /usr/X11R6/lib/modules/drivers/fglrx_drv.o is unresolved!
so i disabled DRI, which worked.
but basicly put me bak to square one, since then 3d doesn't work.
*sigh*
so please, if anyone knows what step i apparently missed, or did wrong, please tell.
-edit-
just tried kleptophobiac's pkgbuild, the results where as expected.
Error:
XFree86 drm includes at /lib/modules/2.6.8.1/build/include/../drivers/char/drm do not fit this driver.
This driver is designed to only work with X4.1.0 or higher.
You can match this by getting Linux kernel 2.4.8 or higher.
Show me a sane man and I will cure him for you." - Carl Gustav Jung (1875-1961)
Offline
i finaly got it too work.
Since i'm guessing there are more people who are pulling out there hair slow but steady i'll try to describe how i got it to work.
firstly i pulled a vanilla kernel and set it up the way i liked.
made symlinks to the kernel source dir in /lib/modules/2.6.8.1
named build and source. (perhaps this is standard but i never heard of it anyway)
got the abs-ati-drivers PKGBUILD from kleptophobiac's a bit back in this topic.
and rand makepkg.
followed his steps.
then did a grep AGP /proc/pci to find out i have a sis AGP thingy.
so i added sis_agp and agpgart and fglrx to my rc.conf and rebooted.
edited my xorg.conf as described by the horrible auto generated XF86Config from the fglrxconfig thingy.
then i commented out the module extmod.
and kablam it worked
Show me a sane man and I will cure him for you." - Carl Gustav Jung (1875-1961)
Offline
Congrats! Another success story is always good to hear. :-)
Offline
well not realy.
It's working:
[stratos@Tanzwut ~]$ fglrxinfo
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON 9600 XT Generic
OpenGL version string: 1.3.4510 (X4.3.0-3.12.0)
and the glxgear and fgl_glxgears are working
[stratos@Tanzwut ~]$ glxgears
8974 frames in 5.0 seconds = 1794.800 FPS
9628 frames in 5.0 seconds = 1925.600 FPS
Broken pipe
[stratos@Tanzwut ~]$ fgl_glxgears
1705 frames in 5.0 seconds = 341.000 FPS
1803 frames in 5.0 seconds = 360.600 FPS
but when i run a game like tuxracer or neverball, they are extreeemly slow, as if there not using the 3d acceleration.
Xscreensaver is running fine though almost all of the openGL enabled screensavers work fine.
Show me a sane man and I will cure him for you." - Carl Gustav Jung (1875-1961)
Offline
Followed the instructions and have great framerates, but many of my OpenGL apps look screwy or crash.
My first thought is that this tutorial no longer includes a second atch for AMD processors and maybe, if I applied that, it would solve my problem...
Offline
Followed the instructions and have great framerates, but many of my OpenGL apps look screwy or crash.
My first thought is that this tutorial no longer includes a second atch for AMD processors and maybe, if I applied that, it would solve my problem...
There is a patch for AMD processors? I have an AMD, though to be honest the only OpenGL application I use these days is the glslideshow screensaver. I haven't played any games in Linux in a long time.
Offline
There used to be one...
Offline
Hello all
After ploughing through theses posts I can't find anyone with the same problem as me.
when I run sh make_install.sh in /lib/modules/fglrx I get the following error :
[root@shmonkey fglrx]# sh make_install.sh
- creating symlink
- recreating module dependency list
- trying a sample load of the kernel module
FATAL: Error inserting fglrx (/lib/modules/2.6.8.1/kernel/drivers/char/drm/fglrx.ko): Invalid module format
failed.
any ideas on how to get past this ?
Unreal Tournament 2004 is calling
Offline
try a modprobe -r radeon had the same prob......make sure you dont have any radeon modules loading at boot...just fglrx
Offline
Hallo, i've just upgraded to kernel 2.6.10 and i've had a lot of trouble making fgrlx module work, at the end i've found a patch here:
http://www.rage3d.com/board/showthread.php?t=33797225
And now everything seems to work...
Here is my PKGBUILD (i've just modified the one from Link Dupont):
kernel=`uname -r`
kernelpkgver=2.6.10-1
pkgname=ati-drivers-module-kernel26
pkgver=3.14.1
pkgrel=2
pkgdesc="ATI drivers kernel module"
url="http://www.ati.com"
license="ATI"
provides=('ati-drivers-module')
depends=("kernel26=$kernelpkgver")
makedepends=('rpmunpack')
install=ati-drivers-module.install
source=("http://www2.ati.com/drivers/linux/fglrx-4.3.0-$pkgver.i386.rpm"
'arch-xorg-fix-includes.patch' "http://www.pissflitsche.net/scripts/agpgart_be.patch")
md5sums=('ae7bbeab76a3b08e7e2e769dc3ad6a5a' '47fa4a6761ad5c957d9b63b958c1bd5b'
'9a4860f2b69fc421d1303c3be4794f48')
build() {
cd $startdir/src
rpmunpack < $startdir/src/fglrx-4.3.0-$pkgver.i386.rpm | gzip -d | cpio -idmuv
# Correct the permissions
chmod 644 `find $startdir/src -type f`
chmod 755 `find $startdir/src -type d`
# Apply patches
cd $startdir/src/lib/modules/fglrx/build_mod
patch -p4 < $startdir/src/arch-xorg-fix-includes.patch
patch -p0 < $startdir/src/agpgart_be.patch
# Fix some stupid permission problems
chmod 644 `find $startdir/src/lib/modules/fglrx/build_mod/ -type f`
chmod 755 $startdir/src/lib/modules/fglrx/build_mod/2.6.x
# Compile the DRI kernel module
cd $startdir/src/lib/modules/fglrx/build_mod
cp 2.6.x/Makefile .
export _POSIX2_VERSION="199209"
make -C /usr/src/linux-$kernel SUBDIRS="`pwd`" modules || return 1
# Install the kernel module
install -m 644 -D $startdir/src/lib/modules/fglrx/build_mod/fglrx.ko
$startdir/pkg/lib/modules/$kernel/video/fglrx.ko || return 1
}
Offline
there appears to be a new version of the ATI linux drivers for xorg 6.8!!!!!
http://www2.ati.com/drivers/linux/fglrx … 1.i386.rpm
I'll be messing with it over the next few days.
Offline
Finally I can take off xorg from ignorepkg
Works fine on my laptop running custom 2.6.9 and ATI 9600.
Used the ati-drivers pkgbuild in the TUR and modified it to suit the new RPM file.
GL seems smooth in tuxracer, and KDE screensaver, this is the extent of my testing, good luck installing everyone
--
JSkier
Offline
Finally I can take off xorg from ignorepkg
Works fine on my laptop running custom 2.6.9 and ATI 9600.
Used the ati-drivers pkgbuild in the TUR and modified it to suit the new RPM file.
Mmm I've tried that, but doesn't seem to work for me. First of all I get an error while applying the 2.6.10 patch:
Hunk #3 succeeded at 5119 (offset 51 lines).
Hunk #5 FAILED at 6418.
Hunk #6 succeeded at 7040 (offset 105 lines).
1 out of 6 hunks FAILED -- saving rejects to file agpgart_be.c.rej
And finally when the module is built, I can't load it. depmod doesn't do a thing at all and insmod:
[root@ender video]# insmod fglrx.ko
insmod: error inserting 'fglrx.ko': -1 Unknown symbol in module
Edit: Did a little research and it turns out that my agpart_be is indeed not correctly patched, as what I can find the error with inserting the module is:
fglrx: no version for "struct_module" found: kernel tainted.
fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol pci_find_class
fglrx: Unknown symbol pci_find_class
Which is basically what the patch should correct, if I'm not mistaken.
DIY: Doom-It-Yourself
Offline
Replace your current patch with the code below and if using the PKGBUILD from TUR take the Arch patch out.
--- agpgart_be.c 2004-12-14 12:55:47.000000000 -0500
+++ agpgart_be2.c 2005-01-17 17:31:50.000000000 -0500
@@ -718,7 +718,7 @@
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -839,7 +839,7 @@
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5119,7 +5119,7 @@
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5217,7 +5217,7 @@
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -6494,10 +6494,10 @@
// locate host bridge device
#ifdef __x86_64__
do {
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+ dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while((dev) && !agp_check_supported_device(dev));
#else
- if ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
+ if ((dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
return -ENODEV;
#endif
@@ -7040,7 +7040,7 @@
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+ dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while (dev);
return -ENODEV;
}
If you have problems with the above, just let me know and I'll post the patch on my website.
Offline
patching file agpgart_be.c
Hunk #1 FAILED at 718.
Hunk #2 FAILED at 839.
Hunk #3 FAILED at 5119.
Hunk #4 FAILED at 5217.
Hunk #6 FAILED at 7040.
Now all the changes fail
And I don't understand why cause it looks alright, have a look at my reject file:
*** 718,724 ****
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
--- 718,724 ----
* AGP devices and collect their data.
*/
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
***************
*** 839,845 ****
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
--- 839,845 ----
* command registers.
*/
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
***************
*** 5119,5125 ****
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
--- 5119,5125 ----
* AGP devices and collect their data.
*/
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
***************
*** 5217,5223 ****
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
--- 5217,5223 ----
* command registers.
*/
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
***************
*** 7040,7046 ****
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while (dev);
return -ENODEV;
}
--- 7040,7046 ----
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
+ dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while (dev);
return -ENODEV;
}
DIY: Doom-It-Yourself
Offline
That's strange. Try using this PKGBUILD and report back.
Link: http://personal.ecu.edu/rjh0507/ati-drivers.tar.gz
Just change the kernel version in the PKGBUILD to your kernel package.
Offline
Forgot to say that you still need the ati-drivers PKGBUILD from link's TUR. This archive is only for the ati-drivers-module part.
Offline
Forgot to say that you still need the ati-drivers PKGBUILD from link's TUR. This archive is only for the ati-drivers-module part.
I am using the link's PKGBUILD and without the ati-drivers I can't even build the modules
DIY: Doom-It-Yourself
Offline
Mmm I've tried that, but doesn't seem to work for me. First of all I get an error while applying the 2.6.10 patch:
I posted success with 2.6.9, not 2.6.10. The 2.6.10 patch needs to be updated it appears.
--
JSkier
Offline
I made my own patch by changing the file by hand and running it through diff. I replaced the one from link's TUR and commented out the Arch specific patch and everything worked fine. I'm using the drivers right now.
Offline
You can find the right patch to use with new ati drivers on rage3d forum, anyway, i've pasted the PKGBUILDs (modified from the ones in Link's TUR) and the patch i've used here:
Offline
I have found this patch to work with 2.6.10
http://frodo.hiof.no/~mk/fglrx-8.8.25-l … 6.10.patch
Offline
I have found this patch to work with 2.6.10
http://frodo.hiof.no/~mk/fglrx-8.8.25-l … 6.10.patch
Can you please copy and paste it, can't reach that page...
DIY: Doom-It-Yourself
Offline
rottenikken wrote:I have found this patch to work with 2.6.10
http://frodo.hiof.no/~mk/fglrx-8.8.25-l … 6.10.patchCan you please copy and paste it, can't reach that page...
--- src-8.8.25-orig/lib/modules/fglrx/build_mod/agpgart_be.c2004-12-14 18:55:47.000000000 +0100
+++ src-8.8.25/lib/modules/fglrx/build_mod/agpgart_be.c2005-01-18 21:08:14.000000000 +0100
@@ -117,6 +117,10 @@
#include <linux/miscdevice.h>
#include <linux/pm.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9)
+#define pci_find_class pci_get_class
+#endif
+
#if (LINUX_VERSION_CODE >= 0x020400)
#define FGL_PM_PRESENT
#else
@@ -255,6 +259,12 @@
}
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+#define firegl_pci_find_class(class,from) pci_get_class(class,from)
+#else
+#define firegl_pci_find_class(class,from) pci_find_class(class,from)
+#endif
+
int agp_backend_acquire(void)
{
if (agp_bridge.type == NOT_SUPPORTED) {
@@ -718,7 +728,7 @@
* AGP devices and collect their data.
*/
-while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -794,6 +804,12 @@
command &= ~0x00000001;
}
}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+if(device)
+pci_dev_put(device);
+#endif
+
/*
* PASS2: Figure out the 4X/2X/1X setting and enable the
* target (our motherboard chipset).
@@ -839,7 +855,7 @@
* command registers.
*/
-while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -870,6 +886,10 @@
pci_write_config_dword(device, cap_ptr + 8, command);
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+if(device)
+pci_dev_put(device);
+#endif
return 0; /* success */
}
@@ -5119,7 +5139,7 @@
* AGP devices and collect their data.
*/
-while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5187,6 +5207,12 @@
command &= ~0x00000001;
}
}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+if (device)
+pci_dev_put(device);
+#endif
+
/*
* PASS2: Figure out the 4X/2X/1X setting and enable the
* target (our motherboard chipset).
@@ -5217,7 +5243,7 @@
* command registers.
*/
-while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+while ((device = firegl_pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5249,6 +5275,11 @@
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+if (device)
+pci_dev_put(device);
+#endif
+
return(0); /* success */
}
@@ -6494,10 +6525,10 @@
// locate host bridge device
#ifdef __x86_64__
do {
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+ dev = firegl_pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while((dev) && !agp_check_supported_device(dev));
#else
- if ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
+ if ((dev = firegl_pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
return -ENODEV;
#endif
@@ -7040,8 +7071,14 @@
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
-dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+dev = firegl_pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while (dev);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+if(dev)
+pci_dev_put(dev);
+#endif
+
return -ENODEV;
}
#endif/* __ia64__ */
@@ -7462,6 +7499,10 @@
agp_bridge.free_gatt_table();
vfree(agp_bridge.key_list);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+pci_dev_put(agp_bridge.dev);
+#endif
+
if (agp_bridge.needs_scratch_page == TRUE) {
agp_bridge.scratch_page &= ~(0x00000fff);
agp_bridge.agp_destroy_page((unsigned long)
--- src-8.8.25-orig/lib/modules/fglrx/build_mod/firegl_public.c2005-01-05 02:05:05.000000000 +0100
+++ src-8.8.25/lib/modules/fglrx/build_mod/firegl_public.c2005-01-18 21:08:37.000000000 +0100
@@ -88,6 +88,7 @@
#include <linux/smp_lock.h>
// newer SuSE kernels need this
#include <linux/highmem.h>
+#include <linux/pagemap.h> // for lock_page and unlock_page
#if defined(__ia64__)
#include <linux/vmalloc.h>
Offline