Пустой каталог ядра, но установлены заголовки ядра

19

Хост - Windows 7

Гость - CentOS

Я пытаюсь установить kernel-headersс помощью, yumтак как во время установки vmware-toolsя получаю сообщение с просьбой указать путь к заголовочным файлам ядра для 3.10.0-229.7.2.e17.x86_64 .

Запуск yum install kernel-headersвозвращает пакет kernel-headers-3.10.0-229.7.2.e17.x86_64, который уже установлен, и последнюю версию . Но каталог /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, а также что он сообщает.
Джефф Шаллер

Ответы:

8

Правильный пакет для установки всех необходимых зависимостей для сборки модулей ядра kernel-devel(см. Документацию CentOS для получения дополнительной информации).

Заголовки не установлены /usr/src/kernels, скорее, они установлены в нескольких каталогах ниже /usr/include(расположение по умолчанию для заголовочных файлов C). Вы можете перечислить содержимое kernel-headersпакета, который вы установили, используя:

rpm -ql kernel-headers
mjturner
источник
Вот и все. Я получил эту страницу ранее , но неправильно это как «если вы действительно нуждаетесь в полной мере использовать источник ядра-Devel». Спасибо
Kvothe
23

У меня была такая же проблема. После долгих поисков это решение сработало для меня. Сначала он определяет версию установленного ядра, а затем использует эту точную версию для установки пакета заголовка ядра.

sudo yum install "kernel-devel-uname-r == $(uname -r)"
Markau
источник
Это работало над конфигурацией Surface Book & VMWare.
ThinkCode
Работает на Centos 7, провел более двух часов назад .. Спасибо!
h0x91B
Наконец-то .... Работал на CentOS7. Большое спасибо
VM_AI
Это сработало. Благодарю. Не уверен, что заголовки ядра являются частью этого уровня.
Мурали Мопуру
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

Shanraj
источник
Ответы такие простые, как этот, заслуживают большего количества голосов.
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 без суеты.

sffc
источник
2

У меня была точно такая же проблема.

В моем случае мне просто нужно было удалить kernel-dev * и установить его снова:

yum -y remove kernel-devel*
yum -y install kernel-devel*
AxldenieD
источник
0

Я считаю, что я нашел обходной путь для этого.

Я читал предложения (даже на веб-сайте VMWare), в которых рекомендуется устанавливать open-vm-tools, а не инструменты VMWare.

yum install open-vm-tools

Конечно, есть некоторые предостережения, после установки не забудьте перезагрузить виртуальную машину.

Кроме того, теперь вместо зеленой галочки, которая обычно отображается в vSphere, вместо нее отображается серый «?» но распознает, что инструменты работают, и показывает IP-адрес и ОС, которая работает, а также экран «Выполняется (сторонний / независимый)».

Надеюсь, это кому-нибудь поможет. Я потратил на это два дня и, наконец, нашел этот ответ, и он мне помог, запустив ESXi 5.1 и vCenter с CentOS 7.2 в качестве гостевой ОС.

Эрик
источник
open-vm-tools в некоторых случаях не является альтернативой инструментам vmware. например. open-vm-tools не поддерживает hgfs для обмена файлами между гостем и хостом. Vmware поддерживает hgfs на centos 7.
Gaurav
0

Чтобы ответить на этот вопрос, исходный код ядра устанавливается в / usr / src / kernels /. kernel-devel - это пакет для установки.

Чтобы обеспечить решение проблемы, причиной проблемы является то, что ядро, которое установлено, является старым, а ядро-devel имеет обновление в хранилище. Таким образом, установка kernel-devel устанавливает источник более нового ядра, и, следовательно, скрипт конфигурации vmware tools не находит источник. Есть два возможных решения.

  1. Обновите ядро ​​так, чтобы и kernel, и kernel-devel были новыми.

    sudo yum upgrade

Перезагрузитесь, чтобы загрузить новое ядро, а затем запустите скрипт конфигурации vmware tools.

  1. Обновление ядра не всегда возможно. В этом случае установите версию kernel-devel, которая совпадает с установленной версией ядра.

    sudo yum install "kernel-devel-uname-r == $(uname -r)"
Gaurav
источник
0

Вот что сработало для меня на новой установке с минимальным Centos:

sudo yum update
sudo yum upgrade
sudo yum install "kernel-devel-uname-r == $(uname -r)" gcc
./vmware-install.pl
Карстен
источник