Directory del kernel vuota ma sono installate le intestazioni del kernel


19

Host - Windows 7

Ospite - CentOS

Sto provando a installare kernel-headersusando yumpoiché durante l'installazione di vmware-toolsottengo un messaggio che chiede il percorso ai file di intestazione del kernel per 3.10.0-229.7.2.e17.x86_64 .

In esecuzione yum install kernel-headersresi Pacchetto kernel-headers-3.10.0-229.7.2.e17.x86_64 già installato e versione più recente . Ma la directory /usr/src/kernelsè vuota.

Le intestazioni del kernel sono installate altrove? O dovrei chiedere yumdi installare qualcos'altro?

Percorso fornito a vmware-tools per le intestazioni del kernel

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]

Fornire il percorso /usr/include/linuxfornisce di nuovo la stessa risposta ma con "" sostituito con il percorso fornito.


1
controllare l'output di rpm -ql kernel-headers; Penso che metta i file in / usr / include / linux, ma potrei non essere aggiornato. Sarebbe bello se potessi indicare quale percorso dai al programma di installazione di vmware-tools e anche cosa riporta.
Jeff Schaller

Risposte:


8

Il pacchetto corretto per installare tutte le dipendenze richieste per la creazione di moduli del kernel è kernel-devel(consultare la documentazione di CentOS per ulteriori informazioni).

Le intestazioni non sono installate /usr/src/kernels, piuttosto sono installate in un numero di directory di seguito /usr/include(il percorso predefinito per i file di intestazione C). Puoi elencare il contenuto del kernel-headerspacchetto che hai installato usando:

rpm -ql kernel-headers

Questo è stato. Avevo avuto modo di quella pagina prima, ma letto male come "se non necessario il pieno utilizzo dei sorgenti del kernel-devel". Grazie
Kvothe il

23

Ho avuto lo stesso problema. Dopo aver cercato su Google, questa soluzione ha funzionato per me. Determina innanzitutto la versione del kernel installata e quindi utilizza quella versione esatta per installare il pacchetto di intestazione del kernel.

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

Questo ha funzionato su un Surface Book e una configurazione VMWare.
ThinkCode

Funziona su centos 7, trascorso oltre due ore prima .. Grazie!
h0x91B,

Finalmente .... Ha lavorato su CentOS7. Grazie mille
VM_AI

Ha funzionato. Grazie. Non sono sicuro che le intestazioni del kernel facciano parte di questo sviluppo.
Murali Mopuru,

4

Sulla versione 7 di CentOS di seguito è riportato il percorso per le intestazioni del kernel.

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

Dopo aver eseguito yum install kernel-headersdue volte (aggiornato all'ultimo), il problema è stato risolto. Assicurarsi che la versione del kernel in esecuzione e la versione delle intestazioni del kernel siano uguali. La mia versione del kernel è3.10.0-327.36.2.el7.x86_64


Risposte così semplici come questa meritano più voti positivi.
WesternGun

2

Ho avuto lo stesso problema e la soluzione di cui sopra non ha funzionato per me. Potrebbe essere la build di CentOS 7 che sto usando.
Ecco cosa ha risolto il problema per me ...

installa le intestazioni del kernel

yum -y install kernel-devel

imposta il collegamento simbolico in modo che gli strumenti vmware possano trovare version.h

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

2

Ho installato il pacchetto kernel-devel, ma risulta che le intestazioni erano per una versione del kernel diversa da quella in esecuzione sulla mia istanza. Per risolvere il problema, ho corso

sudo yum upgrade

e riavviato, quindi vmware-tools installato senza problemi.


2

Ho avuto esattamente lo stesso problema.

Nel mio caso, dovevo solo rimuovere kernel-dev * et installarlo di nuovo:

yum -y remove kernel-devel*
yum -y install kernel-devel*

0

Credo di aver trovato una soluzione per questo.

Ho letto suggerimenti (anche sul sito Web di VMWare) che raccomandano l'installazione di open-vm-tools rispetto a VMWare.

yum install open-vm-tools

Ci sono alcune avvertenze ovviamente, dopo l'installazione, ricordati di riavviare la macchina virtuale.

Inoltre, ora invece del segno di spunta verde che di solito appare in vSphere, invece mostra il grigio "?" ma riconosce che gli strumenti sono in esecuzione e mostra l'indirizzo IP e il sistema operativo in esecuzione, nonché il display "In esecuzione (di terze parti / indipendente)".

Quindi speriamo che questo possa aiutare qualcuno. Ho trascorso due giorni su questo, e finalmente ho trovato questa risposta, e ha funzionato per me, eseguendo ESXi 5.1 e vCenter con CentOS 7.2 come sistema operativo guest.


open-vm-tools non è in realtà un'alternativa agli strumenti vmware in alcuni casi. per esempio. open-vm-tools non supporta hgfs per la condivisione di file tra guest e host. Vmware supporta hgfs su centos 7.
Gaurav

0

Per rispondere alla domanda, l'origine del kernel è installata in / usr / src / kernels /. kernel-devel è il pacchetto da installare.

Per fornire una soluzione al problema, la ragione del problema è che il kernel installato è vecchio e kernel-devel ha un aggiornamento nel repository. Quindi l'installazione di kernel-devel installa la fonte di un kernel più recente e quindi lo script di configurazione di vmware tools non trova la fonte. Esistono due possibili soluzioni.

  1. Aggiorna il kernel in modo che sia il kernel sia il kernel-devel siano nuovi.

    sudo yum upgrade

Riavviare in modo che venga caricato il nuovo kernel ed eseguire lo script di configurazione di vmware tools.

  1. L'aggiornamento del kernel non è sempre fattibile. In tal caso, installare la versione kernel-devel uguale alla versione del kernel installata.

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

0

Questo è ciò che ha funzionato per me su una nuova installazione minimal-Centos:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.