Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist an diesem Kommando falsch??
Hallo,
Ich habe seit gestern zum ersten mal Linux auf meinem Computer und versuche grade bewaffnet mit einem dicken stapel howtos und anleitungen mein system zu konfigurieren und bis jetzt macht es eigentlich auch ziemlich spass und ich konnte mir ne menge erarbeiten.
Doch seit heute morgen komme ich nicht weiter: Ich wollte meine Grafikkarte treiber für meine NVIDIA Karte installieren und bin dabei nach der Anleitung von Netzmeister
(http://www.linuxforen.de/forums/showthread.php?s=&threadid=52084&highlight=NVIDIA)
vorgegangen...
Da es für mein Mandrake 9.1 keine fertigen .rpm gibt und auch der "halb automatische" Weg nicht geklappt hat
versuchte ich es also manuell zu kompilieren was ja nicht unbedingt schlecht ist da die lernkurve bei mir im moment bei linux sehr steil ist :)
Doch wenn ich dann die scources entpackt habe und die .spec dateien mit dem untenstehenden befehl komplieren will:
rpm -bb --target=i686 --clean --rmsource NVIDIA*.spec
(Ja ich weis das * eine wildcard ist :))
bekomme ich folgenden fehler:
--target=i686: unknown option
Ich hab auch schon mal in den rpm manpages gesucht aber jetzt nix gefundet ob es einen neueren pendant zu --target gibt, und in diversen chats wo ich ebenfalls nachfragte hat man müde gelächelt aber mir keine antwort gegeben :(
vielleicht erbarmt sich ja jemand von euch, danke schonmal jedenfalls
klaus
nimm anstatt den source rpms mal die tarballs (.tar.gz). Kompilieren != source rpms.
Die musst du einfach nur entpacken und dann mit make bauen.
Hab ich versucht...bekomme folgende Fehlermeldung:
[root@localhost NVIDIA_kernel-1.0-4191]# make install
echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -1`\" > nv_compiler.h
cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wpointer-arith -Wcast-qu
al -Wno-multichar -O -MD -D__KERNEL__ -DMODULE -D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -D_LOOSE_KERNEL_NAMES
-D__KERNEL__ -DMODULE -DNV_MAJOR_VERSION=1 -DNV_MINOR_VERSION=0 -DNV_PATCHLEVEL=4191 -DNV_UNIX -DNV_LINUX
-DNV_INT64_OK -DNVCPU_X86 -I. -I/usr/src/linux/include -Wno-cast-qual nv.c
In file included from /usr/include/linux/prefetch.h:13,
from /usr/include/linux/list.h:6,
from /usr/include/linux/module.h:11,
from nv-linux.h:28,
from nv.c:14:
/usr/include/asm/processor.h:55: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/asm/processor.h:55: requested alignment is not a constant
In file included from /usr/include/linux/module.h:297,
from nv-linux.h:28,
from nv.c:14:
/usr/include/linux/version.h:2:2: #error "================================================== ====="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header files from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recommended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal and may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They should only be"
/usr/include/linux/version.h:10:2: #error "included via other system header files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly include <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources installed"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/build exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source directory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.version.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/build/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the correct include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/build/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile accordingly."
/usr/include/linux/version.h:35:2: #error "================================================== ====="
In file included from nv-linux.h:28,
from nv.c:14:
/usr/include/linux/module.h:299: parse error before "UTS_RELEASE"
/usr/include/linux/module.h: In function `print_symbol':
/usr/include/linux/module.h:433: `ESRCH' undeclared (first use in this function)
/usr/include/linux/module.h:433: (Each undeclared identifier is reported only once
/usr/include/linux/module.h:433: for each function it appears in.)
In file included from nv-linux.h:29,
from nv.c:14:
/usr/include/linux/version.h:2:2: #error "================================================== ====="
/usr/include/linux/version.h:3:2: #error "You should not include /usr/include/{linux,asm}/ header"
/usr/include/linux/version.h:4:2: #error "files directly for the compilation of kernel modules."
/usr/include/linux/version.h:5:2: #error ""
/usr/include/linux/version.h:6:2: #error "glibc now uses kernel header files from a well-defined"
/usr/include/linux/version.h:7:2: #error "working kernel version (as recommended by Linus Torvalds)"
/usr/include/linux/version.h:8:2: #error "These files are glibc internal and may not match the"
/usr/include/linux/version.h:9:2: #error "currently running kernel. They should only be"
/usr/include/linux/version.h:10:2: #error "included via other system header files - user space"
/usr/include/linux/version.h:11:2: #error "programs should not directly include <linux/*.h> or"
/usr/include/linux/version.h:12:2: #error "<asm/*.h> as well."
/usr/include/linux/version.h:13:2: #error ""
/usr/include/linux/version.h:14:2: #error "To build kernel modules please do the following:"
/usr/include/linux/version.h:15:2: #error ""
/usr/include/linux/version.h:16:2: #error " o Have the kernel sources installed"
/usr/include/linux/version.h:17:2: #error ""
/usr/include/linux/version.h:18:2: #error " o Make sure that the symbolic link"
/usr/include/linux/version.h:19:2: #error " /lib/modules/`uname -r`/build exists and points to"
/usr/include/linux/version.h:20:2: #error " the matching kernel source directory"
/usr/include/linux/version.h:21:2: #error ""
/usr/include/linux/version.h:22:2: #error " o Now copy /boot/vmlinuz.version.h to"
/usr/include/linux/version.h:23:2: #error " /lib/modules/`uname -r`/build/include/linux/version.h"
/usr/include/linux/version.h:24:2: #error ""
/usr/include/linux/version.h:25:2: #error " o When compiling, make sure to use the following"
/usr/include/linux/version.h:26:2: #error " compiler option to use the correct include files:"
/usr/include/linux/version.h:27:2: #error ""
/usr/include/linux/version.h:28:2: #error " -I/lib/modules/`uname -r`/build/include"
/usr/include/linux/version.h:29:2: #error ""
/usr/include/linux/version.h:30:2: #error " instead of"
/usr/include/linux/version.h:31:2: #error ""
/usr/include/linux/version.h:32:2: #error " -I/usr/include/linux"
/usr/include/linux/version.h:33:2: #error ""
/usr/include/linux/version.h:34:2: #error " Please adjust the Makefile accordingly."
/usr/include/linux/version.h:35:2: #error "================================================== ====="
In file included from nv.c:14:
nv-linux.h:31:40: missing binary operator before '('
nv-linux.h:33:42: missing binary operator before '('
nv-linux.h:35:42: missing binary operator before '('
nv-linux.h:37:42: missing binary operator before '('
nv-linux.h:39:42: missing binary operator before '('
nv-linux.h:43:4: #error This driver does not support 2.6.x or newer kernels!
In file included from /usr/include/asm/hardirq.h:6,
from /usr/include/linux/interrupt.h:46,
from nv-linux.h:71,
from nv.c:14:
/usr/include/linux/irq.h: At top level:
/usr/include/linux/irq.h:65: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/linux/irq.h:65: requested alignment is not a constant
In file included from /usr/include/linux/interrupt.h:46,
from nv-linux.h:71,
from nv.c:14:
/usr/include/asm/hardirq.h:16: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/asm/hardirq.h:16: requested alignment is not a constant
In file included from nv-linux.h:71,
from nv.c:14:
/usr/include/linux/interrupt.h:129: `CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function)
/usr/include/linux/interrupt.h:129: requested alignment is not a constant
nv-linux.h:184:64: missing binary operator before '('
nv.c:1335:65: missing binary operator before '('
nv.c: In function `nv_kern_mmap':
nv.c:1338: warning: implicit declaration of function `pgprot_writecombine'
nv.c:1338: incompatible types in assignment
make: *** [nv.o] Fehler 1
tut mir leid aber da versteh ich nur noch bahnhof...es ist doch richtig das ich zuerst den kernel vor dem GLX versuche oder?
klaus :(
ja, es ist die richtige Reihenfolge. Hast Du überjaupt die develop Pakete installiert mit den Werkzeugen wie Make usw.?
wenn ja deinstallier vorher mal die nvidia mandrake pakete
Jau ich hab brav den haken bei Develop. Tools und konsolenwerkzeuge bei der installation angegeben.
Und ich hab mal mit rpmdrake gegugt...ich habe keine NVIDIA pakete drauf. habe auch eigentlich keine installiert weil die Geforce 4 generic treiber bei der installation nicht wollten und hab deshalb die vesa genommen
klaus
wenn make nicht installiert wäre, könnte man schlecht make aufrufen?
kernelquellen müssen installeirt sein und darin muß einmal make dep ausgeführt werden ....
auch auf die gefahr hin das ich gesteinigt werde oder ein RTFM an den kopf geworfen bekomme...
welche kernelquellen? die Kernelquellen vom NVIDIA Kernel? Die versuche ich ja grade eben zu installieren...
und...make dep?:(
klaus ,
der sich besser schon mal duckt
christophwth
30.03.03, 16:17
Hi
ich verstehe die fehlermeldungen auch nicht so recht , aber
zuerst wird ein fehler in den asm includes angezeigt.
und zwar :
/usr/include/asm/processor.h:55: `CONFIG_X86_L1_CACHE_SHIFT
das , bei google eingeben zeigt ganz viele fehler im zusammenhang
mit mandrake an.
die lösung die dort gepostet wird ist: die kernelquellen zu installieren
zur info :
bei debian sid z.B gibt es dieses makro oder die konstante z.B in dieser
datei gar nicht.
statt dessen ist es im makro in /usr/include/asm/cache.h : #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
und in /usr/src/linux/ [das sind die kernel quellen ]
in der datei autoconf.h:#define CONFIG_X86_L1_CACHE_SHIFT (5)
vorhanden.
was ich jetzt nicht verstehe:
unter /usr/src/linux scheinen datein zu existieren aber die scheinen nicht die kernelquellen
zu sein.
falls doch, liegt das problem woanders.
und es findet sich ein hinweis in der zeile
/usr/include/linux/version.h:3:2: #error "You should not include /usr/include/{linux,asm}/ header"
zur frage : kernel quellen
es gibt in jeder distribution kernelquellen
bei mandrake wäre es z.B das paket kernel-source
rpm -q kernel-source
sollte dir ausgeben ob es installiert ist.
wenn sie installiert sind
dann befinden sie sich unter /usr/src/
und dann ist /usr/src/linux
meist ein link auf
/usr/src/kernel-source-2.4.xxxx
um ein make dep auszuführen machst du folgendes
cd /usr/src/linux
bei vorhandener .config datei
make dep
sonst
cp /boot/config-* /usr/src/linux/.config
zur sicherheit : make oldconfig
make dep
gruss
christoph
Nvidia hat keinen Kernel und foglich auch keine Kernelquellen. Der kernel ist "Linux" und die Kernelquellen sind eben die Quellen von Linux. Die Kernelquellen brauchst du, wenn du ein Kernelmodul (Treiber) bauen willst. Der Nvidia-kernel-Treiber ist ein solcher.
Die Kernelquellen findest du nach der Installation normalerweise under /usr/src/linux und da drin machst du als root ein "make dep" um hernach den kerneltreiber von nvidia zu bauen.
Ich tu mich aber schwer zu glauben, dass das in dem Howto nicht drinsteht ....
@ christophwth:
Vielleicht liegt es daran das bei mir daran das im verzeichniss /usr/src/ ausser dem ordner RPMS (welcher uebrigens auch nur leere verzeichnisse enthaelt) garnichts vorhanden ist...
könnte da das problem sein?
stefan.becker
30.03.03, 18:16
@dauni:
Das steht nicht im Howto, weil er keinen Kernel bauen muss, sondern den Nvidia Treiber basierend auf dem aktuellen Kernel übersetzen will.
Installiert sein muss:
- der Kernel (ist er, sonst würde der Rechner nicht booten)
- Kernel-Source wie oben beschrieben (Paket heisst "kernel-source")
- XFree-Includes (Paket heisst "XFree86-devel")ANsonsten einfach
Ob ein Paket vorhanden ist, kannst du mit "rpm -q paketname" abfragen als root.
Ansonsten den Tarball entpacken mit "tar zxvf nvidia*" (oder wie Datei heisst), mit "make" und "make install" übersetzen&installieren. Steht aber auch alles im Howto.
Und wie gesagt: Vergiss "make dep", du willst ja nicht den Kernel übersetzen.
soweit ich weiß, gehts nicht ohne make dep, kann mich natürlich aber auch täuschen - mit make dep hat man aber auch noch lange keinen kernel übersetzt ;)
christophwth
30.03.03, 18:58
HI
@klausm, ja das ist das problem .
installiere
mal die kernel-sources
gruss
christoph
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.