PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : version.h nicht gefunden



Hary00
01.07.06, 20:08
Hi leute,
ich habe n kleines Problem. Ich bin derziet bei der instelation von VMware, bzw. bei der vmware-config.pl. Da wird gefragt:


What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]
Wenn ich Enter drücke kommt die Fehlermeldung:


The path "/usr/src/linux/include" is a kernel header file directory, but it does
not contain the file "linux/version.h" as expected. This can happen if the
kernel has never been built, or if you have invoked the "make mrproper" command
in your kernel directory. In any case, you may want to rebuild your kernel.

Ich weis nicht, wie ich an die Datei version.h ran komme. Ich habe das Tutorial http://www.linuxforen.de/forums/showpost.php?p=235439&postcount=8 abgearbeitet....

Zu meinem Linux: Ich habe die DVD Version von Mandriva 2006 (die, die was kostet).
So wie komme ich jetzt weiter?

stefan.becker
01.07.06, 20:21
Hast du Kernel Source passend zum installierten Kernel?

Ist der Kernel konfiguriert?

Welche Version von VMWARE?

Any-Any-Patch probiert?

Gibt es /usr/source/linux (Link auf echten Kernelsource)?

Hary00
01.07.06, 21:08
Ich habe VMware Workstation Version 5.5.1. Der Keanal ist vorkonfiguriert. Ich meine ich habe den seit der Instelation nicht angerühert. (keine Ahnung von)

Was ist Any-Any-Patch? Ja das ist der richtige Pfade.

stefan.becker
01.07.06, 21:10
Der Any Any Patch steht im Howto. Versuch den erstmal.

Du musst die Kernelkonfiguration mal überprüfen. Schreib mal alles auf, was du gemacht hast. So kann man nichts sagen.

X-Dimension
01.07.06, 21:44
Du musst die Kernel Quellen installieren:

"urpmi kernel-source" sollte helfen.

XD

Hary00
01.07.06, 22:28
Ich habe den Any-to-Any Patch ausgeführt. Das kann bei raus:

[root@noname vmware-any-any-update101]# ./runme.pl
Updating /usr/bin/vmware-config.pl ... now patched
The file /usr/lib/vmware/modules/source/vmmon.tar that this script was about to
install already exists. Overwrite? [yes]

The file /usr/lib/vmware/modules/source/vmnet.tar that this script was about to
install already exists. Overwrite? [yes] y

Updating /usr/bin/vmware ... No patch needed/available
Updating /usr/bin/vmnet-bridge ... No patch needed/available
Updating /usr/lib/vmware/bin/vmware-vmx ... No patch needed/available
Updating /usr/lib/vmware/bin-debug/vmware-vmx ... No patch needed/available
VMware modules in "/usr/lib/vmware/modules/source" has been updated.

Before running VMware for the first time after update, you need to configure it
for your running kernel by invoking the following command:
"/usr/bin/vmware-config.pl". Do you want this script to invoke the command for
you now? [yes] y

Making sure services for VMware Workstation are stopped.

Stopping VMware services:
Virtual machine monitor [ OK ]

Configuring fallback GTK+ 2.4 libraries.

In which directory do you want to install the mime type icons?
[/usr/share/icons]

What directory contains your desktop menu entry files? These files have a
.desktop file extension. [/usr/share/applications]

In which directory do you want to install the application's icon?
[/usr/share/pixmaps]

Trying to find a suitable vmmon module for your running kernel.

None of the pre-built vmmon modules for VMware Workstation is suitable for your
running kernel. Do you want this program to try to build the vmmon module for
your system (you need to have a C compiler installed on your system)? [yes]

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]

The path "/usr/src/linux/include" is a kernel header file directory, but it does
not contain the file "linux/version.h" as expected. This can happen if the
kernel has never been built, or if you have invoked the "make mrproper" command
in your kernel directory. In any case, you may want to rebuild your kernel.


Daran hat sich nichts getan. Ich habe noch mal nachgesehen ob der Phade stimmt. Er ist /usr/src/linux-2.6.12-12mdk. Ich habe das eingegeben und den Fehler bekommen:

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include] /usr/src/linux-2.6.12-12mdk

The path "/usr/src/linux-2.6.12-12mdk" is an existing directory, but it does not
contain a "linux" subdirectory as expected.

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]

Ich bin mir nicht ob es die auf meinem System gibt. Eine Suche war auch erfolglos. Ich bin noch mal das Tutorial durchgegangen. Habe die Befehle eingegeben:

zcat /proc/config.gz >> /usr/src/linux-2.6.12-12mdk/.config
make menuconfig

Habe es geöffnet, gespeichteert und geschlossen. Da es immer noch nicht funktioniert hat habe ich noch den Befehl make ausgeführt. Der compiliert jetzt schon Ewigkeiten und die Linux Platte ist ingsgesammt nur 5Gb groß ---> gleich voll. Ich habe mal kurz dazwischen angehalten und versucht vmware weiter zu machen. dass kann bei raus:

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]

The directory of kernel headers (version 2.6.12-12mdkcustom) does not match your
running kernel (version 2.6.12-12mdk). Even if the module were to compile
successfully, it would not load into the running kernel.

Ich habe nur noch 125 MB frei und der ist mit dem male noch nicht fertig.. Was nu? Weiter machen?

tooly
01.07.06, 22:40
Hallo Harry00,

das make menuconfig und make waren nicht notwendig. Warum er mault er dass es unterschiedliche Kernelsource sind (2.6.12-12mdkcustom und 2.6.12-12mdk) weis ich nicht, oder hast Du was verändert?

Ein make oldconfig hätte durchaus genügt, da werden dann die Einstellungen aus .config übernommen.

Ich würde jetzt so vorgehen:
cd /usr/src/linux-2.6.12-12.mdk
make mrproper
zcat /proc/config.gz >> .config
make oldconfig
ls include/linux/version.h || make include/linux/version.h

und dann weiter mit vmware.

Falls Du mal nur die version.h erstellen willst, das geht mit
cd /usr/src/linux-2.6.12-12.mdk
make include/linux/version.h

mfg
tooly

Hary00
01.07.06, 23:02
Ich habe jetzt das compilieren abgebrochen und die x-dimension mir empfohlen hat die Source gezogen. Super ist allerdings, dass es linux-2.6.12-22mdk ist. Habe die Befehle von tolly ausgeführt und die version.h erstellt. Nun kommt folgende Meldung:


What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include]

The directory of kernel headers (version 2.6.12-22mdkcustom) does not match your
running kernel (version 2.6.12-12mdk). Even if the module were to compile
successfully, it would not load into the running kernel.

tooly
01.07.06, 23:12
Hallo Harry00,

das geht so nicht, Du musst schon die passenden sources zum laufenden Kernel nutzen. Also entweder installierst Du die richtigen sources und machst ein kernelupdate auf 2.6.12-22mkd.

uname -r sollte bei Dir 2.6.12-12mdk zurückgeben, ist das so?

Die sources zu 2.6.12-12mkd liegen noch in /usr/src/, oder sind die jetzt gelöscht?

Ist /usr/src/linux ein link auf /usr/src/linux-2.6.12-12mdk?

Falls Du alles mit ja beantworten kannst, dann öffne mal /usr/src/linux-2.6.12-12mdk/Makefile, die ersten Zeilen sollten so aussehen:
VERSION = 2
PATCHLEVEL= 6
SUBLEVEL = 12
EXTRAVERSION = -12mdk

falls Da ein custom bei EXTRAVERSION steht, dann ändere die Zeile.
Danach mußt Du aber nochmal make include/linux/version.h ausführen.

Die version.h sollte folgenden Inhalt haben:
#define UTS_RELEASE "2.6.12-12mdk"
#define LINUX_VERSION_CODE 132625
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

mfg
tooly

Hary00
02.07.06, 08:14
Der Link/usr/src/linux verweist auf /usr/src/linux-2.6.12-22mdk.
Es befindet sich auch keine Makefile im linux-2.6.12-12mdk Ordner. Wie patche ich nun die Kernal, so das Source und Kernal die gleiche Version hat?

stefan.becker
02.07.06, 10:05
Du musst nichts patchen, du musst die Paketverwaltung deiner Distribution nutzen und halt 2 Pakete mit gleicher Version neu installieren: "kernel" und "kernel-source".

X-Dimension
02.07.06, 17:50
Mandriva hat die Eigenart, daß es im Gegensatz zu anderen Distributionen den Linux-Kernel nie automatisch aktualisiert, daher ist bei dir noch eine ältere Kernel-Version installiert. (Du hast aber schon die neuen Kernel-Quellen)

Du musst den neuen Kernel manuell per "urpmi kernel" installieren, dann passt er auch zum Kernel-Source Paket.
Nach der Installation der neuen Kernel Version findest du im Bootmanager einen neuen Eintrag, mit dem du diesen starten kannst.