Diretório vazio do kernel, mas os cabeçalhos do kernel estão instalados


19

Anfitrião - Windows 7

Convidado - CentOS

Estou tentando instalar kernel-headersusando, yumpois durante a instalação de vmware-toolsrecebo uma mensagem solicitando o caminho para os arquivos de cabeçalho do kernel para o 3.10.0-229.7.2.e17.x86_64 .

Em execução yum install kernel-headersretorna o pacote kernel-headers-3.10.0-229.7.2.e17.x86_64 já instalado e a versão mais recente . Mas o diretório /usr/src/kernelsestá vazio.

Os cabeçalhos do kernel estão instalados em outro lugar? Ou devo pedir yumpara instalar outra coisa?

Caminho fornecido para vmware-tools para cabeçalhos de 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]

Fornecer o caminho /usr/include/linuxdá a mesma resposta novamente, mas "" foi substituído pelo caminho fornecido.


1
verifique a saída de rpm -ql kernel-headers; Eu acho que coloca arquivos em / usr / include / linux, mas posso estar desatualizado. Seria bom se você pudesse indicar o caminho que você dá ao instalador do vmware-tools e também o que ele informa.
Jeff Schaller

Respostas:


8

O pacote correto para instalar todas as dependências necessárias para a construção de módulos do kernel é kernel-devel(consulte a documentação do CentOS para obter mais informações).

Os cabeçalhos não estão instalados /usr/src/kernels, mas em vários diretórios abaixo /usr/include(o local padrão para os arquivos de cabeçalho C). Você pode listar o conteúdo do kernel-headerspacote que você instalou usando:

rpm -ql kernel-headers

Foi isso. Eu cheguei a essa página anteriormente, mas mal interpretado como "se você não precisa do uso da fonte do kernel-devel cheio". Obrigado
Kvothe

23

Eu tive o mesmo problema. Após muita pesquisa, essa solução funcionou para mim. Ele primeiro determina a versão do kernel instalado e depois usa a versão exata para instalar o pacote de cabeçalho do kernel.

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

Isso funcionou em uma configuração do Surface Book & VMWare.
ThinkCode 31/10/16

Funciona no centos 7, passou mais de duas horas antes .. Obrigado!
H0x91B

Finalmente .... Trabalhou no CentOS7. Muito obrigado
VM_AI

Funcionou. Obrigado. Não tenho certeza se os cabeçalhos do kernel fazem parte desse desenvolvimento.
Murali Mopuru 15/10

4

No CentOS, a versão 7, fornecida abaixo, é o caminho para os cabeçalhos do kernel.

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

Depois de executar yum install kernel-headersduas vezes (atualizado para o mais recente), o problema foi corrigido. Verifique se a versão do kernel em execução e a versão dos cabeçalhos do kernel são iguais. Minha versão do kernel é3.10.0-327.36.2.el7.x86_64


Respostas tão simples como essa merecem mais votos.
WesternGun 27/09/18

2

Eu tive o mesmo problema e a solução acima não funcionou para mim. Poderia ser a versão do CentOS 7 que estou usando.
Aqui está o que resolveu o problema para mim ...

instalar cabeçalhos do kernel

yum -y install kernel-devel

defina o link simbólico para que as ferramentas do vmware possam encontrar 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

Instalei o pacote kernel-devel, mas os cabeçalhos eram de uma versão diferente do kernel que estava sendo executada na minha instância. Para corrigir o problema, corri

sudo yum upgrade

e reiniciado e, em seguida, o vmware-tools instalado sem problemas.


2

Eu tive exatamente o mesmo problema.

No meu caso, eu apenas tive que remover o kernel-dev * e instalá-lo novamente:

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

0

Acredito que encontrei uma solução alternativa para isso.

Eu tenho lido sugestões (mesmo no site da VMWare) que recomendam a instalação do open-vm-tools em oposição às ferramentas do VMWare.

yum install open-vm-tools

Existem algumas advertências, é claro, após a instalação, lembre-se de reiniciar a máquina virtual.

Além disso, agora, em vez da marca de seleção verde que geralmente aparece no vSphere, em vez disso, mostra o cinza "?" mas reconhece que as ferramentas estão em execução e mostra o endereço IP e o SO que está sendo executado, além da exibição "Em execução (de terceiros / independentes)".

Então, espero que isso ajude alguém. Passei dois dias nisso e finalmente encontrei esta resposta, e funcionou para mim, executando o ESXi 5.1 e o vCenter com o CentOS 7.2 como o convidado.


O open-vm-tools não é realmente uma alternativa para as ferramentas de vmware em certos casos. por exemplo. O open-vm-tools não suporta hgfs para compartilhar arquivos entre convidado e host. VMware suporta hgfs no CentOS 7.
Gaurav

0

Para responder à pergunta, a fonte do Kernel é instalada em / usr / src / kernels /. O kernel-devel é o pacote para instalar.

Para fornecer solução para o problema, o motivo do problema é que o kernel instalado é antigo e o kernel-devel possui uma atualização no repositório. Portanto, instalar o kernel-devel instala o código-fonte de um kernel mais recente e, portanto, o script de configuração das ferramentas vmware não encontra o código-fonte. Há duas soluções possíveis.

  1. Atualize o kernel para que o kernel e o kernel-devel sejam novos.

    sudo yum upgrade

Reinicialize para que o novo kernel seja carregado e execute o script de configuração das ferramentas vmware.

  1. A atualização do kernel nem sempre é viável. Se for esse o caso, instale a versão kernel-devel igual à versão instalada do kernel.

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

0

Isto é o que funcionou para mim em uma nova instalação mínima do Centos:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.