Не удалось установить VIrtualbox, `" Определить KERN_DIR = <directory> "` - установить Virtual Box в Debian?

Я получаю эту ошибку:

  

Makefile: 181: *** Ошибка: невозможно найти источники вашего текущего ядра Linux. Укажите KERN_DIR = и снова запустите Make. Стоп.

В основном я делаю:

$ sudo /etc/init.d/vboxdrv setup
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-573.18.1.el6.x86_64

Building the main Guest Additions module                   [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)

И ошибка:

  

Makefile: 181: *** Ошибка: невозможно найти источники вашего текущего ядра Linux. Укажите KERN_DIR = и снова запустите Make. Стоп

Что это за ошибка и как ее исправить?

38 голосов | спросил hhh 3 62012vEurope/Moscow11bEurope/MoscowSat, 03 Nov 2012 21:06:32 +0400 2012, 21:06:32

7 ответов


35

Убедитесь, что вы устанавливаете пакет заголовков ядра.

http://www.cyberciti.biz/faq/howto-install-kernel-headers -package

Make sure you have updated version

Type the following command
$ sudo apt-get update

OR as root user enter:
# apt-get update

Search for kernel version (optional)

Type the following command:
$ apt-cache search linux-headers-$(uname -r)

Install linux-header package under Debina or Ubuntu Linux

Type the following command:
$ sudo apt-get install linux-headers-$(uname -r)

OR as root user:
# apt-get install linux-headers-$(uname -r)

EDIT:

Мне просто нужно установить его также на моем собственном сервере и получить ту же ошибку при попытке использовать виртуальный бокс в репозиториях debian. Я пошел вперед и добавил репозиторий VirtualBox и установил оттуда. Это лучше, потому что они более современные.

Как root

$ nano /etc/apt/sources.list 

Добавьте строку ниже для сжатия

deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free

Затем добавьте открытый ключ Oracle для apt-secure

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

затем запустите обновление и установите последнюю версию 4.2

apt-get update
apt-get install virtualbox-4.2

Установите пакет dkms, чтобы убедиться, что модули ядра хоста VirtualBox обновлены

apt-get install dkms

Должно быть хорошо идти. Получил эти инструкции с сайта VirtualBox для Linux, который, похоже, сейчас отсутствует, но ссылка https://www.virtualbox.org/вики /Linux_Downloads

ответил Brandon 3 62012vEurope/Moscow11bEurope/MoscowSat, 03 Nov 2012 21:38:30 +0400 2012, 21:38:30
29

Как исправить это для Fedora /CentOS

Сначала убедитесь, что установленные пакеты (особенно ядро) обновлены:

$ sudo yum update     

Если он обновляет версию ядра, вам придется перезапустить, поэтому uname -r соответствует имени каталога в /usr/src/kernels/. Тогда

$ sudo yum install kernel-devel gcc
$ echo export KERN_DIR=/usr/src/kernels/`uname -r` >> ~/.bashrc
$ source ~/.bashrc     # to set the variable in your current shell
$ sudo echo $KERN_DIR  # verify the value is set
$ sudo ls $KERN_DIR    # verify the directory exists 

После этого компиляция модулей ядра VirtualBox должна работать без проблем.

Источники:

ответил user11153 19 J000000Saturday14 2014, 16:20:11
2

@hhh Вы должны искать только linux-headers и найти подходящую для своей архитектуры. В моем случае:

# aptitude search linux-headers      
v   linux-headers                                                       -                                                                              
p   linux-headers-2.6-amd64                                             - Header files for Linux amd64 configuration (dummy package)                   
p   linux-headers-3.2.0-4-all                                           - All header files for Linux 3.2 (meta-package)                                
p   linux-headers-3.2.0-4-all-amd64                                     - All header files for Linux 3.2 (meta-package)                                
i A linux-headers-3.2.0-4-amd64                                         - Header files for Linux 3.2.0-4-amd64                                         
i A linux-headers-3.2.0-4-common                                        - Common header files for Linux 3.2.0-4                                        
p   linux-headers-3.2.0-4-common-rt                                     - Common header files for Linux 3.2.0-4-rt                                     
p   linux-headers-3.2.0-4-rt-amd64                                      - Header files for Linux 3.2.0-4-rt-amd64                                      
i   linux-headers-amd64                                                 - Header files for Linux amd64 configuration (meta-package)                    
p   linux-headers-rt-amd64                                              - Header files for Linux rt-amd64 configuration (meta-package)

Итак, в моем случае у меня 64-битная архитектура, мне нужно установить linux-headers-amd64.

Другое дело: apt-get add не существует. Заменить apt-get на apt-key.

ответил Adrien Giboire 28 Maypm13 2013, 22:05:47
1

Try:

yum install kernel* dkms gcc

Тогда

yum install kernel-uek-devel

Затем перезагрузите компьютер

ответил Carlos 8 J0000006Europe/Moscow 2014, 06:10:33
1

У меня была ошибка KERN_DIR в CentOS. Просмотрел сценарий установки оболочки и обнаружил, что он устанавливает KERN_DIR в /usr /src /kernels. Затем «uname -r» показывает, что я запускал более низкую версию ядра ... чем исходный код в /usr /src /kernels.

Я посмотрел /boot/grub/menu.lst ... и подтвердил несоответствие ядра. Weird.

Итак, исправление было ... «yum -y update kernel», а затем перезагрузиться. Затем были установлены инструменты VMWare.

ответил user513000 23 +03002015-10-23T05:03:00+03:00312015bEurope/MoscowFri, 23 Oct 2015 05:03:00 +0300 2015, 05:03:00
0

Ошибка означает, что vboxdrv /vboxadd не может найти ваши источники ядра.

Сценарий ожидает, что папка /lib/modules/$(uname -r)/build указывает на /usr/src/kernels/$(uname -r), который должен иметь Makefile, где он может выполнить задачу kernelrelease, поэтому он может сравниться с текущей установленной версией ядра (uname -r)

Итак, если эта команда не выполняется:

make -C /usr/src/kernels/$(uname -r)/build kernelrelease

вы должны установить заголовки Linux:

sudo apt-get install linux-headers-$(uname -r)

Для получения дополнительной информации, пожалуйста, проверьте сообщение .

ответил kenorb 8 J0000006Europe/Moscow 2016, 19:03:37
0

Для любой ОС вам необходимо убедиться, что все необходимые пакеты установлены. В моем случае на Debian мне не хватало пакетов dkms и linux-headers-generic.

#apt-get install dkms build-essential linux-headers-generic linux-headers-$(uname -r)

Подробные инструкции см. в этом форуме форума VirtualBox .

ответил site 22 J0000006Europe/Moscow 2016, 14:47:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132