PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist an diesem Kommando falsch??


klausm
30.03.03, 12:38
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

ra1der
30.03.03, 12:56
nimm anstatt den source rpms mal die tarballs (.tar.gz). Kompilieren != source rpms.
Die musst du einfach nur entpacken und dann mit make bauen.

klausm
30.03.03, 13:35
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 :(

ra1der
30.03.03, 14:02
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

klausm
30.03.03, 14:16
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

dauni
30.03.03, 15:08
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 ....

klausm
30.03.03, 15:56
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

dauni
30.03.03, 16:33
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 ....

klausm
30.03.03, 18:04
@ 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.

dauni
30.03.03, 18:35
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