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ą.


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

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)"

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


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

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.


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*

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.


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)"

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.