View Full Version : Will 8.42 support kernel 2.6.23?
Moronix
10-09-2007, 09:21 PM
Because I just made the mistake of updating the kernel to 2.6.23 but the 8.40. driver doesn't work. :(
Michael
10-09-2007, 09:34 PM
Because I just made the mistake of updating the kernel to 2.6.23 but the 8.40. driver doesn't work. :(
Yes, it should.
Maybe better add a poll ;)
yoshi314
10-10-2007, 06:08 AM
i bet it won't :]
stealth
10-10-2007, 08:12 AM
and how about xorg 1.4.0? will 8.42 support this version of xorg?
Michael
10-10-2007, 08:15 AM
and how about xorg 1.4.0? will 8.42 support this version of xorg?
Now that X server 1.4 is officially available, you can expect the support very very soon. If you recall from our development cycle article, since the release happened last month, that still fell into the 8.42 cycle for development and testing.
stealth
10-10-2007, 08:39 AM
well, "very very soon" sounds really cool ;-)
right now i am forced to use the vesa-driver, and that's kind of ugly. on the other hand i could downgrade to an older xorg, but i prefer to wait for the new driver to be released ("very very soon") :)
You only need -ignoreABI option. What do you use KDM/GDM or XDM or something else?
yoshi314
10-10-2007, 12:14 PM
Because I just made the mistake of updating the kernel to 2.6.23 but the 8.40. driver doesn't work
8.40 - 2.6.23 patch. didn't test it (i dn't use fglrx anymore)
diff -Naur common/lib/modules/fglrx/build_mod/firegl_public.c common/lib/modules/fglrx/build_mod/firegl_public.c
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -2409,7 +2409,11 @@
#ifdef pte_offset_map
pte_p = pte_offset_map(pmd_p, virtual_addr);
if (pte_present(*pte_p))
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
+#else
+ return 0;
+#endif
else
__KE_DEBUG("page not exists!\n");
pte_unmap(pte_p);
@@ -3399,9 +3403,11 @@
sprintf(buf, "0x%Lx %c%c%c%c%c%c\n",
*phys_address,
pte_present (pte) ? 'p' : '-',
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
pte_read (pte) ? 'r' : '-',
- pte_write (pte) ? 'w' : '-',
pte_exec (pte) ? 'x' : '-',
+#endif
+ pte_write (pte) ? 'w' : '-',
pte_dirty (pte) ? 'd' : '-',
pte_young (pte) ? 'a' : '-');
}
@@ -5348,7 +5354,11 @@
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
if ((slabcache_obj->cache =
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
+#else
+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
+#endif
{
ret = 1;
}
found it in sabayon linux gentoo overlay ( link (http://svn.sabayonlinux.org/listing.php?repname=overlay&path=%2Fx11-drivers%2Fati-drivers%2Ffiles%2F#_x11-drivers_ati-drivers_files_) )
Michael
10-10-2007, 12:40 PM
Actually I just found out that they may be rethinking their decision to support 2.6.23 with 8.43 due to 64-bit issues...
koolmanoncampus
10-10-2007, 01:37 PM
ug, so no F8 support than. (assuming it doesn't support i686 2.6.23)
Moronix
10-10-2007, 09:29 PM
8.40 - 2.6.23 patch. didn't test it (i dn't use fglrx anymore)
diff -Naur common/lib/modules/fglrx/build_mod/firegl_public.c common/lib/modules/fglrx/build_mod/firegl_public.c
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -2409,7 +2409,11 @@
#ifdef pte_offset_map
pte_p = pte_offset_map(pmd_p, virtual_addr);
if (pte_present(*pte_p))
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
+#else
+ return 0;
+#endif
else
__KE_DEBUG("page not exists!\n");
pte_unmap(pte_p);
@@ -3399,9 +3403,11 @@
sprintf(buf, "0x%Lx %c%c%c%c%c%c\n",
*phys_address,
pte_present (pte) ? 'p' : '-',
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
pte_read (pte) ? 'r' : '-',
- pte_write (pte) ? 'w' : '-',
pte_exec (pte) ? 'x' : '-',
+#endif
+ pte_write (pte) ? 'w' : '-',
pte_dirty (pte) ? 'd' : '-',
pte_young (pte) ? 'a' : '-');
}
@@ -5348,7 +5354,11 @@
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
if ((slabcache_obj->cache =
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
+#else
+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
+#endif
{
ret = 1;
}
found it in sabayon linux gentoo overlay ( link (http://svn.sabayonlinux.org/listing.php?repname=overlay&path=%2Fx11-drivers%2Fati-drivers%2Ffiles%2F#_x11-drivers_ati-drivers_files_) )
Did not work.
nederwiet
10-11-2007, 07:07 AM
I have the ATI 8.41.7 driver running with the 2.6.23 kernel.
I used the folowing patches:
--- firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -2409,7 +2409,11 @@
#ifdef pte_offset_map
pte_p = pte_offset_map(pmd_p, virtual_addr);
if (pte_present(*pte_p))
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
+#else
+ return 0;
+#endif
else
__KE_DEBUG("page not exists!\n");
pte_unmap(pte_p);
@@ -3399,9 +3403,11 @@
sprintf(buf, "0x%Lx %c%c%c%c%c%c\n",
*phys_address,
pte_present (pte) ? 'p' : '-',
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
pte_read (pte) ? 'r' : '-',
- pte_write (pte) ? 'w' : '-',
pte_exec (pte) ? 'x' : '-',
+#endif
+ pte_write (pte) ? 'w' : '-',
pte_dirty (pte) ? 'd' : '-',
pte_young (pte) ? 'a' : '-');
}
@@ -5348,7 +5354,11 @@
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
if ((slabcache_obj->cache =
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
+#else
+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
+#endif
{
ret = 1;
}
--- firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -452,7 +452,7 @@
}
static unsigned int
-firegl_interrupt_poll_wrap(struct file *user_file, poll_table *pt)
+firegl_interrupt_poll_wrap(struct file *user_file, struct poll_table_struct *pt)
{
if(firegl_interrupt_poll(user_file, (__ke_poll_table*)pt))
{
@@ -1491,7 +1491,8 @@
int ATI_API_CALL firegl_put_user_ptr(void *src, u32 *dst)
{
void *temp = src;
- return put_user(temp, dst);
+ void *dst_temp = dst;
+ return put_user(temp, dst_temp);
}
int ATI_API_CALL firegl_put_user_u16(u16 src, u16 *dst)
@@ -1883,7 +1884,7 @@
__ke_pci_dev_t* ATI_API_CALL __ke_pci_find_device (unsigned int vendor, unsigned int dev, __ke_pci_dev_t* from)
{
- return (__ke_pci_dev_t*)pci_find_device( vendor, dev, (struct pci_dev *)(void *)from );
+ return (__ke_pci_dev_t*) pci_get_device(vendor, dev, (struct pci_dev *)(void *) from);
}
void* ATI_API_CALL __ke_malloc(__ke_size_t size)
@@ -2813,9 +2814,9 @@
#else
static void ATI_API_CALL (*irq_handler_func)(int, void*, void*); /* function pointer variable */
-static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1, struct pt_regs *regs)
+static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1)
{
- irq_handler_func(irq, arg1, regs);
+ irq_handler_func(irq, arg1, NULL);
return IRQ_HANDLED;
}
@@ -2826,7 +2827,7 @@
irq_handler_func = handler;
return request_irq(irq,
ke_irq_handler_wrap,
- SA_SHIRQ, dev_name, dev_id);
+ IRQF_SHARED, dev_name, dev_id);
}
void ATI_API_CALL __ke_free_irq(unsigned int irq, void *dev_id)
@@ -2848,9 +2849,7 @@
void ATI_API_CALL __ke_unregister_ioctl32_conversion(unsigned int cmd)
{
-#ifdef FIREGL_IOCTL_COMPAT
- return 0;
-#else
+#ifndef FIREGL_IOCTL_COMPAT
unregister_ioctl32_conversion(cmd);
#endif
}
@@ -4353,7 +4352,7 @@
void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call)
{
#ifdef CONFIG_SMP
- smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 );
+ smp_call_function( (void (*)(void *info)) func_to_call, NULL, 0, 1 );
#endif
}
@@ -5303,7 +5302,7 @@
/** \brief Type definition of the structure describing Slab Cache object */
typedef struct tag_kasSlabCache_t
{
- kmem_cache_t* cache; /* OS slab cache object */
+ struct kmem_cache* cache; /* OS slab cache object */
spinlock_t lock; /* OS spinlock object protecting the cache */
unsigned int routine_type; /* Type of routine the cache might be accessed from */
char name[14]; /* Cache object name (kernel 2.4 restricts its length to 19 chars) */
@@ -5344,7 +5343,7 @@
slabcache_obj->routine_type = access_type;
spin_lock_init(&(slabcache_obj->lock));
- sprintf(slabcache_obj->name, "kas(%08X)", (unsigned int)slabcache_obj);
+ sprintf(slabcache_obj->name, "kas(%08X)", (unsigned int)(long unsigned int)slabcache_obj);
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
I got it from the same link (http://svn.sabayonlinux.org/listing.php?repname=overlay&path=%2Fx11-drivers%2Fati-drivers%2Ffiles%2F#_x11-drivers_ati-drivers_files_) as stated above.
I hope this helps..
Greetz NederWiet
Moronix
10-11-2007, 05:46 PM
I guess 8.40.1 does not work. I can't use 8.41.7.
nederwiet
10-12-2007, 01:17 AM
The patch failed at some chunks btw. i just ignored that.. I wil compile, i am currently using it.
Regards, NederWiet
Moronix
10-12-2007, 08:31 PM
The problem is not compiling, it does not run direct render, not on this hardware.
damentz
10-12-2007, 11:28 PM
Actually I just found out that they may be rethinking their decision to support 2.6.23 with 8.43 due to 64-bit issues...
Cool, let me confirm my order for a new graphics card in the meantime that actually has a driver released when its needed (nvidia).
I have the ATI 8.41.7 driver running with the 2.6.23 kernel.
I used the folowing patches:
--- firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -2409,7 +2409,11 @@
#ifdef pte_offset_map
pte_p = pte_offset_map(pmd_p, virtual_addr);
if (pte_present(*pte_p))
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
+#else
+ return 0;
+#endif
else
__KE_DEBUG("page not exists!\n");
pte_unmap(pte_p);
@@ -3399,9 +3403,11 @@
sprintf(buf, "0x%Lx %c%c%c%c%c%c\n",
*phys_address,
pte_present (pte) ? 'p' : '-',
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
pte_read (pte) ? 'r' : '-',
- pte_write (pte) ? 'w' : '-',
pte_exec (pte) ? 'x' : '-',
+#endif
+ pte_write (pte) ? 'w' : '-',
pte_dirty (pte) ? 'd' : '-',
pte_young (pte) ? 'a' : '-');
}
@@ -5348,7 +5354,11 @@
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
if ((slabcache_obj->cache =
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
+#else
+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
+#endif
{
ret = 1;
}
--- firegl_public.c 2007-07-29 13:36:37.000000000 +0200
+++ firegl_public.c 2007-07-29 14:24:11.000000000 +0200
@@ -452,7 +452,7 @@
}
static unsigned int
-firegl_interrupt_poll_wrap(struct file *user_file, poll_table *pt)
+firegl_interrupt_poll_wrap(struct file *user_file, struct poll_table_struct *pt)
{
if(firegl_interrupt_poll(user_file, (__ke_poll_table*)pt))
{
@@ -1491,7 +1491,8 @@
int ATI_API_CALL firegl_put_user_ptr(void *src, u32 *dst)
{
void *temp = src;
- return put_user(temp, dst);
+ void *dst_temp = dst;
+ return put_user(temp, dst_temp);
}
int ATI_API_CALL firegl_put_user_u16(u16 src, u16 *dst)
@@ -1883,7 +1884,7 @@
__ke_pci_dev_t* ATI_API_CALL __ke_pci_find_device (unsigned int vendor, unsigned int dev, __ke_pci_dev_t* from)
{
- return (__ke_pci_dev_t*)pci_find_device( vendor, dev, (struct pci_dev *)(void *)from );
+ return (__ke_pci_dev_t*) pci_get_device(vendor, dev, (struct pci_dev *)(void *) from);
}
void* ATI_API_CALL __ke_malloc(__ke_size_t size)
@@ -2813,9 +2814,9 @@
#else
static void ATI_API_CALL (*irq_handler_func)(int, void*, void*); /* function pointer variable */
-static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1, struct pt_regs *regs)
+static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1)
{
- irq_handler_func(irq, arg1, regs);
+ irq_handler_func(irq, arg1, NULL);
return IRQ_HANDLED;
}
@@ -2826,7 +2827,7 @@
irq_handler_func = handler;
return request_irq(irq,
ke_irq_handler_wrap,
- SA_SHIRQ, dev_name, dev_id);
+ IRQF_SHARED, dev_name, dev_id);
}
void ATI_API_CALL __ke_free_irq(unsigned int irq, void *dev_id)
@@ -2848,9 +2849,7 @@
void ATI_API_CALL __ke_unregister_ioctl32_conversion(unsigned int cmd)
{
-#ifdef FIREGL_IOCTL_COMPAT
- return 0;
-#else
+#ifndef FIREGL_IOCTL_COMPAT
unregister_ioctl32_conversion(cmd);
#endif
}
@@ -4353,7 +4352,7 @@
void ATI_API_CALL KCL_CallFuncOnOtherCpus(firegl_void_routine_t func_to_call)
{
#ifdef CONFIG_SMP
- smp_call_function( firegl_smp_func_parameter_wrap, (void*)func_to_call, 0, 1 );
+ smp_call_function( (void (*)(void *info)) func_to_call, NULL, 0, 1 );
#endif
}
@@ -5303,7 +5302,7 @@
/** \brief Type definition of the structure describing Slab Cache object */
typedef struct tag_kasSlabCache_t
{
- kmem_cache_t* cache; /* OS slab cache object */
+ struct kmem_cache* cache; /* OS slab cache object */
spinlock_t lock; /* OS spinlock object protecting the cache */
unsigned int routine_type; /* Type of routine the cache might be accessed from */
char name[14]; /* Cache object name (kernel 2.4 restricts its length to 19 chars) */
@@ -5344,7 +5343,7 @@
slabcache_obj->routine_type = access_type;
spin_lock_init(&(slabcache_obj->lock));
- sprintf(slabcache_obj->name, "kas(%08X)", (unsigned int)slabcache_obj);
+ sprintf(slabcache_obj->name, "kas(%08X)", (unsigned int)(long unsigned int)slabcache_obj);
DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
I got it from the same link (http://svn.sabayonlinux.org/listing.php?repname=overlay&path=%2Fx11-drivers%2Fati-drivers%2Ffiles%2F#_x11-drivers_ati-drivers_files_) as stated above.
I hope this helps..
Greetz NederWiet
This patches worked for me (Ubuntu Fesity with kernel 2.6.23)
I did this:
$ chmod +x ati-driver-installer-8.41.7-x86.run
with root:
# sh ./ati-driver-installer-8.41.7.x86.run
(choose install and NOT build packages)
cd /lib/module/fglrx/build_mod
applied the two pathces mentioned above with:
patch -i "patch_file"
then
./make.sh
cd ..
./make_install.sh
and the module was ready...
modprobe fglrx
done.
I had several problems due to the presence of "direct rendering" in my kernel, i recompiled it as a module and unloaded it: all worked. Same for the radeon support in the kernel.
I hope this wuold be useful for someone.
Thanks to NederWiet for the patches.
lone_wolf
10-17-2007, 10:23 PM
I am cross posting this from another thread. For documentation purpose for my laptop. Anyway I was able to get mine running by only applying one of the patches, As I document below.
I am running OpenSuse 10.2 on a Compaq 6910p. I had to install the 2.6.23.1 kernel in order to get my wireless adapter working.
I was able to get the ATI fglx 8.40.4 latest drivers working. I initially did install both patches that you have listed here or on the link you showed. Which gave me the same results as you.
What I did was only install the "ati-drivers-8.40.4-warnings.patch"
And performed the custom build of the drive from the /lbi/modules/fglrx dir. It did give some warnings but everything worked fine. My fglrxinfo command prints the following now:
display: :0.0 screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Mobility Radeon X2300
OpenGL version string: 2.0.6747 (8.40.4)
I did try the other patch ati-drivers-2.6.23.patch but it did not resolve anything. And combining both the patches was fruitless, as I stated above.
I just verified that 2.6.23 i686 works with both patches applied. Just don't use copy/paste, download em directly.
http://svn.sabayonlinux.org/overlay/x11-drivers/ati-drivers/files/ati-drivers-8.40.4-warnings.patch
http://svn.sabayonlinux.org/overlay/x11-drivers/ati-drivers/files/ati-drivers-2.6.23.patch
They apply correctly with 8.40.4 and newer. That means you can use 8.41.7 too. Also updated my script to include both of em.
givemesugarr
10-19-2007, 01:05 PM
for me 8.40 worked with 2.6.23. the only problem was installing madwifi on 2.6.23 and amd64.
so until i won't be able to install the madwifi with the new 2.6.23 i don't think that i'll switch to it.
i hope that the issues that showed up with amd64 in the last 8.41 have been corrected, since i don't really want to do strange things to be able to install it, or i'd hate to wait for a lot of months for a new release...
lone_wolf
10-19-2007, 01:10 PM
I think that is what I did then. I was using cut and paste instead of directly downloading them. I will try it again by downloading them directly.
Thanks... Though it was odd that people were posting that they both worked, while others were saying they were having issues.
givemesugarr
10-19-2007, 04:58 PM
Though it was odd that people were posting that they both worked, while others were saying they were having issues.i
think that there are some differences between systems,distros and boards.
for example it may happen that a x200m made by fujitsu and one made by toshiba on two different archs, lets say one amd turion 64x2 with amd64 and one with a centrino 1 x86 with the same distro installed may behave differently. for example my amdcc for windows could set 256mbs of videoram, while linux is limited to 128, on my gentoo x86_64 the 8.41 fails to compile due to old stdlibc++3 failures but work on a opensuse 10.3 i586.
so as you can see it's very natural for something like this to happen. i would personally say in the patch's first line:
"this patch may apply and work or simply it may not apply or not work"
i've seen many things like this to happen.
lone_wolf
10-23-2007, 06:42 PM
did not see that line in the patch....
I am upgrading to opensuse 10.3, I have other issues beyond the ATI drivers. The reason I went for the 2.6.23.1 kernel was the wireless support. But I think that 10.3 has the drivers included in it and is using the 2.6.22 kernel. Which should give me a stable system.
vBulletin® v3.8.5, Copyright ©2000-2010, Jelsoft Enterprises Ltd.