VIrtualbox yüklenemiyor, `“ KERN_DIR = <directory> ”belirtin` - Sanal Kutuyu Debian'a mı yüklüyorsunuz?


38

Bu hatayı alıyorum:

Makefile: 181: *** Hata: Geçerli Linux çekirdeğinin kaynaklarını bulamıyor. KERN_DIR = değerini belirtin ve tekrar Make komutunu çalıştırın. Dur.

Temelde yapıyorum:

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

Ve hata:

Makefile: 181: *** Hata: Geçerli Linux çekirdeğinin kaynaklarını bulamıyor. KERN_DIR = değerini belirtin ve tekrar Make komutunu çalıştırın. Dur

Bu hata nedir ve nasıl düzeltilir?

Yanıtlar:


34

Çekirdek Başlıkları Paketi'ni yüklediğinizden emin olun.

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)

DÜZENLE:

Yalnızca kendi sunucuma da yüklemem gerekiyor ve sanal kutuyu debian depolarında kullanmaya çalışırken de aynı hatayı gördüm. Devam ettim ve VirtualBox deposunu ekledim ve oradan yükledim. Bu daha iyi çünkü daha günceller.

Kök olarak

$ nano /etc/apt/sources.list 

Sıkmak için aşağıya çizgi ekleyin

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

Ardından apt-secure için Oracle ortak anahtarını ekleyin.

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

daha sonra güncellemeyi çalıştırın ve en son 4.2'yi yüklemek için

apt-get update
apt-get install virtualbox-4.2

VirtualBox ana bilgisayar çekirdek modüllerinin güncel olduğundan emin olmak için dkms paketini yükleyin.

apt-get install dkms

Gitmek iyi olmalı. Bu talimatları VirtualBox'ın Linux için hazırladığı ve şu anda kapalı görünen web sitesinden aldım ancak bağlantı https://www.virtualbox.org/wiki/Linux_Downloads


2
apt-cache search linux-headers-$(uname -r)Yukarıdaki komutları yapmış olsam bile komut benim için hiçbir şey döndürmez.
03

@ hhh Bu cevabın iyi olduğunu düşünüyorum ve kabul edilmeli. Bu ne istediğini bilmiyorum ** linux-headers - $ (uname -r) **. Lütfen yeni bir soru açıklayın veya açın. Bence bu konu bitti.
Léo Léopold Hertz 준영

@hhh Bazı dağıtımlarda linux başlığının havuzları yoktur. Bunu kontrol edebilirsiniz: computingforgeeks.com/2015/08/…
warmblue

Bu cevapların hiçbiri benim için işe yaramadı çünkü indirdiğim dağıtım, depolarda bulunanlardan daha eski bir çekirdeğe sahipti. Koşmam gerekiyordu apt-get update && apt-get -y dist-upgrade.
Plato

29

Bunu Fedora / CentOS için nasıl düzeltebilirim?

Öncelikle, kurulu paketlerinizin (özellikle çekirdeğin) güncel olduğundan emin olun:

$ sudo yum update     

Çekirdek sürümünü güncellerse, yeniden başlatmanız gerekir, böylece uname -rdizin adı ile eşleşir /usr/src/kernels/. Sonra

$ 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 

Bu derlemeden sonra VirtualBox çekirdek modülleri sorunsuz çalışmalıdır.

Kaynaklar:


1
Yukarıdaki adımları çalıştırdıktan sonra, vbox konuk eklemelerini yeniden yüklemeden önce misafir sistemini yeniden başlatmak zorunda kaldım.
Reddy,

Bu kurulum doğru pakettir, ancak çekirdek modülleri gereken kök ayrıcalıklarını yeniden derlemek ve root'ta bir şey çalıştırmak ortam değişkenlerinizi kaybedecektir (KERN_DIR dahil). Bunun yerine vermedi sudo -sizledi export KERN_DIR=/usr/src/kernels/XXXama sudo moduna değişkenleri devam etmek daha iyi bir yolu olmadığına emin değilim
Migwell

Benim durumumda (CentOS 6.7) [uname -r] [2.6.32-573.el6.x86_64], ancak [ls / usr / src / kernels /] [2.6.32-573.22.1.el6.x86_64] yazıyor Bu yüzden dikkatli olun ve mevcut mevcut dir ismini kullanın
jnr

1
source ~/.bashrcMevcut ortamda KERN_DIR'ı yeniden başlatmak zorunda kalmadan ayarlamak için.
Justin,

Bir dizinde olmayan hatalar aldım. Sonunda bir eğik çizgi gerektirdiğini unutmayın .. echo export KERN_DIR = / usr / src / çekirdek / uname -r/ >> ~ / .bashrc
Artjom Kurapov 30:16

2

@hhh Yalnızca linux-headersmimariniz için en iyisini aramalı ve bulmalısınız. Benim durumumda:

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

Bu yüzden benim durumumda 64 bit bir mimariye sahip olmalıyım linux-headers-amd64.

Başka bir şey apt-get addvar değil. Değiştir apt-gettarafından apt-key.


2

CentOS'ta KERN_DIR hatası oluştu. Kabuk yükleme komut dosyasını gözden geçirdi ve KERN_DIR'i / usr / src / kernels olarak belirlediğini buldu. Sonra "uname -r", çekirdeğin / usr / src / kernels altındaki kaynak koddan daha düşük bir sürümünü çalıştırdığımı gösteriyor.

/Boot/grub/menu.lst dosyasına baktım ... ve çekirdek uyumsuzluğunu doğruladım. Tuhaf.

Yani düzeltme ... "yum -y güncelleme çekirdeği" idi, sonra yeniden başlat. VMWare araçları daha sonra kuruldu.


1

Deneyin:

yum install kernel* dkms gcc

Sonra

yum install kernel-uek-devel

Ardından makinenizi yeniden başlatın


Debian kullanıyor apt-get, değil yum.
RobinJ

0

Hata , çekirdek kaynaklarınızı bulamıyor vboxdrv/ vboxaddbulamıyor demektir .

Komut dosyası, /lib/modules/$(uname -r)/buildklasörün /usr/src/kernels/$(uname -r)hangi kernelreleasegörevi yürütebileceği Makefile'a sahip olması gerektiğini , bu nedenle yüklü olan çekirdek sürümünüzle ( uname -r) karşılaştırabilir.

Yani bu komut başarısız olursa:

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

Linux başlıklarını şu şekilde yüklemelisiniz:

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

Daha fazla bilgi için, lütfen bu yazıyı kontrol edin .


0

Herhangi bir işletim sistemi için gerekli tüm paketlerin yüklendiğinden emin olmanız gerekir. Debian davamda dkms ve linux-headers-generic paketleri eksikti.

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

Tüm talimatlar için bu VirtualBox forum gönderisine bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.