web-dev-qa-db-fra.com

Impossible d’installer VIrtualbox, `" Spécifiez KERN_DIR = <répertoire> "` - installation de la boîte virtuelle sur Debian?

Je reçois cette erreur:

Makefile: 181: *** Erreur: impossible de trouver les sources de votre noyau Linux actuel. Spécifiez KERN_DIR = et exécutez à nouveau Make. Arrêtez.

Fondamentalement je fais:

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

Et l'erreur est la suivante:

Makefile: 181: *** Erreur: impossible de trouver les sources de votre noyau Linux actuel. Spécifiez KERN_DIR = et exécutez à nouveau Make. Arrêtez

Quelle est cette erreur et comment y remédier?

38
hhh

Assurez-vous d’installer le paquetage des en-têtes de noyau.

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:

Je dois juste l’installer également sur mon propre serveur et avoir la même erreur en essayant d’utiliser la virtualbox dans le dépôt Debian. Je suis allé de l'avant et ajouté VirtualBox repo et installé à partir de là. C'est mieux car ils sont plus à jour.

En tant que root

$ nano /etc/apt/sources.list 

Ajouter la ligne ci-dessous pour squeeze

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

Ajoutez ensuite la clé publique Oracle pour apt-secure

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

puis lancez update et d'installer la dernière version 4.2

apt-get update
apt-get install virtualbox-4.2

Installez le package dkms pour vous assurer que les modules du noyau de VirtualBox Host sont à jour.

apt-get install dkms

Devrait être bon pour aller. J'ai reçu ces instructions sur le site Web de VirtualBox pour Linux qui semble être en panne pour le moment, mais le lien est https://www.virtualbox.org/wiki/Linux_Downloads

35
Brandon

Comment résoudre ce problème pour Fedora/CentOS

Tout d’abord, assurez-vous que vos paquets installés (en particulier le noyau) sont à jour:

$ Sudo yum update     

S'il met à jour la version du noyau, vous devrez redémarrer pour que uname -r corresponde au nom du répertoire dans /usr/src/kernels/. ensuite

$ 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 

Après cette compilation, les modules du noyau VirtualBox devraient fonctionner sans aucun problème.

Sources:

29
user11153

@hhh Vous devriez rechercher uniquement linux-headers et trouver celui qui convient à votre architecture. Dans mon cas:

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

Donc, dans mon cas, j'ai une architecture 64 bits, je dois installer linux-headers-AMD64.

Une autre chose est que apt-get add n'existe pas. Remplacez apt-get par apt-key.

2
Adrien

Essayer:

yum install kernel* dkms gcc

Ensuite

yum install kernel-uek-devel

Puis redémarrez votre machine

1
Carlos

J'ai eu l'erreur KERN_DIR dans CentOS. A examiné le script d'installation du shell et a constaté qu'il définit KERN_DIR sur/usr/src/kernels. Ensuite, "uname -r" a montré que j’exécutais une version inférieure du noyau ... que le code source sous/usr/src/kernels.

J'ai regardé /boot/grub/menu.lst ... et confirmé l'inadéquation du noyau. Bizarre.

Donc, correctif était ... "noyau de mise à jour yum -y", puis redémarrez. Les outils VMWare se sont ensuite installés.

1
user513000

Pour tout système d'exploitation, vous devez vous assurer que tous les packages nécessaires sont installés. Dans mon cas sous Debian, il me manquait les paquets dkms et linux-headers-generic.

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

Pour des instructions complètes, consultez cet article Forum de VirtualBox .

0
site

L'erreur signifie que vboxdrv/vboxadd ne peut pas trouver vos sources du noyau.

Le script s'attend à ce que le dossier /lib/modules/$(uname -r)/build pointe sur /usr/src/kernels/$(uname -r), qui doit comporter le fichier Makefile où il peut exécuter la tâche kernelrelease, de sorte qu'il puisse être comparé à la version actuelle du noyau (uname -r).

Donc si cette commande échoue:

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

vous devriez installer les en-têtes Linux en:

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

Pour plus de détails, veuillez vérifier ceci post .

0
kenorb