Leeres Kernelverzeichnis, aber Kernel-Header sind installiert

19

Host - Windows 7

Gast - CentOS

Ich versuche, kernel-headersmithilfe von zu installieren , yumda während der Installation von vmware-toolseine Meldung angezeigt wird, in der nach dem Pfad zu den Kernel-Header-Dateien für 3.10.0-229.7.2.e17.x86_64 gefragt wird .

Running yum install kernel-headersgibt das Paket kernel-headers-3.10.0-229.7.2.e17.x86_64 zurück, das bereits installiert und die neueste Version ist . Das Verzeichnis /usr/src/kernelsist aber leer.

Sind die Kernel-Header woanders installiert? Oder sollte ich darum bitten yum, etwas anderes zu installieren?

Pfad zu VMware-Tools für Kernel-Header

Searching for a valid kernel header path...
The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.
Would you like to change it? [yes]

Wenn Sie den Pfad erneut /usr/include/linuxangeben, wird die gleiche Antwort "" ausgegeben, wobei jedoch der angegebene Pfad verwendet wird.

Kvothe
quelle
1
Überprüfen Sie die Ausgabe von rpm -ql kernel-headers; Ich denke, es legt Dateien in / usr / include / linux, aber ich kann veraltet sein. Es wäre gut, wenn Sie angeben könnten, welchen Pfad Sie dem vmware-tools-Installationsprogramm geben und was es zurückmeldet.
Jeff Schaller

Antworten:

8

Das richtige Paket zum Installieren aller erforderlichen Abhängigkeiten zum Erstellen von Kernelmodulen lautet kernel-devel( weitere Informationen finden Sie in der CentOS-Dokumentation ).

Die Header werden nicht installiert /usr/src/kernels, sondern in einer Reihe von Verzeichnissen /usr/include(dem Standardverzeichnis für C-Header-Dateien). Sie können den Inhalt des kernel-headersPakets auflisten, das Sie installiert haben:

rpm -ql kernel-headers
mjturner
quelle
Das war's. Ich würde früher zu dieser Seite bekam aber falsch interpretiert es als „wenn Sie tun die vollständige Quelle Verwendung kernel-devel benötigen“. Vielen Dank
Kvothe
22

Ich hatte das gleiche problem Nach langem googeln hat diese Lösung für mich funktioniert. Zunächst wird die installierte Kernel-Version ermittelt und anschließend anhand dieser genauen Version das Kernel-Header-Paket installiert.

sudo yum install "kernel-devel-uname-r == $(uname -r)"
MarkAu
quelle
Dies funktionierte in einer Surface Book & VMWare-Konfiguration.
ThinkCode
Funktioniert auf Centos 7, verbrachte mehr als zwei Stunden zuvor .. Danke!
h0x91B
Endlich .... Arbeitete an CentOS7. Vielen Dank
VM_AI
Es funktionierte. Vielen Dank. Ich bin mir nicht sicher, ob Kernel-Header Teil dieser Entwicklung sind.
Murali Mopuru
4

Unter CentOS Version 7 ist der Pfad für Kernel-Header angegeben.

/lib/modules/3.10.0-327.36.2.el7.x86_64/build/include

Nach yum install kernel-headerszweimaliger Ausführung (auf den neuesten Stand gebracht) wurde das Problem behoben. Stellen Sie sicher, dass die ausgeführte Kernel-Version und die Kernel-Header-Version identisch sind. Meine Kernelversion ist3.10.0-327.36.2.el7.x86_64

Shanraj
quelle
Antworten, die so einfach sind, verdienen mehr Gegenstimmen.
WesternGun
2

Ich hatte das gleiche Problem und die oben genannte Lösung hat bei mir nicht funktioniert. Es könnte der Build von CentOS 7 sein, den ich verwende.
Hier ist, was das Problem für mich gelöst hat ...

Installieren Sie Kernel-Header

yum -y install kernel-devel

Stellen Sie einen symbolischen Link ein, damit VMware Tools version.h finden können

export kernel_headers=`ls -hd /usr/src/kernels/3*`
sudo ln -s ${kernel_headers}/include/generated/uapi/linux/version.h ${kernel_headers}/include/linux/version.h
Patrick Fogarty
quelle
2

Ich habe das kernel-devel-Paket installiert, aber es stellte sich heraus, dass die Header für eine andere Kernel-Version waren als die, die auf meiner Instanz ausgeführt wurde. Um das Problem zu beheben, lief ich

sudo yum upgrade

und neu gestartet, und dann VMware-Tools ohne viel Aufhebens installiert.

sffc
quelle
2

Ich hatte genau das gleiche Problem.

In meinem Fall musste ich nur Kernel-Dev * entfernen und erneut installieren:

yum -y remove kernel-devel*
yum -y install kernel-devel*
AxldenieD
quelle
0

Ich glaube, ich habe eine Lösung dafür gefunden.

Ich habe (auch auf der VMWare-Website) Vorschläge gelesen, die die Installation der open-vm-Tools im Gegensatz zu den VMWare-Tools empfehlen.

yum install open-vm-tools

Es gibt natürlich einige Einschränkungen. Denken Sie nach der Installation daran, die virtuelle Maschine neu zu starten.

Außerdem wird jetzt anstelle des in vSphere normalerweise angezeigten grünen Häkchens das graue "?" erkennt jedoch, dass die Tools ausgeführt werden, und zeigt die IP-Adresse und das Betriebssystem sowie die Anzeige "Wird ausgeführt (Drittanbieter / Unabhängig)" an.

Hoffentlich hilft das jemandem. Ich habe zwei Tage damit verbracht und schließlich diese Antwort gefunden, und es funktionierte für mich, ESXi 5.1 und vCenter mit CentOS 7.2 als Gastbetriebssystem auszuführen.

Eric
quelle
open-vm-tools ist in bestimmten fällen keine echte alternative zu den vmware-tools. z.B. open-vm-tools unterstützt kein hgfs zum Teilen von Dateien zwischen Gast und Host. VMware unterstützt hgfs auf Centos 7.
Gaurav
0

Um die Frage zu beantworten, wird die Kernelquelle unter / usr / src / kernels / installiert. kernel-devel ist das zu installierende Paket.

Der Grund für das Problem besteht darin, dass der installierte Kernel alt ist und kernel-devel ein Update im Repository hat. Wenn Sie also kernel-devel installieren, wird die Quelle eines neueren Kernels installiert, und daher wird die Quelle vom Konfigurationsskript der VMware Tools nicht gefunden. Es gibt zwei mögliche Lösungen.

  1. Aktualisieren Sie den Kernel so, dass sowohl der Kernel als auch der Kernel-Entwickler neu sind.

    sudo yum upgrade

Starten Sie den Computer neu, damit der neue Kernel geladen wird, und führen Sie dann das Konfigurationsskript für VMware Tools aus.

  1. Ein Update des Kernels ist nicht immer möglich. Wenn dies der Fall ist, installieren Sie die Kernel-Entwicklerversion, die der installierten Kernelversion entspricht.

    sudo yum install "kernel-devel-uname-r == $(uname -r)"
Gaurav
quelle
0

Das hat für mich bei einer frischen Minimal-Centos-Installation funktioniert:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
Carsten
quelle