Announcement

Collapse
No announcement yet.

ATI drivers on linux 2.6.25

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ATI drivers on linux 2.6.25

    I made a first check to see if the current ati drivers (8.452 aka 8.01) still compile against the upcoming linux kernel and this is the result:
    Code:
      CC [M]  /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KCL_SetPageNoCache’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1161: warning: ‘change_page_attr’ is deprecated (declared at include/asm/cacheflush.h:28)
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘firegl_put_user_ptr’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1594: warning: cast from pointer to integer of different size
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1594: warning: cast from pointer to integer of different size
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1594: warning: cast from pointer to integer of different size
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1594: warning: cast from pointer to integer of different size
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_check_pci’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1951: warning: ‘pci_find_slot’ is deprecated (declared at include/linux/pci.h:493)
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_pci_find_slot’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2840: warning: ‘pci_find_slot’ is deprecated (declared at include/linux/pci.h:493)
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘__ke_unregister_ioctl32_conversion’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2972: warning: ‘return’ with a value, in function returning void
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function ‘KAS_SlabCache_Initialize’:
    /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:5219: warning: cast from pointer to integer of different size
      LD [M]  /var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.o
      Building modules, stage 2.
      MODPOST 1 modules
    WARNING: "change_page_attr" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    WARNING: "init_mm" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    WARNING: "flush_tlb_page" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    As you can see it compiles, but the linker spits out warnings and most likely the module will fail to load.
    Code:
    WARNING: "change_page_attr" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    WARNING: "init_mm" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    WARNING: "flush_tlb_page" [/var/tmp/portage/x11-drivers/ati-drivers-8.452.1/work/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko] undefined!
    Of course it is yet too early to tell if it will stay like that, maybe there will be some patches integrated until -rc1 resulting in a complete failure, will see.
    And of course it is in a too early state to see if the drivers will load and run with this kernel, but it isn't looking too good without patches.

  • #2
    With 8.4 (fglrx-8.476) and the just released Linux 2.6.25 there're some problems, atleast on my 64bit Kubuntu(hardy).

    Firstly KCL_PosixSecurityCapGetEffectiveVector etc problem which has a patch available (http://forums.gentoo.org/viewtopic-p...4.html#5039144)

    Secondly, there's the WARNING: "flush_tlb_page" [/var/lib/dkms/fglrx/8.476/build/fglrx.ko] undefined!
    Which actually prevents fglrx.ko from loading.

    From here http://git.kernel.org/?p=linux/kerne...bf2c051fa119f6 one can see that the export for flush_tlb has been removed from the smp_64.c. It still exists in smp_32.c.

    To me, it seems weird that smp_32.c exports something that smp_64.c doesn't..

    Here's a full log after applying patch for the first issue:
    Code:
    oot@gandalf:/var/lib/dkms/fglrx/8.476/build# make
    make -C /lib/modules/2.6.25-custom/build SUBDIRS=/var/lib/dkms/fglrx/8.476/build modules
    make[1]: Entering directory `/usr/src/linux-2.6.25'
      CC [M]  /var/lib/dkms/fglrx/8.476/build/firegl_public.o
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘firegl_put_user_ptr’:
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1595: warning: cast from pointer to integer of different size
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1595: warning: cast from pointer to integer of different size
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1595: warning: cast from pointer to integer of different size
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1595: warning: cast from pointer to integer of different size
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_unregister_ioctl32_conversion’:
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2973: warning: ‘return’ with a value, in function returning void
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KAS_SlabCache_Initialize’:
    /var/lib/dkms/fglrx/8.476/build/firegl_public.c:5220: warning: cast from pointer to integer of different size
      LD [M]  /var/lib/dkms/fglrx/8.476/build/fglrx.o
      Building modules, stage 2.
      MODPOST 1 modules
    WARNING: modpost: module fglrx.ko uses symbol 'init_mm' marked UNUSED
    WARNING: "flush_tlb_page" [/var/lib/dkms/fglrx/8.476/build/fglrx.ko] undefined!
      CC      /var/lib/dkms/fglrx/8.476/build/fglrx.mod.o
      LD [M]  /var/lib/dkms/fglrx/8.476/build/fglrx.ko
    make[1]: Leaving directory `/usr/src/linux-2.6.25'

    Comment


    • #3
      as i'm using a new board with sb700 and an integrated attansic ethernet adapter, i'm forced to compile with the new 2.6.25-kernel and i'm suffering from the same problem

      Code:
      WARNING: modpost: module fglrx.ko uses symbol 'init_mm' marked UNUSED
      for this problem, there is a not really clean but working 'workaround' in http://forums.gentoo.org/viewtopic-t...3306d9aed91600

      I'm using kernel-2.6.25-rc8 and I couldn't load ati-drivers-8.471.3 even with your patch. The problem was unknown symbol init_mm, which is exported as an unused symbol since 2.6.25. I've tried config option CONFIG_UNUSED_SYMBOLS, but this did not help either, so I changed macro EXPORT_UNUSED_SYMBOL to EXPORT_SYMBOL in file arch/x86/kernel/init_task.c.
      Anyway, it will be removed in 2.6.26 completely.
      about the flush_tlb_page-problem:
      I've found several guys who managed to get this driver compiling and working with 2.6.25_rc8 and above. maybe they all use an 32bit-kernel, where this symbol still seems to exist...
      Last edited by flo2; 04-20-2008, 03:03 PM.

      Comment


      • #4
        To get over the flush_tlb_page problem I simply modified the smp_64.c and reverted the patch which removed the EXPORT_SYMBOL(flush_tlb_page);

        Everything seems to be working just fine.


        -----
        }
        EXPORT_SYMBOL(flush_tlb_page);


        static void do_flush_tlb_all(void* info)
        -----

        Comment


        • #5
          thanks, works here

          Comment


          • #6
            For kernel versions past the released 2.6.25, the git series. They've removed the tlb stuff from smp_[32|64].c and added new files specially for tlb: tlb_32.c and tlb_64.c.

            Here's trivial patch which re-enables tlb_64.c to export flush_tlb_page and match tlb_32.c

            -----
            diff --git a/arch/x86/kernel/tlb_64.c b/arch/x86/kernel/tlb_64.c
            index df224a8..9bbe4aa 100644
            --- a/arch/x86/kernel/tlb_64.c
            +++ b/arch/x86/kernel/tlb_64.c
            @@ -258,6 +258,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long va)

            preempt_enable();
            }
            +EXPORT_SYMBOL(flush_tlb_page);

            static void do_flush_tlb_all(void *info)
            {


            ----
            jjjj@gandalf:~/linux-2.6/arch/x86/kernel$ grep "EXPORT_SYMBOL" tlb*.c
            tlb_32.c:EXPORT_SYMBOL_GPL(leave_mm);
            tlb_32.c:EXPORT_SYMBOL(flush_tlb_page);
            tlb_64.c:EXPORT_SYMBOL_GPL(leave_mm);
            tlb_64.c:EXPORT_SYMBOL(flush_tlb_page);
            jjjj@gandalf:~/linux-2.6/arch/x86/kernel$

            Comment


            • #7
              i have ubuntu 8.04 32bit with ati 9700 mobility and stable kernel 2.6.25. when i try to compile, i have this error in make.sh.log:

              ...
              doing Makefile based build for kernel 2.6.x and higher
              make -C /lib/modules/2.6.25/build SUBDIRS=/var/lib/dkms/fglrx/8.476/build modules
              make[1]: Entering directory `/usr/src/linux-2.6.25'
              CC [M] /var/lib/dkms/fglrx/8.476/build/firegl_public.o
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_SetPageNoCache’:
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1161: warning: ‘change_page_attr’ is deprecated (declared at include/asm/cacheflush.h:28)
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1888: error: implicit declaration of function ‘cap_t’
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1896: error: lvalue required as left operand of assignment
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_check_pci’:
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1951: error: implicit declaration of function ‘pci_find_slot’
              /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1951: warning: assignment makes pointer from integer without a cast
              make[2]: *** [/var/lib/dkms/fglrx/8.476/build/firegl_public.o] Error 1
              make[1]: *** [_module_/var/lib/dkms/fglrx/8.476/build] Error 2
              make[1]: Leaving directory `/usr/src/linux-2.6.25'

              Comment


              • #8
                Originally posted by biasquez View Post
                i have ubuntu 8.04 32bit with ati 9700 mobility and stable kernel 2.6.25. when i try to compile, i have this error in make.sh.log:

                ...
                doing Makefile based build for kernel 2.6.x and higher
                make -C /lib/modules/2.6.25/build SUBDIRS=/var/lib/dkms/fglrx/8.476/build modules
                make[1]: Entering directory `/usr/src/linux-2.6.25'
                CC [M] /var/lib/dkms/fglrx/8.476/build/firegl_public.o
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_SetPageNoCache’:
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1161: warning: ‘change_page_attr’ is deprecated (declared at include/asm/cacheflush.h:28)
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1888: error: implicit declaration of function ‘cap_t’
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1896: error: lvalue required as left operand of assignment
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_check_pci’:
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1951: error: implicit declaration of function ‘pci_find_slot’
                /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1951: warning: assignment makes pointer from integer without a cast
                make[2]: *** [/var/lib/dkms/fglrx/8.476/build/firegl_public.o] Error 1
                make[1]: *** [_module_/var/lib/dkms/fglrx/8.476/build] Error 2
                make[1]: Leaving directory `/usr/src/linux-2.6.25'
                same problem here with an ati radeon 9800 pro, i think we have to wait the release of catalyst 8.5

                Comment


                • #9
                  Here's what you get with 2.6.26-rc1


                  CC [M] /var/lib/dkms/fglrx/8.476/build/firegl_public.o
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_SetPageNoCache’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1161: error: implicit declaration of function ‘change_page_attr’
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘firegl_put_user_ptr’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1594: warning: cast from pointer to integer of different size
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1594: warning: cast from pointer to integer of different size
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1594: warning: cast from pointer to integer of different size
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1594: warning: cast from pointer to integer of different size
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapGetEffectiveVector’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1888: error: implicit declaration of function ‘cap_t’
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_PosixSecurityCapSetEffectiveVector’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:1896: error: lvalue required as left operand of assignment
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_get_vm_phys_addr’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2392: error: ‘NOPAGE_SIGBUS’ undeclared (first use in this function)
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2392: error: (Each undeclared identifier is reported only once
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2392: error: for each function it appears in.)
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_get_vm_page_table’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2414: error: ‘NOPAGE_SIGBUS’ undeclared (first use in this function)
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KCL_TestAndClearPageDirtyFlag’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2542: error: ‘NOPAGE_SIGBUS’ undeclared (first use in this function)
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘__ke_unregister_ioctl32_conversion’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:2972: warning: ‘return’ with a value, in function returning void
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: At top level:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3548: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3548: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3566: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3566: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3573: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3573: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3580: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3580: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3587: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3587: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3594: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3594: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3601: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3601: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3610: error: unknown field ‘nopage’ specified in initializer
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:3610: warning: initialization from incompatible pointer type
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c: In function ‘KAS_SlabCache_Initialize’:
                  /var/lib/dkms/fglrx/8.476/build/firegl_public.c:5219: warning: cast from pointer to integer of different size
                  make[2]: *** [/var/lib/dkms/fglrx/8.476/build/firegl_public.o] Error 1
                  make[1]: *** [_module_/var/lib/dkms/fglrx/8.476/build] Error 2
                  make[1]: Leaving directory `/home/jarkko/linux-2.6'
                  make: *** [kmod_build] Error 2

                  Comment


                  • #10
                    Originally posted by jjjj View Post
                    Here's what you get with 2.6.26-rc1
                    <snip>
                    Try this patch - I just threw it together now for 2.6.25-mm so it might help. It's for the catalyst 8.6 release.

                    http://dev.archlinux.org/~travis/firegl_public.patch

                    Comment

                    Working...
                    X