Pusty katalog jądra, ale nagłówki jądra są zainstalowane

19

Host - Windows 7

Gość - CentOS

Próbuję zainstalować kernel-headersprzy użyciu, yumponieważ podczas instalacji vmware-toolspojawia się komunikat z pytaniem o ścieżkę do plików nagłówków jądra dla wersji 3.10.0-229.7.2.e17.x86_64 .

Uruchamianie yum install kernel-headerszwrotów Pakiet kernel-headers-3.10.0-229.7.2.e17.x86_64 jest już zainstalowany i najnowsza wersja . Ale katalog /usr/src/kernelsjest pusty.

Czy nagłówki jądra są zainstalowane gdzie indziej? Czy powinienem prosić yumo zainstalowanie czegoś innego?

Ścieżka do narzędzi vmware dla nagłówków jądra

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]

Podanie ścieżki /usr/include/linuxdaje tę samą odpowiedź, ale z zastąpieniem „” podaną ścieżką.

Kvothe
źródło
1
sprawdź wyjście rpm -ql kernel-headers; Myślę, że umieszcza pliki w / usr / include / linux, ale mogę być nieaktualny. Byłoby dobrze, gdybyś mógł wskazać ścieżkę do instalatora vmware-tools, a także co zgłasza.
Jeff Schaller

Odpowiedzi:

8

Prawidłowy pakiet do zainstalowania wszystkich wymaganych zależności do budowy modułów jądra to kernel-devel( więcej informacji znajduje się w dokumentacji CentOS ).

Nagłówki nie są instalowane /usr/src/kernels, a raczej są instalowane w kilku katalogach poniżej /usr/include(domyślna lokalizacja plików nagłówka C). Możesz wyświetlić zawartość kernel-headerspakietu, który zainstalowałeś, używając:

rpm -ql kernel-headers
mjturner
źródło
To było to. Ja mam do tej strony wcześniej, ale błędnie zinterpretowali je jako „jeśli nie potrzebujemy pełnego wykorzystania źródło kernel-devel”. Dzięki
Kvothe,
23

Miałem ten sam problem. Po wielu googlingach to rozwiązanie zadziałało dla mnie. Najpierw określa zainstalowaną wersję jądra, a następnie używa tej dokładnej wersji do zainstalowania pakietu nagłówka jądra.

sudo yum install "kernel-devel-uname-r == $(uname -r)"
MarkAu
źródło
To działało w konfiguracji Surface Book i VMWare.
ThinkCode
Działa na centos 7, spędził ponad dwie godziny przed .. Dzięki!
h0x91B
Nareszcie .... Pracowałem na CentOS7.
Wielkie
Zadziałało. Dzięki. Nie jestem pewien, czy nagłówki jądra są częścią tego rozwoju.
Murali Mopuru
4

W CentOS wersji 7 podanej poniżej jest ścieżka do nagłówków jądra.

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

Po yum install kernel-headersdwukrotnym uruchomieniu (zaktualizowanym do najnowszego) problem został rozwiązany. Upewnij się, że działająca wersja jądra i wersja nagłówków jądra są takie same. Moja wersja jądra to3.10.0-327.36.2.el7.x86_64

Shanraj
źródło
Odpowiedzi takie tak proste, jak ta, zasługują na więcej głosów.
WesternGun
2

Miałem ten sam problem i powyższe rozwiązanie nie działało dla mnie. Może to być wersja CentOS 7, której używam.
Oto, co rozwiązało problem dla mnie ...

zainstaluj nagłówki jądra

yum -y install kernel-devel

ustaw link symboliczny, aby narzędzia vmware mogły znaleźć wersję. 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
źródło
2

Zainstalowałem pakiet kernel-devel, ale okazuje się, że nagłówki dotyczyły innej wersji jądra niż ta, która działała w mojej instancji. Aby rozwiązać problem, pobiegłem

sudo yum upgrade

i ponownie uruchomione, a następnie zainstalowane bezproblemowo narzędzia vmware.

sffc
źródło
2

Miałem dokładnie ten sam problem.

W moim przypadku po prostu musiałem usunąć kernel-dev * i zainstalować go ponownie:

yum -y remove kernel-devel*
yum -y install kernel-devel*
AxldenieD
źródło
0

Myślę, że znalazłem obejście tego problemu.

Czytałem sugestie (nawet na stronie VMWare), które zalecają instalowanie narzędzi open-vm w przeciwieństwie do narzędzi VMWare.

yum install open-vm-tools

Oczywiście są pewne zastrzeżenia, po instalacji pamiętaj o ponownym uruchomieniu maszyny wirtualnej.

Ponadto teraz zamiast zielonego znacznika wyboru, który zwykle pojawia się w vSphere, zamiast tego wyświetla się szary „?” ale rozpoznaje uruchomione narzędzia i pokazuje adres IP oraz działający system operacyjny, a także ekran „Działający (niezależny / niezależny)”.

Mam nadzieję, że to komuś pomoże. Spędziłem nad tym dwa dni i w końcu znalazłem tę odpowiedź, która zadziałała dla mnie, uruchamiając ESXi 5.1 i vCenter z CentOS 7.2 jako gościem.

Eric
źródło
W niektórych przypadkach open-vm-tools nie jest tak naprawdę alternatywą dla narzędzi vmware. na przykład. open-vm-tools nie obsługuje hgfs do udostępniania plików między gościem a hostem. Vmware obsługuje hgfs na centos 7.
Gaurav
0

Aby odpowiedzieć na pytanie, źródło jądra jest instalowane pod / usr / src / kernels /. kernel-devel to pakiet do zainstalowania.

Aby zapewnić rozwiązanie problemu, Przyczyną problemu jest to, że zainstalowane jądro jest stare, a jądro-devel ma aktualizację w repozytorium. Tak więc instalacja kernel-devel instaluje źródło nowszego jądra, a zatem skrypt konfiguracyjny narzędzi vmware nie znajduje źródła. Istnieją dwa możliwe rozwiązania.

  1. Zaktualizuj jądro, aby zarówno jądro, jak i jądro-devel były nowe.

    sudo yum upgrade

Uruchom ponownie, aby załadować nowe jądro, a następnie uruchom skrypt konfiguracyjny narzędzi vmware.

  1. Aktualizacja jądra nie zawsze jest możliwa. W takim przypadku zainstaluj wersję jądra, która jest taka sama jak zainstalowana wersja jądra.

    sudo yum install "kernel-devel-uname-r == $(uname -r)"
Gauraw
źródło
0

Oto, co działało dla mnie przy świeżej instalacji minimal-Centos:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
Carsten
źródło