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

14

Host - Windows 7

Convidado - CentOS

Estou tentando instalar kernel-headers usando yum , pois durante a instalação de vmware-tools , recebi uma mensagem solicitando o caminho para os arquivos de cabeçalho do kernel para o 3.10.0-229.7.2.e17 .x86_64 .

Executando yum install kernel-headers retornos Package kernel-headers-3.10.0-229.7.2.e17.x86_64 já instalado e versão mais recente . Mas o diretório /usr/src/kernels está vazio.

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

Caminho fornecido ao vmware-tools para os cabeçalhos do 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/linux retorna a mesma resposta, mas com "" substituído pelo caminho fornecido.

    
por Kvothe 13.07.2015 / 15:05

9 respostas

7

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

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

rpm -ql kernel-headers
    
por 13.07.2015 / 15:33
15

Eu tive o mesmo problema. Depois de muito googling, essa solução funcionou para mim. Ele primeiro determina a versão do kernel instalado e, em seguida, usa essa versão exata para instalar o pacote de cabeçalho do kernel.

sudo yum install "kernel-devel-uname-r == $(uname -r)"
    
por 24.04.2016 / 17:04
2

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

instale os cabeçalhos do kernel

yum -y install kernel-devel

defina o link simbólico para que as ferramentas vmware possam encontrar o 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
    
por 09.09.2015 / 17:15
2

No CentOS, versão 7, abaixo está 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-headers duas vezes (atualizado para o mais recente), o problema foi corrigido. Certifique-se de que a versão do kernel em execução e a versão dos cabeçalhos do kernel sejam as mesmas. Minha versão do kernel é 3.10.0-327.36.2.el7.x86_64

    
por 12.10.2016 / 17:51
2

Eu tive exatamente o mesmo problema.

No meu caso eu só tive que remover o kernel-dev * et instalá-lo novamente:

yum -y remove kernel-devel*
yum -y install kernel-devel*
    
por 17.11.2017 / 21:35
1

Eu instalei o pacote kernel-devel, mas acontece que os cabeçalhos eram para uma versão do kernel diferente daquela que estava rodando na minha instância. Para corrigir o problema, eu corri

sudo yum upgrade

e reiniciado, e depois vmware-tools instalado sem problemas.

    
por 15.09.2016 / 06:55
0

Eu acredito que encontrei uma solução para isso.

Eu tenho lido sugestões (mesmo no site da VMWare) que recomendam a instalação das ferramentas open-vm em vez das ferramentas VMWare.

yum install open-vm-tools

Existem algumas ressalvas, 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 é exibida no vSphere, ela mostra o "?" cinza mas reconhece que as ferramentas estão sendo executadas e mostra o endereço IP e o SO em execução, bem como a exibição "Executando (de terceiros / independente)".

Espero que isso ajude alguém. Eu passei dois dias nisso, e finalmente encontrei esta resposta, e funcionou para mim, rodar o ESXi 5.1 e vCenter com o CentOS 7.2 como o convidado.

    
por 04.08.2018 / 04:38
0

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

Para fornecer uma solução para o problema, A razão para o problema é que o kernel que está instalado é antigo e o kernel-devel tem uma atualização no repositório. Portanto, a instalação do kernel-devel instala o código-fonte de um kernel mais novo e, portanto, o script de configuração de ferramentas do vmware não encontra a origem. Existem duas soluções possíveis.

  1. Atualize o kernel para que tanto o kernel quanto 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 do vmware.

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

    sudo yum install "kernel-devel-uname-r == $(uname -r)"
por 01.09.2018 / 14:57
0

Isto é o que funcionou para mim em uma instalação minimal-Centos:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
    
por 30.09.2018 / 12:08

Tags