빈 커널 디렉토리이지만 커널 헤더가 설치되어 있습니다.


19

호스트 -Windows 7

게스트 -CentOS

설치 kernel-headers하는 yum동안 3.10.0-229.7.2.e17.x86_64의 커널 헤더 파일 경로를vmware-tools 묻는 메시지가 표시되어 사용하여 설치하려고합니다 .

실행하면 패키지 kernel-headers-3.10.0-229.7.2.e17.x86_64가 이미 설치되어 있고 최신 버전을yum install kernel-headers 반환합니다 . 그러나 디렉토리 는 비어 있습니다./usr/src/kernels

커널 헤더가 다른 곳에 설치되어 있습니까? 아니면 yum다른 것을 설치 하도록 요청해야 합니까?

커널 헤더 용 vmware-tools에 제공된 경로

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]

경로를 /usr/include/linux제공하면 동일한 응답이 다시 제공되지만 ""는 제공된 경로로 대체됩니다.


1
rpm -ql kernel-headers; 의 출력을 확인하십시오 . 파일을 / usr / include / linux에 넣었다고 생각하지만 구식이 아닐 수도 있습니다. vmware-tools 설치 프로그램에 제공 한 경로와 다시보고하는 내용을 표시 할 수 있으면 좋을 것입니다.
— Jeff Schaller

답변:


8

커널 모듈을 빌드하는 데 필요한 모든 종속성을 설치하는 올바른 패키지는 kernel-devel(자세한 내용은 CentOS 설명서 를 참조하십시오).

헤더는에 설치되지 /usr/src/kernels않고 아래의 여러 디렉토리 /usr/include(C 헤더 파일의 기본 위치)에 설치됩니다. kernel-headers다음을 사용하여 설치 한 패키지 의 내용을 나열 할 수 있습니다 .

rpm -ql kernel-headers

그거였다. 나는 그 페이지에 일찍 도착했지만 " 전체 소스 가 필요한 경우 kernel-devel"이라고 잘못 읽었다 . 감사합니다
— Kvothe

23

나는 같은 문제가 있었다. 많은 인터넷 검색 후이 솔루션은 저에게 효과적이었습니다. 먼저 설치된 커널 버전을 확인한 다음 정확한 버전을 사용하여 커널 헤더 패키지를 설치합니다.

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

이것은 Surface Book & VMWare 구성에서 작동했습니다.
— ThinkCode

centos 7에서 작동합니다. 2 시간 전에 보냈습니다. 감사합니다!
— h0x91B

마지막으로 ... CentOS7에서 작업했습니다. 감사합니다
— VM_AI

효과가있었습니다. 감사. 커널 헤더가이 devel의 일부인지 확실하지 않습니다.
— Murali Mopuru

4

CentOS 버전 7에서 커널 헤더 경로는 다음과 같습니다.

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

yum install kernel-headers두 번 실행 한 후 (최신 업데이트) 문제가 해결되었습니다. 실행중인 커널 버전과 커널 헤더 버전이 동일한 지 확인하십시오. 내 커널 버전은3.10.0-327.36.2.el7.x86_64


이와 같이 너무 간단한 답변은 더 많은 투표를 받아야합니다.
— WesternGun

2

나는 같은 문제가 있었고 위의 해결책이 효과가 없었다. 내가 사용하는 CentOS 7의 빌드 일 수 있습니다.
여기 나를 위해 문제를 해결 한 것이 있습니다 ...

커널 헤더 설치

yum -y install kernel-devel

vmware 도구가 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

kernel-devel 패키지를 설치했지만 헤더가 인스턴스에서 실행되는 것과 다른 커널 버전에 대한 것으로 나타났습니다. 문제를 해결하기 위해

sudo yum upgrade

다시 부팅 한 다음 vmware-tools를 설치합니다.


2

나는 정확히 같은 문제가 있었다.

내 경우에는 방금 kernel-dev *를 제거하고 다시 설치해야했습니다.

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

0

나는 이것에 대한 해결책을 찾았다 고 생각합니다.

VMWare 도구와 달리 open-vm-tools 설치를 권장하는 제안을 읽고 있습니다 (VMWare 웹 사이트에서도).

yum install open-vm-tools

물론 설치 후 가상 시스템을 다시 부팅해야합니다.

또한 일반적으로 vSphere에 표시되는 녹색 확인 표시 대신 회색 "?"가 표시됩니다. 그러나 도구가 실행 중임을 인식하고 "실행 중 (타사 / 독립)"디스플레이뿐만 아니라 실행중인 IP 주소 및 OS를 표시합니다.

희망적으로 이것은 누군가를 도울 것입니다. 나는 이것에 이틀을 보냈고 마침내이 대답을 찾았고 CentOS 7.2를 게스트 OS로 사용하여 ESXi 5.1 및 vCenter를 실행하면서 나에게 효과적이었습니다.


open-vm-tools는 특정 경우 vmware 도구의 대안이 아닙니다. 예. open-vm-tools는 게스트와 호스트간에 파일을 공유하기 위해 hgf를 지원하지 않습니다. Vmware는 centos 7에서 hgf를 지원합니다.
— Gaurav

0

질문에 대답하기 위해 커널 소스는 / usr / src / kernels /에 설치됩니다. kernel-devel은 설치할 패키지입니다.

문제에 대한 해결책을 제공하기 위해, 문제의 원인은 설치된 커널이 오래되었고 커널 개발에 저장소에 업데이트가 있기 때문입니다. 따라서 kernel-devel을 설치하면 최신 커널 소스가 설치되므로 vmware 도구 구성 스크립트가 소스를 찾지 못합니다. 두 가지 가능한 솔루션이 있습니다.

  1. 커널과 커널 개발이 모두 새롭도록 커널을 업데이트하십시오.

    sudo yum upgrade

새 커널이로드되도록 재부팅 한 다음 vmware 도구 구성 스크립트를 실행하십시오.

  1. 커널 업데이트가 항상 가능한 것은 아닙니다. 이 경우 설치된 커널 버전과 동일한 커널 개발 버전을 설치하십시오.

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

0

이것이 새로운 Minient-Centos 설치에서 나를 위해 일한 것입니다.

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.