Directorio de kernel vacío pero los encabezados de kernel están instalados

19

Host - Windows 7

Invitado - CentOS

Estoy tratando de instalar kernel-headersusando yumya que durante la instalación vmware-toolsrecibo un mensaje pidiendo la ruta a los archivos de encabezado del núcleo para 3.10.0-229.7.2.e17.x86_64 .

La ejecución yum install kernel-headersdevuelve el paquete kernel-headers-3.10.0-229.7.2.e17.x86_64 ya instalado y la última versión . Pero el directorio /usr/src/kernelsestá vacío.

¿Están instalados los encabezados del kernel en otro lugar? ¿O debería pedir yuminstalar algo más?

Ruta proporcionada a vmware-tools para encabezados 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]

Proporcionar la ruta /usr/include/linuxda la misma respuesta nuevamente pero con "" reemplazado por la ruta provista.

Kvothe
fuente
1
verificar la salida de rpm -ql kernel-headers; Creo que pone archivos en / usr / include / linux, pero puede que esté desactualizado. Sería bueno si pudiera indicar qué ruta le da al instalador de vmware-tools y también qué informa.
Jeff Schaller

Respuestas:

8

El paquete correcto para instalar todas las dependencias necesarias para construir módulos del núcleo es kernel-devel(consulte la documentación de CentOS para obtener más información).

Los encabezados no están instalados /usr/src/kernels, sino que están instalados en varios directorios a continuación /usr/include(la ubicación predeterminada para los archivos de encabezado C). Puede enumerar el contenido del kernel-headerspaquete que instaló usando:

rpm -ql kernel-headers
mjturner
fuente
Eso fue todo. Me llegué a la página anterior, pero malinterpretado como "si usted no necesita la plena utilización de fuentes del núcleo-devel". Gracias
Kvothe
23

Tuve el mismo problema Después de mucho googlear, esta solución funcionó para mí. Primero determina la versión de kernel instalada y luego usa esa versión exacta para instalar el paquete de encabezado de kernel.

sudo yum install "kernel-devel-uname-r == $(uname -r)"
MarkAu
fuente
Esto funcionó en una configuración de Surface Book y VMWare.
ThinkCode
Funciona en centos 7, pasé más de dos horas antes ... ¡Gracias!
h0x91B
Finalmente ... Trabajé en CentOS7. Muchas gracias
VM_AI
Funcionó. Gracias. No estoy seguro si los encabezados del núcleo forman parte de este desarrollo.
Murali Mopuru
4

En CentOS, la versión 7 que figura a continuación es la ruta para los encabezados del núcleo.

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

Después de ejecutarse yum install kernel-headersdos veces (actualizado a la última versión), el problema se solucionó. Asegúrese de que la versión del kernel en ejecución y la versión de los encabezados del kernel sean las mismas. Mi versión del kernel es3.10.0-327.36.2.el7.x86_64

Shanraj
fuente
Respuestas tan directas como esta merecen más votos.
WesternGun
2

Tuve el mismo problema y la solución anterior no me funcionó. Podría ser la compilación de CentOS 7 que estoy usando.
Esto es lo que resolvió el problema para mí ...

instalar encabezados de kernel

yum -y install kernel-devel

establecer un enlace simbólico para que las herramientas de vmware puedan encontrar la versión.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
patrick fogarty
fuente
2

Instalé el paquete kernel-devel, pero resulta que los encabezados eran para una versión de kernel diferente a la que se estaba ejecutando en mi instancia. Para solucionar el problema, corrí

sudo yum upgrade

y reiniciado, y luego vmware-tools instalado sin problemas.

sffc
fuente
2

He tenido exactamente el mismo problema.

En mi caso, solo tuve que eliminar kernel-dev * e instalarlo nuevamente:

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

Creo que encontré una solución para esto.

He estado leyendo sugerencias (incluso en el sitio web de VMWare) que recomiendan instalar open-vm-tools en lugar de las herramientas de VMWare.

yum install open-vm-tools

Hay algunas advertencias, por supuesto, después de la instalación, recuerde reiniciar la máquina virtual.

Además, ahora en lugar de la marca de verificación verde que generalmente se muestra en vSphere, en su lugar, se muestra el gris "?" pero reconoce que las herramientas se están ejecutando y muestra la dirección IP y el sistema operativo que se está ejecutando, así como la pantalla "Ejecutando (tercero / independiente)".

Espero que esto ayude a alguien. Pasé dos días en esto, y finalmente encontré esta respuesta, y funcionó para mí, ejecutando ESXi 5.1 y vCenter con CentOS 7.2 como sistema operativo invitado.

Eric
fuente
open-vm-tools no es realmente una alternativa a las herramientas vmware en ciertos casos. p.ej. open-vm-tools no admite hgfs para compartir archivos entre invitados y host. Vmware admite hgfs en centos 7.
Gaurav
0

Para responder a la pregunta, Kernel source se instala en / usr / src / kernels /. kernel-devel es el paquete para instalar.

Para proporcionar una solución al problema, la razón del problema es que el kernel que está instalado es antiguo y kernel-devel tiene una actualización en el repositorio. Entonces, la instalación de kernel-devel instala la fuente de un kernel más nuevo y, por lo tanto, el script de configuración de vmware tools no encuentra la fuente. Hay dos posibles soluciones.

  1. Actualice el kernel para que tanto kernel como kernel-devel sean nuevos.

    sudo yum upgrade

Reinicie para que se cargue el nuevo kernel y luego ejecute el script de configuración de vmware tools.

  1. Actualizar el kernel no siempre es factible. Si ese es el caso, instale la versión de kernel-devel que sea la misma que la versión de kernel instalada.

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

Esto es lo que funcionó para mí en una nueva instalación minimalista de Centos:

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