web-dev-qa-db-fra.com

Répertoire du noyau vide mais les en-têtes du noyau sont installés

Hôte - Windows 7

Invité - CentOS

J'essaie d'installer kernel-headers en utilisant yum car lors de l'installation de vmware-tools Je reçois un message demandant le chemin d'accès aux fichiers d'en-tête du noyau pour le 3.10.0-229.7.2.e17.x86_64.

Fonctionnement yum install kernel-headers renvoie Package kernel-headers-3.10.0-229.7.2.e17.x86_64 déjà installé et dernière version. Mais le répertoire /usr/src/kernels est vide.

Les en-têtes du noyau sont-ils installés ailleurs? Ou devrais-je demander à yum d'installer autre chose?

Chemin fourni à vmware-tools pour les en-têtes du noya

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]

Fournir le chemin /usr/include/linux donne à nouveau la même réponse mais avec "" remplacé par le chemin fourni.

20
Kvothe

Le package correct pour installer toutes les dépendances requises pour la construction des modules du noyau est kernel-devel (voir documentation CentOS pour plus d'informations).

Les en-têtes ne sont pas installés dans /usr/src/kernels, ils sont plutôt installés dans un certain nombre de répertoires ci-dessous /usr/include (l'emplacement par défaut des fichiers d'en-tête C). Vous pouvez lister le contenu du kernel-headers package que vous avez installé en utilisant:

rpm -ql kernel-headers
9
mjturner

J'ai eu le même problème. Après beaucoup de recherches sur Google, cette solution a fonctionné pour moi. Il détermine d'abord la version du noyau installée, puis utilise cette version exacte pour installer le package d'en-tête du noyau.

Sudo yum install "kernel-devel-uname-r == $(uname -r)"
25
MarkAu

Sur CentOS version 7 ci-dessous est le chemin pour les en-têtes du noyau.

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

Après avoir exécuté yum install kernel-headers deux fois (mis à jour au plus tard), le problème a été corrigé. Assurez-vous que la version du noyau en cours d'exécution et la version des en-têtes du noyau sont identiques. Ma version du noyau est 3.10.0-327.36.2.el7.x86_64

4
Shanraj

J'ai eu le même problème et la solution ci-dessus n'a pas fonctionné pour moi. Cela pourrait être la version de CentOS 7 que j'utilise.
Voici ce qui a résolu le problème pour moi ...

installer les en-têtes du noyau

yum -y install kernel-devel

définir un lien symbolique pour que les outils vmware puissent trouver 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
3
patrick fogarty

J'ai eu exactement le même problème.

Dans mon cas, je viens de supprimer kernel-dev * et de le réinstaller:

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

J'ai installé le package kernel-devel, mais il s'avère que les en-têtes étaient pour une version de noyau différente de celle qui s'exécutait sur mon instance. Afin de résoudre le problème, j'ai couru

Sudo yum upgrade

et redémarré, puis vmware-tools installé sans problème.

2
sffc

Pour répondre à la question, la source du noyau est installée sous/usr/src/kernels /. kernel-devel est le package à installer.

Pour fournir une solution au problème, la raison du problème est que le noyau installé est ancien et que kernel-devel a une mise à jour dans le référentiel. L'installation de kernel-devel installe donc la source d'un noyau plus récent et donc le script de configuration des outils vmware ne trouve pas la source. Il y a deux solutions possibles.

  1. Mettez à jour le noyau afin que le noyau et kernel-devel soient nouveaux.

    Sudo yum upgrade

Redémarrez afin que le nouveau noyau soit chargé, puis exécutez le script de configuration des outils vmware.

  1. La mise à jour du noyau n'est pas toujours possible. Si tel est le cas, installez une version de développement du noyau identique à la version du noyau installé.

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

C'est ce qui a fonctionné pour moi sur une nouvelle installation minimale de Centos:

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

Je pense avoir trouvé une solution pour cela.

J'ai lu des suggestions (même sur le site Web de VMWare) qui recommandent d'installer les outils open-vm par opposition aux outils VMWare.

yum install open-vm-tools

Il y a bien sûr quelques mises en garde, après l'installation, n'oubliez pas de redémarrer la machine virtuelle.

De plus, maintenant au lieu de la coche verte qui apparaît généralement dans vSphere, au lieu de cela, il affiche le "?" Gris mais reconnaît que les outils sont en cours d'exécution et affiche l'adresse IP et le système d'exploitation en cours d'exécution ainsi que l'affichage "En cours d'exécution (tiers/indépendant)".

J'espère donc que cela aidera quelqu'un. J'ai passé deux jours là-dessus et j'ai finalement trouvé cette réponse, et cela a fonctionné pour moi, en exécutant ESXi 5.1 et vCenter avec CentOS 7.2 en tant qu'OS invité.

0
Eric