Kann VIrtualbox nicht installieren, `" KERN_DIR = <Verzeichnis> angeben "` - Virtual Box unter Debian installieren?


38

Ich erhalte diesen Fehler:

Makefile: 181: *** Fehler: Die Quellen Ihres aktuellen Linux-Kernels konnten nicht gefunden werden. Geben Sie KERN_DIR = an und führen Sie Make erneut aus. Halt.

Grundsätzlich mache ich:

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

Und der Fehler ist:

Makefile: 181: *** Fehler: Die Quellen Ihres aktuellen Linux-Kernels konnten nicht gefunden werden. Geben Sie KERN_DIR = an und führen Sie Make erneut aus. Halt

Was ist dieser Fehler und wie kann er behoben werden?

Antworten:


34

Stellen Sie sicher, dass Sie das Kernel-Header-Paket installieren.

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)

BEARBEITEN:

Ich muss es nur zufällig auch auf meinem eigenen Server installieren und bekam den gleichen Fehler, als ich versuchte, die Virtualbox in Debian-Repos zu verwenden. Ich habe VirtualBox repo hinzugefügt und von dort aus installiert. Das ist besser, weil sie aktueller sind.

Als Wurzel

$ nano /etc/apt/sources.list 

Fügen Sie die Zeile unten zum Drücken hinzu

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

Fügen Sie dann den öffentlichen Oracle-Schlüssel für apt-secure hinzu

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

Führen Sie dann das Update aus und installieren Sie die neueste Version 4.2

apt-get update
apt-get install virtualbox-4.2

Installieren Sie das dkms-Paket, um sicherzustellen, dass die Kernelmodule des VirtualBox-Hosts auf dem neuesten Stand sind

apt-get install dkms

Sollte gut zu gehen sein. Ich habe diese Anweisungen von der VirtualBox-Website für Linux erhalten, die derzeit nicht verfügbar zu sein scheint. Der Link lautet jedoch https://www.virtualbox.org/wiki/Linux_Downloads


2
Der Befehl apt-cache search linux-headers-$(uname -r)gibt nichts für mich zurück, obwohl ich die obigen Befehle ausgeführt habe.
hhh

@hhh Ich denke, diese Antwort ist gut und sollte akzeptiert werden. Ich weiß nicht, was Sie mit diesem ** Linux-Header - $ (uname -r) ** wollen. Bitte erklären Sie oder öffnen Sie eine neue Frage. Ich denke dieser Thread ist beendet.
Léo Léopold Hertz 준영

@hhh Einige Distributionen haben nicht die Repositories des Linux-Headers. Sie können dies überprüfen: computingforgeeks.com/2015/08/…
warmblue

Keine dieser Antworten hat bei mir funktioniert, da die von mir heruntergeladene Distribution einen älteren Kernel als den in Repos verfügbaren hatte. Ich musste laufen apt-get update && apt-get -y dist-upgrade.
Plato

29

Wie man dies für Fedora / CentOS behebt

Stellen Sie zunächst sicher, dass Ihre installierten Pakete (insbesondere der Kernel) auf dem neuesten Stand sind:

$ sudo yum update     

Wenn die Kernel-Version aktualisiert wird, müssen Sie neu starten, damit uname -rder Verzeichnisname in übereinstimmt /usr/src/kernels/. Dann

$ 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 

Nach diesem Kompilieren sollten die VirtualBox-Kernel-Module problemlos funktionieren.

Quellen:


1
Nachdem Sie die obigen Schritte ausgeführt haben, mussten Sie das Gastsystem neu starten, bevor Sie die vbox-Gastzusätze erneut installieren konnten.
Reddy

Dies war das richtige Paket für die Installation. Das erneute Kompilieren der Kernelmodule erfordert jedoch Root-Berechtigungen. Wenn Sie etwas im Root-Verzeichnis ausführen, gehen Ihre Umgebungsvariablen (einschließlich KERN_DIR) verloren. Ich habe stattdessen sudo -sgefolgt, export KERN_DIR=/usr/src/kernels/XXXaber ich bin sicher, es gibt eine bessere Möglichkeit, Variablen im
Sudo-

In meinem Fall (CentOS 6.7) ist [uname -r] [2.6.32-573.el6.x86_64], aber [ls / usr / src / kernels /] gibt [2.6.32-573.22.1.el6.x86_64] aus.
Seien Sie

1
source ~/.bashrcum KERN_DIR in der aktuellen Umgebung festzulegen, ohne neu starten zu müssen.
Justin

Ich habe Fehler, dass es kein Verzeichnis ist. Beachten Sie, dass am Ende ein Schrägstrich erforderlich ist. Echo export KERN_DIR = / usr / src / kernels / uname -r/ >> ~ / .bashrc
Artjom Kurapov

2

@hhh Du solltest nur linux-headersdas Gute für deine Architektur suchen und finden. In meinem Fall:

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

In meinem Fall habe ich eine 64-Bit-Architektur, die ich installieren muss linux-headers-amd64.

Eine andere Sache gibt apt-get addes nicht. Ersetzen apt-getdurch apt-key.


2

Ich hatte den KERN_DIR-Fehler in CentOS. Überprüfte das Shell-Installationsskript und stellte fest, dass KERN_DIR auf / usr / src / kernels festgelegt ist. Dann hat "uname -r" gezeigt, dass ich eine niedrigere Version des Kernels ausgeführt habe ... als den Quellcode unter / usr / src / kernels.

Ich schaute auf /boot/grub/menu.lst ... und bestätigte die Nichtübereinstimmung mit dem Kernel. Seltsam.

Also wurde behoben ... "yum -y update kernel", dann neu gestartet. Dann wurden die VMWare-Tools installiert.


1

Versuchen:

yum install kernel* dkms gcc

Dann

yum install kernel-uek-devel

Starten Sie dann Ihren Computer neu


Debian verwendet apt-get, nicht yum.
RobinJ

0

Die Fehler bedeutet , dass vboxdrv/ vboxaddnicht Ihre Kernelquellen finden.

Das Skript erwartet, dass der /lib/modules/$(uname -r)/buildOrdner auf /usr/src/kernels/$(uname -r)das Makefile verweist, in dem es die kernelreleaseAufgabe ausführen kann , damit es mit Ihrer aktuell installierten Kernel-Version ( uname -r) verglichen werden kann .

Wenn dieser Befehl fehlschlägt:

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

Sie sollten die Linux-Header folgendermaßen installieren:

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

Weitere Details finden Sie in diesem Beitrag .


0

Für jedes Betriebssystem müssen Sie sicherstellen, dass alle benötigten Pakete installiert sind. In meinem Debian-Fall fehlten mir die Pakete dkms und linux-headers-generic.

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

Eine vollständige Anleitung finden Sie in diesem VirtualBox-Forumsbeitrag .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.