You are not logged in.
i have a radeon 9800 pro AiW and i have been trying to get the drivers working to play ut2004. i have the ati-driver-module.install and it works
i have a problem at the moment:
a) i need to use xorg 6.7.0 and i have 6.8
i don't know how to rollthis back .... i have the .pkg file but i can't make it work
this is holding me back from rollingback the kernel also for compatibility
i have looked at forums and i am still having some probs
if someone could help me out i would be most greatful
Offline
If you already have the pkg, do "pacman -U /path_to_pkg/pkg"
Offline
I had to keep Xorg 6.7 due to the ATI drivers not supporting the newer version. Note that some of the newer GNOME libs require features only found in the Xorg 6.8 series.
Offline
You can find all the infos you need in this post:
Offline
FYI
Information about problems with holding back your xorg package here
Offline
UPDATE: ATI has released a new driver today which supports Xorg 6.8. Now everyone can update the driver and -Syu to their hearts content.
Offline
But how do we go from the given RPM to a "pacman" package
Here is the link ot the rpm:
http://www2.ati.com/drivers/linux/fglrx … 1.i386.rpm
Offline
I've made the PKGBUILDS to make ati-drivers and ati-drivers-kernel26 (I've just modified the ones made by Link), here you are...
ati-drivers:
PKGBUILD:
pkgname=ati-drivers
pkgver=8.8.25
pkgrel=1
pkgdesc="ATI accelerated drivers"
url="http://www.ati.com"
license="ATI"
groups=("x11")
depends=('xorg' 'ati-drivers-module')
makedepends=('rpmunpack')
install=ati-drivers.install
source=("http://www2.ati.com/drivers/linux/fglrx_6_8_0-8.8.25-1.i386.rpm" 'ati-drivers.sh')
build() {
cd $startdir/src
rpmunpack < $startdir/src/fglrx_6_8_0-8.8.25-1.i386.rpm | gzip -d | cpio -idmuv
rm -rf $startdir/src/usr/X11R6/bin/*.bz2
# Install the OpenGL libraries
install -m 755 -D $startdir/src/usr/X11R6/lib/libGL.so.1.2
$startdir/pkg/usr/X11R6/lib/libGL.so.1.2 || return 1
# We don't symlink because x-server provides the correct symlinks already
# Install the X and DRI drivers
install -m 644 -D $startdir/src/usr/X11R6/lib/modules/drivers/fglrx_drv.o
$startdir/pkg/usr/X11R6/lib/modules/drivers/fglrx_drv.o || return 1
install -m 755 -D $startdir/src/usr/X11R6/lib/modules/dri/fglrx_dri.so
$startdir/pkg/usr/X11R6/lib/modules/dri/fglrx_dri.so || return 1
# Install some apps
install -m 755 -D $startdir/src/ati-drivers.sh
$startdir/pkg/etc/profile.d/ati-drivers.sh || return 1
install -d $startdir/pkg/opt/ati/bin
install -m 755 -D $startdir/src/usr/X11R6/bin/*
$startdir/pkg/opt/ati/bin/ || return 1
# Remove stuff that we've put elsewhere
rm -f $startdir/src/usr/X11R6/lib/modules/drivers/fglrx_drv.o
$startdir/src/usr/X11R6/lib/modules/dri/fglrx_dri.so
$startdir/src/usr/X11R6/lib/libGL.so.1.2
$startdir/src/usr/X11R6/bin/*
rm -rf $startdir/src/usr/{src,share} $startdir/src/usr/X11R6/bin
cp -R $startdir/src/usr $startdir/pkg
}
ati-drivers.install:
# arg 1: the new package version
post_install() {
echo "You can use the tool 'fglrxconfig' to generate an xorg.conf file"
echo "Be aware that these drivers are not yet supported on XOrg 6.8.0"
echo "You may experience instability with 3D acceleration."
echo "You have been warned..."
}
# arg 1: the new package version
# arg 2: the old package version
post_upgrade() {
/bin/true
}
# arg 1: the old package version
pre_remove() {
/bin/true
}
# arg 1: the old package version
post_remove() {
/bin/true
}
op=$1
shift
$op $*
ati-drivers.sh:
export PATH=$PATH:/opt/ati/bin
ati-drivers-module-kernel26:
PKGBUILD:
kernel=`uname -r`
kernelpkgver=2.6.10-2
pkgname=ati-drivers-module-kernel26
pkgver=8.8.25
pkgrel=1
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_6_8_0-8.8.25-1.i386.rpm" 'ati_patch')
md5sums=('8245afc1a5f83634ab1b906b8107cd0c' '5c435b1e61e224708a86a73cebaebe98')
build() {
cd $startdir/src
rpmunpack < $startdir/src/fglrx_6_8_0-8.8.25-1.i386.rpm | gzip -d | cpio -idmuv
# Apply patches
cd $startdir/src/lib/modules/fglrx/build_mod
patch -p0 < $startdir/src/ati_patch
# 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
}
ati-drivers-module.install
# arg 1: the new package version
post_install() {
echo "Remember to add fglrx to the MODULES list in /etc/rc.conf."
echo "This is just the kernel module; install ati-drivers"
echo "for the configuration utilities and X libraries."
}
# arg 1: the new package version
# arg 2: the old package version
post_upgrade() {
/bin/true
}
# arg 1: the old package version
pre_remove() {
/bin/true
}
# arg 1: the old package version
post_remove() {
/bin/true
}
op=$1
shift
$op $*
ati_patch
--- agpgart_be.c 2005-01-06 9:05:02.000000000 +0100
+++ agpgart_be.c 2005-01-06 9:19:16.000000000 +0100
@@ -255,6 +255,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 +724,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 +800,13 @@
command &= ~0x00000001;
}
}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+ // the reference count has been increased in agp_backend_initialize.
+ if (device)
+ pci_dev_put(device);
+#endif
+
/*
* PASS2: Figure out the 4X/2X/1X setting and enable the
* target (our motherboard chipset).
@@ -839,8 +852,9 @@
* 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);
if (!(scratch & 0x00100000))
@@ -871,6 +885,12 @@
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+ // the reference count has been increased in agp_backend_initialize.
+ if (device)
+ pci_dev_put(device);
+#endif
+
return 0; /* success */
}
@@ -5119,8 +5139,9 @@
* 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);
if (!(scratch & 0x00100000))
@@ -5187,6 +5208,13 @@
command &= ~0x00000001;
}
}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+ // the reference count has been increased in agp_backend_initialize.
+ if (device)
+ pci_dev_put(device);
+#endif
+
/*
* PASS2: Figure out the 4X/2X/1X setting and enable the
* target (our motherboard chipset).
@@ -5217,8 +5245,9 @@
* 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);
if (!(scratch & 0x00100000))
@@ -5249,6 +5278,12 @@
}
}
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+ // the reference count has been increased in agp_backend_initialize.
+ if (device)
+ pci_dev_put(device);
+#endif
+
return(0); /* success */
}
@@ -6494,10 +6529,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 +7075,12 @@
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+ dev = firegl_pci_find_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 +7501,11 @@
agp_bridge.free_gatt_table();
vfree(agp_bridge.key_list);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
+ // decrease the reference count.
+ 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)
--- firegl_public.c 2005-01-06 9:05:02.000000000 +0100
+++ firegl_public.c 2005-01-06 9:19:16.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>
so, all you need to do is to build the packages, upgrade the old ones, upgrade xorg and gtk2 and everything should work fine )
Offline
Thanks thanks thanks, I'll try!
Offline
In a few time (i don't know how few) the new ati drivers will be avaliable in Link's TUR:
[link]
Server = ftp://ftp.archlinux.org/tur/link
Offline
Note that the precompiled packages will only work for the exact same kernel as running on the machine which built the package. I'd use his PKGBUILDs and build your own.
Offline
doesnt work here at all...
fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol pci_find_class
after depmod -a and modprobe fglrx. Kernel = 2.6.10-ARCH
I used the PKGBuilds. The patch hasn't had the correct checksum as well.
STi
Ability is nothing without opportunity.
Offline
I've compiled and installed the ati-driver and ati-driver-module packages. After rebooting the system everything looks normal. I could log in to my KDE desktop just like normal.
But when I do 'glxinfo | grep direct' I get:
direct rendering: No
OpenGL renderer string: Mesa GLX Indirect
So it looks like direct rendering is disabled, this shouldn't be like this isn't it?
I've also look in /var/log/Xorg.0.log:
(II) fglrx(0): [DRI] installation complete
(II) fglrx(0): Direct rendering enabled
How can I enable direct rendering?
Offline
I am "happy" to report that it does not work for me and I am at the same problem as STiAT with the
"fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel.
fglrx: Unknown symbol pci_find_class"
problem.
I say happy cause I learned the hard way that a space as the last character of a PKGBUILD file line is a no-no like for a makefile
Is it the same thing with the patch files, I have spaces at the end
I had updated everthing with pacman -Syu so I had the kernel 2.6.10-3
Therefore I replaced the 2 for the 3 in the file PKGBUILD like below:
ati-drivers-module-kernel26:
PKGBUILD:
Code:
kernelpkgver=2.6.10-3 <== I had installed the latest kernel
So I can not modprobe the fglrx module as it gives the error above "Unknown symbol pci_find_class"
Any guidance is appreciated here.
I checked the warnings and about agpgart_be.c.rej, some lines are pointing to the pci_find_class so I suppose that the patch are not appied corectly and it misses some functions
For Eric, the line you gave shows that the video driver you are using is the Mesa module and not the fglrx module.
.
Offline
I get the same problem as eric. My direct rendering is still off despite the fact that I am using the fglrx module.
Offline
Is it possible that you have the same problem as I but you would have your xorg.conf file to be able to revert to MESA if the gflrx module is not loaded properly.
If you run
modprobe fglrx
do you get the same as I:
FATAL: Error inserting fglrx (/lib/modules/2.6.10-ARCH/video/fglrx.ko): Unknown symbol in module, or unknown parameter (see dmesg)
Indicating that you are not running fglrx but the default mesa module
And to me it looks like we have references to the functions pci_find_class while the patch should have renamed those into firegl_pci_find_class function calls
Offline
Not at all, it's loading perfectly, No warnings or errors in xorg startup. Everything seems flawless, just no direct rendering
Offline
Well I am no expert so sorry if I missed something here but I would expect something like ATI as an answer from the call glxinfo and not Mesa
I remember using fglrxinfo and the result was similar to:
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON 9000 DDR Generic
OpenGL version string: 1.3.4641 (X4.3.0-3.14.1)
So it seems I will learn something today.
Offline
the "Unknown symbol pci_find_class" it's because something went wrong with the patch (the patch just change any occourrence of "pci_find_class" with "pci_get_class" in agpgart_be.c and add an "#include <linux/pagemap.h>" in firegl_public.c) probably when you cut & paste code from here, just download:
ftp://ftp.archlinux.org/incoming/ati-dr … LDS.tar.gz
Then uncompress it where u prefer (usually in /var/abs/local) and perform the folowing steps:
- cd ati-drivers-module-kernel26
- makepkg
- pacman -A (or -U if you have installed an old version of ati drivers) ati-drivers-module-kernel26-8.8.25-1.pkg.tar.gz
- cd ../ati-drivers
- makepkg
- pacman -A (or -U as above) ati-drivers-8.8.25-1.pkg.tar.gz
That's all
Offline
Tank you very much Qwerty for the link, it worked perfectly.
Could I be so bold as to ask why there is not a package called ATI like there is for NVIDIA
Offline
Yep. After compiling new 2.6.10 kernel and using qwerty's link above, I finally have direct rendering . I can play my 3d games again.
Offline
I'm happy that you've found useful that link, i've uploaded there the files i've used to build ati drivers packages because a lot of times patches and other stuff pasted from the board don't work, i've also mailed them to Link (the one who made the original PKGBUILDs) so i think that in a few time the new ati drivers packages will be avaliable to install them directly with pacman adding his repository to pacman.conf.
byeeeeeeeeeeee
(and sorry for my shitty english)
Offline
I'm also using a custom kernel 2.6.10. I still have the problem that I don't have direct rendering (according to glxinfo) although the xorg log shows that direct rendering is enabled (see an earlier posting in this thread).
So, now I'm going to recompile the kernel. Are there any kernel options I should or shouldn't include in the kernel?
Offline
I get the same problem as eric. My direct rendering is still off despite the fact that I am using the fglrx module.
.this is due to the 2.6.10 kernel folks..there is a patch at Rage 3D that worked nicely for me...also some good patches for any Nitro or MM users also..but it isn`t a breeze to install because unfortunately ATI still thinks your using Xfree even if yer using Xorg...I posted details on how to unpack the RPM and copy and paste the sections you need here..
http://bbs.archlinux.org/viewtopic.php?t=9030&start=0&postdays=0&postorder=asc&highlight=[/url]
Offline
GuyonAsm wrote:I get the same problem as eric. My direct rendering is still off despite the fact that I am using the fglrx module.
.this is due to the 2.6.10 kernel folks..there is a patch at Rage 3D that worked nicely for me...also some good patches for any Nitro or MM users also..but it isn`t a breeze to install because unfortunately ATI still thinks your using Xfree even if yer using Xorg...I posted details on how to unpack the RPM and copy and paste the sections you need here..
http://bbs.archlinux.org/viewtopic.php?t=9030&start=0&postdays=0&postorder=asc&highlight=[/url]
No, I was getting the problem with 2.6.8 kernel. After upgrading to 2.6.10 kernel it worked flawlessly.
Offline