RISOLTO: drive NVIDIA
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- ermes
- Linux 2.x

- Messaggi: 372
- Iscritto il: dom 20 feb 2005, 0:00
- Slackware: current 64
- Desktop: kde
- Località: Rho (Mi)
RISOLTO: drive NVIDIA
sono alla fase della messa a punto della slk11.
ho scaricato i nuovi drive NVIDIA e non riesco a installarli.
Ecco il messaggio di errore.
________________________________________________________________
ERROR: Unable to determine the version of the kernel sources located in
'/lib/modules/2.6.18/source'. Please make sure you have installed the
kernel source files for your kernel and that they are properly
configured; on Red Hat Linux systems, for example, be sure you have the
'kernel-source' RPM installed. If you know the correct kernel source
files are installed, you may specify the kernel source path with the
'--kernel-source-path' command line option.
ERROR: Installation has failed. Please see the file
'/var/log/nvidia-installer.log' for details. You may find suggestions
on fixing installation problems in the README available on the Linux
driver download page at http://www.nvidia.com.
________________________________________________________________
ho cercato nel forum e ho trovato un post che rappresentava +/- lo stesso problema, indicava anche la causa (mancanza di un file: versione.h mi pare) ma non dava soluzioni.
qualche anima pia mi sa dire cosa fare ?
ho scaricato i nuovi drive NVIDIA e non riesco a installarli.
Ecco il messaggio di errore.
________________________________________________________________
ERROR: Unable to determine the version of the kernel sources located in
'/lib/modules/2.6.18/source'. Please make sure you have installed the
kernel source files for your kernel and that they are properly
configured; on Red Hat Linux systems, for example, be sure you have the
'kernel-source' RPM installed. If you know the correct kernel source
files are installed, you may specify the kernel source path with the
'--kernel-source-path' command line option.
ERROR: Installation has failed. Please see the file
'/var/log/nvidia-installer.log' for details. You may find suggestions
on fixing installation problems in the README available on the Linux
driver download page at http://www.nvidia.com.
________________________________________________________________
ho cercato nel forum e ho trovato un post che rappresentava +/- lo stesso problema, indicava anche la causa (mancanza di un file: versione.h mi pare) ma non dava soluzioni.
qualche anima pia mi sa dire cosa fare ?
Ultima modifica di ermes il sab 7 ott 2006, 9:47, modificato 1 volta in totale.
Dal kernel 2.6.18 sono stati leggermente modificati gli header files, in particolare
/usr/src/linux-2.6.18/include/linux/version.h non riporta più la versione del kernel essendo tale variabile spostata in /usr/src/linux-2.6.18/include/linux/utsrelease.h.
Da cui l'impossibilità dell'installer dei driver nvidia di utilizzare gli header per costruire l'interfaccia per il kernel
Dalla versione 1.0-8774 del driver nvidia questo problema dovrebbe essere stato risolto anche se per la verità sul mio sistema pur compilando correttamente in pratica il caricamento del driver mi dava qualche problema. Ho deciso di provare il driver beta 1.0-9625 e tutto funziona perfettamente.
In alternativa questa patch (dal forum nvidia) funziona sul driver 1.0-8762
diff -ru usr/src/nv/conftest.sh usr/src/nv.U072006/conftest.sh
--- usr/src/nv/conftest.sh 2006-05-15 22:42:17.000000000 +0200
+++ usr/src/nv.U072006/conftest.sh 2006-07-20 19:04:30.486659250 +0200
@@ -43,7 +43,8 @@
# Determine the number of arguments expected by remap_page_range.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_remap_page_range(void) {
remap_page_range();
}" > conftest$$.c
@@ -56,7 +57,8 @@
exit 1
fi
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
int conftest_remap_page_range(void) {
pgprot_t pgprot = __pgprot(0);
return remap_page_range(NULL, 0L, 0L, 0L, pgprot);
@@ -71,7 +73,8 @@
exit 0
fi
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
int conftest_remap_page_range(void) {
pgprot_t pgprot = __pgprot(0);
return remap_page_range(0L, 0L, 0L, pgprot);
@@ -248,7 +251,8 @@
# tree or at headers shipped for a specific kernel.
# Determine the kernel version using a compile check.
#
- echo "#include <linux/version.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
#include <linux/utsname.h>
int main() {
if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) {
@@ -341,11 +345,23 @@
# tree or at headers shipped for a specific kernel.
# Determine the kernel version using a compile check.
#
- echo "#include <linux/version.h>
- int main() {
- printf(\"%s\", UTS_RELEASE);
- return 0;
- }" > conftest$$.c
+ FILE="linux/utsrelease.h"
+
+ if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
+ echo "#include <linux/autoconf.h>
+ #include <linux/utsrelease.h>
+ int main() {
+ printf(\"%s\", UTS_RELEASE);
+ return 0;
+ }" > conftest$$.c
+ else
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
+ int main() {
+ printf(\"%s\", UTS_RELEASE);
+ return 0;
+ }" > conftest$$.c
+ fi
$HOSTCC $CFLAGS -o conftest$$ conftest$$.c > /dev/null 2>&1
rm -f conftest$$.c
@@ -494,7 +510,8 @@
# Determine if change_page_attr() is present
#
- echo "#include <linux/version.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
#include <linux/utsname.h>
#include <linux/mm.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
@@ -520,7 +537,8 @@
# Determine if pci_get_class() is present.
#
- echo "#include <linux/pci.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pci.h>
void conftest_pci_get_class(void) {
pci_get_class();
}" > conftest$$.c
@@ -541,7 +559,8 @@
# Determine if remap_pfn_range() is present.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_remap_pfn_range(void) {
remap_pfn_range();
}" > conftest$$.c
@@ -562,7 +581,8 @@
# Is 'rlim' a member of current->signal?
#
- echo "#include <linux/sched.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/sched.h>
struct rlimit *conftest_signal_struct_rlim(void) {
return current->signal->rlim;
}" > conftest$$.c
@@ -584,7 +604,8 @@
# aware.
#
- echo "#include <linux/types.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/types.h>
#include <linux/agp_backend.h>
typedef struct agp_bridge_data agp_bridge_data;
agp_bridge_data *conftest_agp_backend_acquire(struct pci_dev *dev) {
@@ -608,7 +629,8 @@
# it takes.
#
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
void conftest_vmap(void) {
vmap();
}" > conftest$$.c
@@ -621,7 +643,8 @@
exit 1
fi
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
void *conftest_vmap(struct page **pg, int cnt) {
return vmap(pg, cnt);
}" > conftest$$.c
@@ -635,7 +658,8 @@
exit 0
fi
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
#include <linux/mm.h>
void *conftest_vmap(struct page **pg, int cnt) {
return vmap(pg, cnt, 0, PAGE_KERNEL);
@@ -662,7 +686,8 @@
# the inc_use() and dec_use() callback entries.
#
- echo "#include <linux/i2c.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/i2c.h>
int conftest_i2c_adapter_inc_use() {
return offsetof(struct i2c_adapter, inc_use);
}" > conftest$$.c
@@ -684,7 +709,8 @@
# kernel.
#
- echo "#include <linux/sched.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/sched.h>
int conftest_sysctl_max_map_count(void) {
return sysctl_max_map_count;
}" > conftest$$.c
@@ -705,7 +731,8 @@
# Does linux/pm.h declare the pm_message_t type?
#
- echo "#include <linux/pm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pm.h>
void conftest_pm_message_t(pm_message_t state) {
pm_message_t *p = &state;
}" > conftest$$.c
@@ -726,7 +753,8 @@
# Determine if pci_choose_state() is present.
#
- echo "#include <linux/pci.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pci.h>
void conftest_pci_choose_state(void) {
pci_choose_state();
}" > conftest$$.c
@@ -747,7 +775,8 @@
# Determine if vm_insert_page() is present.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_vm_insert_page(void) {
vm_insert_page();
}" > conftest$$.c
Ciao
/usr/src/linux-2.6.18/include/linux/version.h non riporta più la versione del kernel essendo tale variabile spostata in /usr/src/linux-2.6.18/include/linux/utsrelease.h.
Da cui l'impossibilità dell'installer dei driver nvidia di utilizzare gli header per costruire l'interfaccia per il kernel
Dalla versione 1.0-8774 del driver nvidia questo problema dovrebbe essere stato risolto anche se per la verità sul mio sistema pur compilando correttamente in pratica il caricamento del driver mi dava qualche problema. Ho deciso di provare il driver beta 1.0-9625 e tutto funziona perfettamente.
In alternativa questa patch (dal forum nvidia) funziona sul driver 1.0-8762
diff -ru usr/src/nv/conftest.sh usr/src/nv.U072006/conftest.sh
--- usr/src/nv/conftest.sh 2006-05-15 22:42:17.000000000 +0200
+++ usr/src/nv.U072006/conftest.sh 2006-07-20 19:04:30.486659250 +0200
@@ -43,7 +43,8 @@
# Determine the number of arguments expected by remap_page_range.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_remap_page_range(void) {
remap_page_range();
}" > conftest$$.c
@@ -56,7 +57,8 @@
exit 1
fi
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
int conftest_remap_page_range(void) {
pgprot_t pgprot = __pgprot(0);
return remap_page_range(NULL, 0L, 0L, 0L, pgprot);
@@ -71,7 +73,8 @@
exit 0
fi
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
int conftest_remap_page_range(void) {
pgprot_t pgprot = __pgprot(0);
return remap_page_range(0L, 0L, 0L, pgprot);
@@ -248,7 +251,8 @@
# tree or at headers shipped for a specific kernel.
# Determine the kernel version using a compile check.
#
- echo "#include <linux/version.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
#include <linux/utsname.h>
int main() {
if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) {
@@ -341,11 +345,23 @@
# tree or at headers shipped for a specific kernel.
# Determine the kernel version using a compile check.
#
- echo "#include <linux/version.h>
- int main() {
- printf(\"%s\", UTS_RELEASE);
- return 0;
- }" > conftest$$.c
+ FILE="linux/utsrelease.h"
+
+ if [ -f $HEADERS/$FILE -o -f $OUTPUT/include/$FILE ]; then
+ echo "#include <linux/autoconf.h>
+ #include <linux/utsrelease.h>
+ int main() {
+ printf(\"%s\", UTS_RELEASE);
+ return 0;
+ }" > conftest$$.c
+ else
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
+ int main() {
+ printf(\"%s\", UTS_RELEASE);
+ return 0;
+ }" > conftest$$.c
+ fi
$HOSTCC $CFLAGS -o conftest$$ conftest$$.c > /dev/null 2>&1
rm -f conftest$$.c
@@ -494,7 +510,8 @@
# Determine if change_page_attr() is present
#
- echo "#include <linux/version.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/version.h>
#include <linux/utsname.h>
#include <linux/mm.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
@@ -520,7 +537,8 @@
# Determine if pci_get_class() is present.
#
- echo "#include <linux/pci.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pci.h>
void conftest_pci_get_class(void) {
pci_get_class();
}" > conftest$$.c
@@ -541,7 +559,8 @@
# Determine if remap_pfn_range() is present.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_remap_pfn_range(void) {
remap_pfn_range();
}" > conftest$$.c
@@ -562,7 +581,8 @@
# Is 'rlim' a member of current->signal?
#
- echo "#include <linux/sched.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/sched.h>
struct rlimit *conftest_signal_struct_rlim(void) {
return current->signal->rlim;
}" > conftest$$.c
@@ -584,7 +604,8 @@
# aware.
#
- echo "#include <linux/types.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/types.h>
#include <linux/agp_backend.h>
typedef struct agp_bridge_data agp_bridge_data;
agp_bridge_data *conftest_agp_backend_acquire(struct pci_dev *dev) {
@@ -608,7 +629,8 @@
# it takes.
#
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
void conftest_vmap(void) {
vmap();
}" > conftest$$.c
@@ -621,7 +643,8 @@
exit 1
fi
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
void *conftest_vmap(struct page **pg, int cnt) {
return vmap(pg, cnt);
}" > conftest$$.c
@@ -635,7 +658,8 @@
exit 0
fi
- echo "#include <linux/vmalloc.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/vmalloc.h>
#include <linux/mm.h>
void *conftest_vmap(struct page **pg, int cnt) {
return vmap(pg, cnt, 0, PAGE_KERNEL);
@@ -662,7 +686,8 @@
# the inc_use() and dec_use() callback entries.
#
- echo "#include <linux/i2c.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/i2c.h>
int conftest_i2c_adapter_inc_use() {
return offsetof(struct i2c_adapter, inc_use);
}" > conftest$$.c
@@ -684,7 +709,8 @@
# kernel.
#
- echo "#include <linux/sched.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/sched.h>
int conftest_sysctl_max_map_count(void) {
return sysctl_max_map_count;
}" > conftest$$.c
@@ -705,7 +731,8 @@
# Does linux/pm.h declare the pm_message_t type?
#
- echo "#include <linux/pm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pm.h>
void conftest_pm_message_t(pm_message_t state) {
pm_message_t *p = &state;
}" > conftest$$.c
@@ -726,7 +753,8 @@
# Determine if pci_choose_state() is present.
#
- echo "#include <linux/pci.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/pci.h>
void conftest_pci_choose_state(void) {
pci_choose_state();
}" > conftest$$.c
@@ -747,7 +775,8 @@
# Determine if vm_insert_page() is present.
#
- echo "#include <linux/mm.h>
+ echo "#include <linux/autoconf.h>
+ #include <linux/mm.h>
void conftest_vm_insert_page(void) {
vm_insert_page();
}" > conftest$$.c
Ciao
Installare gli header files di un kernel più recente della versione con cui è stato compilato gcc è una pratica che può portare talvolta a problemi nella compilaziione dei sorgenti, non sempre ...ma qualche volta.
Comunque i driver nvidia o meglio l'interfaccia per il kernel viene compilata utilizzando gli header files dei sorgenti del kernel, non /usr/include/*.
Ciao
Comunque i driver nvidia o meglio l'interfaccia per il kernel viene compilata utilizzando gli header files dei sorgenti del kernel, non /usr/include/*.
Ciao
Re: drive NVIDIA
ermes ha scritto:sono alla fase della messa a punto della slk11.
ho scaricato i nuovi drive NVIDIA e non riesco a installarli.
Ecco il messaggio di errore.
ho cercato nel forum e ho trovato un post che rappresentava +/- lo stesso problema, indicava anche la causa (mancanza di un file: versione.h mi pare) ma non dava soluzioni.
qualche anima pia mi sa dire cosa fare ?
Controlla per primo che ci sia un link simbolico in /usr/src chiamato linux che punti alla directory dei sorgenti del kernel in esecuzione!
Devi inoltre controllare i due link simbolici(Build e Source) presenti in /lib/modules/versione-kernel. Devono puntare alla directory dei sorgenti della loro versione di kernel.
Terzo i sorgenti del kernel devono contenere il file .config ed i file object della compilazione.


