Pagina 1 di 2
Fglrx 8.4 e Kernel 2.6.25
Inviato: gio 17 apr 2008, 20:14
da Yellowhat
Qualcuno ha provato ad installare i driver fglrx con il kernel 2.6.25?
A me da problemi:
Codice: Seleziona tutto
bash-3.1# sh ./ati* --buildpkg Slackware/All
Created directory fglrx-install.2V42J6
Verifying archive integrity... All good.
Uncompressing ATI Proprietary Linux Driver-8.476.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
==================================================
ATI Technologies Linux Driver Installer/Packager
==================================================
Generating package: Slackware/All
ATI SlackBuild Ver. 1.2.0
--------------------------------------------
by: Emanuele Tomasi <tomasiATcli.di.unipi.it>
Ezio Ghibaudo<ekxiusATgmail.com>
Federico Rota<federico.rota01ATgmail.com>
ATI module generator V 2.0
==========================
initializing...
cleaning...
patching 'highmem.h'...
assuming new VMA API since we do have kernel 2.6.x...
Assuming default VMAP API
Assuming default munmap API
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.25/build SUBDIRS=/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.25'
CC [M] /home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_SetPageNoCache':
/home/vasco/Desktop/fglrx-install.2V42J6/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)
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_PosixSecurityCapGetEffectiveVector':
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1888: error: implicit declaration of function 'cap_t'
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function 'KCL_PosixSecurityCapSetEffectiveVector':
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1896: error: lvalue required as left operand of assignment
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function '__che_check_pci':
/home/vasco/Desktop/fglrx-install.2V42J6/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:508)
/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function '__che_pci_find_slot':
/home/vasco/Desktop/fglrx-install.2V42J6/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:508)
make[2]: *** [/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o] Error 1
make[1]: *** [_module_/home/vasco/Desktop/fglrx-install.2V42J6/common/lib/modules/fglrx/build_mod/2.6.x] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25'
make: *** [kmod_build] Error 2
build failed with return value 2
Error -> I don't have make module
Removing temporary directory: fglrx-install.2V42J6
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: gio 17 apr 2008, 20:37
da stan
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: gio 17 apr 2008, 20:44
da Yellowhat
CONFIG_PCI_LEGACY è attivata nel config-2.6.25, ed il kernel è stato compilato in /usr/src/linux.
Con il 2.6.24.4 compilato da me con le stesse configurazioni del 2.6.25, funziona perfettamente.
Qualche altra idea?
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 11:42
da murdock
Googlando un pò ho trovato questa patch:
Codice: Seleziona tutto
--- /lib/modules/fglrx/build_mod/firegl_public.c.orig 2008-04-06 01:20:21.000000000 -0300
+++ /lib/modules/fglrx/build_mod/firegl_public.c 2008-04-06 01:17:58.000000000 -0300
@@ -1885,7 +1885,7 @@
*/
KCL_TYPE_Cap ATI_API_CALL KCL_PosixSecurityCapGetEffectiveVector()
{
- return cap_t(current->cap_effective);
+ return (current->cap_effective).cap[0];
}
/** \brief Set vector of effective security caps for the current process
@@ -1893,7 +1893,7 @@
*/
void ATI_API_CALL KCL_PosixSecurityCapSetEffectiveVector(KCL_TYPE_Cap cap)
{
- cap_t(current->cap_effective) = cap;
+ (current->cap_effective).cap[0] = cap;
}
/** \brief Get number of available RAM pages
--- /lib/modules/fglrx/build_mod/firegl_public.c.orig 2008-04-06 02:10:13.000000000 -0300
+++ /lib/modules/fglrx/build_mod/firegl_public.c 2008-04-06 02:23:05.000000000 -0300
@@ -120,6 +120,7 @@
#include <asm/cpufeature.h>
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
+#include <asm/cacheflush.h>
#endif
#include <asm/delay.h>
#include <linux/agp_backend.h>
@@ -1158,7 +1159,7 @@
int ATI_API_CALL KCL_SetPageNoCache(void* virt, int pages)
{
- return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
+ return set_pages_uc(virt_to_page(virt), pages);
}
/** /brief Call global kernel task/thread scheduler */
Ho lanciato poi:
e:
EDIT: 
Dimenticavo, la patch l'ho applicata ai drivers ATI 8.4, come da titolo del post ma, specificare ulteriormente non fa mai male

.
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 15:16
da Yellowhat
Scusa non ho capito bene dove devo mettere la patch. [-o< [-o< [-o<
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 16:16
da murdock
Yellowhat ha scritto:Scusa non ho capito bene dove devo mettere la patch. [-o< [-o< [-o<
Dunque, salvi il contenuto del codice che ho postato in un file con un nome qualsiasi in una posizione qualsiasi.
Lanci poi da root : "patch -p0 < nome_del_file".
Prima di eseguire questa operazione, lancia l'installer ATI, anche se non va a buon fine, così facendo dovresti avere la dir "/lib/modules/fglrx" dove appunto "patch" cercherà il file incriminato da modificare "firegl_public.c".
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 17:22
da Yellowhat
Questo è quello che ottengo:
Codice: Seleziona tutto
bash-3.1# patch -p0 < patchati
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- /lib/modules/fglrx/build_mod/firegl_public.c.orig 2008-04-06 01:20:21.000000000 -0300
|+++ /lib/modules/fglrx/build_mod/firegl_public.c 2008-04-06 01:17:58.000000000 -0300
--------------------------
File to patch: /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
patching file /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
patch: **** malformed patch at line 5: KCL_TYPE_Cap ATI_API_CALL KCL_PosixSecurityCapGetEffectiveVector()
Ho provato a patchare con questo script preso dà
http://sarah-a-happy.livejournal.com/90345.html:
Codice: Seleziona tutto
--- common/lib/modules/fglrx/build_mod/firegl_public.c.orig 2008-04-06 02:10
:13.000000000 -0300
+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2008-04-06 02:23:05.0000
00000 -0300
@@ -120,6 +120,7 @@
#include <asm/cpufeature.h>
#ifdef CONFIG_MTRR
#include <asm/mtrr.h>
+#include <asm/cacheflush.h>
#endif
#include <asm/delay.h>
#include <linux/agp_backend.h>
@@ -1158,7 +1159,7 @@
int ATI_API_CALL KCL_SetPageNoCache(void* virt, int pages)
{
- return change_page_attr(virt_to_page(virt), pages, PAGE_KERNEL_NOCACHE);
+ return set_pages_uc(virt_to_page(virt), pages);
}
/** /brief Call global kernel task/thread scheduler */
Ottengo:
Codice: Seleziona tutto
bash-3.1# patch -p0 < patchati2
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- common/lib/modules/fglrx/build_mod/firegl_public.c.orig 2008-04-06 02:10
|:13.000000000 -0300
|+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2008-04-06 02:23:05.0000
|00000 -0300
--------------------------
File to patch: /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
patching file /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
patch unexpectedly ends in middle of line
Hunk #2 succeeded at 1159 with fuzz 1.
bash-3.1# ./fglrx/common/lib/modules/fglrx/build_mod/make.sh
ATI module generator V 2.0
==========================
initializing...
./fglrx/common/lib/modules/fglrx/build_mod/make.sh: line 537: [: =: unary operator expected
./firegl_public.c: required file is missing in build directory
bash-3.1# ./fglrx/common/lib/modules/fglrx/make_install.sh
*** WARNING ***
Tailored kernel module for fglrx not present in your system.
You must go to /lib/modules/fglrx/build_mod subdir
and execute './make.sh' to build a fully customed kernel module.
Afterwards go to /lib/modules/fglrx and run './make_install.sh'
in order to install the module into your kernel's module repository.
(see readme.txt for more details.)
As of now you can still run your XServer in 2D, but hardware accelerated
OpenGL will not work and 2D graphics will lack performance.
failed.
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 17:33
da murdock
Hai la directory /lib/modules/fglrx ?
Stai lavorando sui drivers fglrx 8.4 ?
Codice: Seleziona tutto
File to patch: /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
patching file /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
Queste due linee non mi tornano, come se cercasse il file altrove...
Fammi sapere, in caso ti passo direttamente il file "firegl_public.c" patchato via PM.
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 17:38
da Yellowhat
Ho gli fglrx 8.4.
La directory /lib/modules/fglrx non esiste.
Scusa ma non devo estrarre i driver ati con:
e poi patchare il file in fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 17:59
da murdock
Yellowhat ha scritto:Ho gli fglrx 8.4.
La directory /lib/modules/fglrx non esiste.
Scusa ma non devo estrarre i driver ati con:
e poi patchare il file in fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
Si, se il file si trova in un altro percorso però, devi cambiare il percorso nel patch file.
Altra cosa, ho fatto delle prove e in effetti ho notato che passando per il forum il codice perde delle caratteristiche (indentazioni e spazi), quindi è un altro motivo per cui non funziona,
mandami la tua mail via "MP" che ti invio il patchfile corretto.
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 18:19
da Yellowhat
Allora ho sovrascritto il file, per essere più sicuro, che mi hai dato firegl_public.c in fglrx/common/lib/modules/fglrx/build_mod/
Poi dò:
Codice: Seleziona tutto
bash-3.1# ./make.sh
ATI module generator V 2.0
==========================
initializing...
./make.sh: line 537: [: =: unary operator expected
Error: could not resolve matching ip-library.
Sul desktop mi crea un make.sh.log
Codice: Seleziona tutto
ATI module generator V 2.0
==========================
initializing...
build_date =ven apr 18 18:13:16 CEST 2008
uname -a =Linux vascoslacky 2.6.25 #1 SMP PREEMPT Thu Apr 17 16:54:35 CEST 2008 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 5000+ AuthenticAMD GNU/Linux
uname -s =Linux
uname -m =i686
uname -r =2.6.25
uname -v =#1 SMP PREEMPT Thu Apr 17 16:54:35 CEST 2008
uid=0(root) gid=0(root) gruppi=0(root),42(gdm),83(plugdev)
.
drwxr-xr-x 386 root root 16384 2008-04-17 17:16 /usr/include
.
totale 125540
drwxrwxrwx 2 root root 8 2008-02-29 22:22 ati
-rw-r--r-- 1 root root 2908207 2008-04-17 17:08 kernel-headers-smp-2.6.25-x86-kpkg080.tgz
-rw-r--r-- 1 root root 76 2008-04-17 17:08 kernel-headers-smp-2.6.25-x86-kpkg080.tgz.md5
-rw-r--r-- 1 root root 0 2008-04-17 17:08 kernel-headers-smp-2.6.25-x86-kpkg080.txt
-rw-r--r-- 1 root root 15094746 2008-04-17 17:08 kernel-image-smp-2.6.25-x86-kpkg080.tgz
-rw-r--r-- 1 root root 74 2008-04-17 17:08 kernel-image-smp-2.6.25-x86-kpkg080.tgz.md5
-rw-r--r-- 1 root root 0 2008-04-17 17:08 kernel-image-smp-2.6.25-x86-kpkg080.txt
-rw-r--r-- 1 root root 61902016 2008-04-17 17:11 kernel-source-smp-2.6.25-noarch-kpkg080.tgz
-rw-r--r-- 1 root root 78 2008-04-17 17:12 kernel-source-smp-2.6.25-noarch-kpkg080.tgz.md5
-rw-r--r-- 1 root root 0 2008-04-17 17:12 kernel-source-smp-2.6.25-noarch-kpkg080.txt
lrwxrwxrwx 1 root root 12 2008-04-17 17:17 linux -> linux-2.6.25
drwxr-xr-x 21 root root 4096 2008-03-25 20:10 linux-2.6.24.4
drwxr-xr-x 22 root root 4096 2008-04-17 17:11 linux-2.6.25
-rwxr-xr-x 1 root root 48601689 2008-04-17 05:13 linux-2.6.25.tar.bz2
drwxr-xr-x 3 root root 32 2008-04-11 19:01 openoffice-autobuilder-multilang
drwxr-xr-x 7 root root 40 2003-10-29 07:08 rpm
.
file /lib/modules/2.6.25/build/include/linux/agp_backend.h says: AGP=1
OsVersion says: SMP=1
file /proc/kallsyms says: SMP=1
file /lib/modules/2.6.25/build/include/linux/autoconf.h says: SMP=1
file /lib/modules/2.6.25/build/include/linux/autoconf.h says: MODVERSIONS=
./firegl_public.h: required file is missing in build directory
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 18:52
da murdock
Argh, me lo fa anche a me, sui drivers estratti direttamente dall'installer, tuttavia come dicevo, io ho agito sulla directory /lib/modules/fglrx, probabilmente ho fatto anche altre variazioni.
Beh, aspettati tre mega di roba nella tua casella di posta, vedrai che funziona!
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: ven 18 apr 2008, 20:19
da Yellowhat
Scusami se approfitto ancora della tua gentilezza.
1) Ho copiato i file che mi hai mandato nella directory fglrx.
Codice: Seleziona tutto
bash-3.1# ./make.sh
ATI module generator V 2.0
==========================
initializing...
./make.sh: line 537: [: =: unary operator expected
cleaning...
patching 'highmem.h'...
assuming new VMA API since we do have kernel 2.6.x...
Assuming default VMAP API
Assuming default munmap API
doing Makefile based build for kernel 2.6.x and higher
make -C /lib/modules/2.6.25/build SUBDIRS=/home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x modules
make[1]: Entering directory `/usr/src/linux-2.6.25'
CC [M] /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.o
/home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function '__che_check_pci':
/home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:1952: warning: 'pci_find_slot' is deprecated (declared at include/linux/pci.h:508)
/home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c: In function '__che_pci_find_slot':
/home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/firegl_public.c:2841: warning: 'pci_find_slot' is deprecated (declared at include/linux/pci.h:508)
LD [M] /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: modpost: module fglrx.ko uses symbol 'init_mm' marked UNUSED
CC /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.mod.o
LD [M] /home/vasco/Desktop/fglrx/common/lib/modules/fglrx/build_mod/2.6.x/fglrx.ko
make[1]: Leaving directory `/usr/src/linux-2.6.25'
build succeeded with return value 0
duplicating results into driver repository...
done.
==============================
You must change your working directory to /home/vasco/Desktop/fglrx/common/lib/modules/fglrx
and then call ./make_install.sh in order to install the built module.
==============================
bash-3.1# cd ..
bash-3.1# ls
build_mod fglrx.2.6.25.ko fglrx.ko make.2.6.25.log make_install.sh
bash-3.1# ./make_install.sh
bash: ./make_install.sj: No such file or directory
bash-3.1# ./make_install.sh
- recreating module dependency list
- trying a sample load of the kernel modules
done.
Sembra funzionare. Ma avrei due domande:
1) Posso creare il pacchetto .tgz del modulo?
2) Posso ricompattare la directory modificata fglrx come l'installer originale?
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: lun 21 apr 2008, 9:51
da murdock
Mmmm, no, non penso che puoi ricompattare la dir nell'installer originale, o meglio, non l'ho mai fatto, magari a studiarci un pò.
Il pacchetto del modulo lo puoi fare, ma non c'è un utility che lo fa automaticamente quindi, il pacchetto lo dovresti fare tu a mano.
Conta che questa è una soluzione transitoria, prima o poi avremo l'installer funzionante anche sul 2.6.25 da parte di ATI.
Saluti,
MuRdOcK
Re: Fglrx 8.4 e Kernel 2.6.25
Inviato: lun 21 apr 2008, 10:13
da Yellowhat
Fino agli ati 8.5, che spero supportino il kernel 2.6.25, installerò il pacchetto X dall'installer normale, e il modulo facendo quella procedura di make.sh, make-install.sh.
Grazie ancora per la infinità gentilezza e disponibilità.