Ketika saya mengetik perintah service vboxdrv setup
di terminal CentOS 7 saya, saya mendapatkan kesalahan berikut:
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found
Bagaimana saya bisa mengatasi kesalahan ini?
Ketika saya membuka file log dengan mengetik vi /var/log/vbox-install.log
, isinya adalah:
Uninstalling modules from DKMS
removing old DKMS module vboxhost version 5.0.4
------------------------------
Deleting module version: 5.0.4
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS
Creating symlink /var/lib/dkms/vboxhost/5.0.4/source ->
/usr/src/vboxhost-5.0.4
DKMS: add completed.
Failed to install using DKMS, attempting to install without
Makefile:185: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop.
Kesalahan ini terjadi dalam proses menginstal VirtualBox 5.0.4 menggunakan instruksi dari tutorial ini . Untuk meringkas, sejauh ini, saya punya:
vi /etc/yum.repos.d/virtualbox.repo
Tambahkan teks berikut, lalu simpan dan keluar:
[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc
Kemudian pada command prompt ketik:
# rpm -Uvh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install gcc make patch dkms qt libgomp
# yum install kernel-headers kernel-devel fontforge binutils glibc-headers glibc-devel
...
Complete!
# cd /usr/src/kernels
# ls -al
total 12
drwxr-xr-x. 3 root root 4096 Sep 25 16:14 .
drwxr-xr-x. 4 root root 4096 Sep 25 14:17 ..
drwxr-xr-x. 22 root root 4096 Sep 25 16:14 3.10.0-229.14.1.el7.x86_64
# export KERN_DIR=/usr/src/kernels/3.10.0-229.14.1.el7.x86_64
# yum install VirtualBox-5.0
...
Complete!
# service vboxdrv setup
Stopping VirtualBox kernel modules [ OK ]
Uninstalling old VirtualBox DKMS kernel modules [ OK ]
Removing old VirtualBox pci kernel module [ OK ]
Removing old VirtualBox netadp kernel module [ OK ]
Removing old VirtualBox netflt kernel module [ OK ]
Removing old VirtualBox kernel module [ OK ]
Trying to register the VirtualBox kernel modules using DKMSError! echo
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found at
/lib/modules/3.10.0-229.el7.x86_64/build or /lib/modules/3.10.0-229.el7.x86_64/source.
[FAILED]
(Failed, trying without DKMS)
Recompiling VirtualBox kernel modules [FAILED]
(Look at /var/log/vbox-install.log to find out what went wrong)
Lihat di atas untuk konten vi /var/log/vbox-install.log
Karena penasaran, saya mencari /lib/modules/
dan menemukan yang berikut:
[root@localhost kernels]# cd /lib/modules
[root@localhost modules]# ls -al
total 16
drwxr-xr-x. 4 root root 4096 Sep 25 15:58 .
dr-xr-xr-x. 30 root root 4096 Sep 25 16:23 ..
drwxr-xr-x. 7 root root 4096 Sep 25 15:59 3.10.0-229.14.1.el7.x86_64
drwxr-xr-x. 8 root root 4096 Sep 25 16:24 3.10.0-229.el7.x86_64
Sesuai saran @ EricRenouf, saya mengetik uname -a
, dan terminal menjawab dengan:
Linux localhost.localdomain 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Saya belum me-reboot mesin, tetapi tutorial tidak mengatakan untuk me-reboot.
sumber
uname -a
pertunjukan3.10.0-229.el7.x86_64
atau3.10.0-229.14.1.el7.x86_64
? Saya menduga itu yang pertama, tetapi yum menginstal header untuk yang terakhir.Jawaban:
Solusinya mungkin ditemukan pada pertanyaan ini versi singkatnya, jalankan
Itu akan menginstal header kernel untuk versi kernel yang sedang Anda jalankan.
Saya menduga bahwa pada titik tertentu Anda melakukan
yum update
atau serupa, dan yang benar-benar menginstal kernel baru, tetapi Anda belum mulai menjalankannya. Apa yang mungkin terjadi adalah ketika Anda melakukanyum install
langkah - langkah dalam pertanyaan Anda, ia sedang melihat versi terinstal terbaru dan mendapatkan header untuk itu. Howerver, ketika Anda mulaivboxdrv
melihat kernel yang sedang berjalan dan mencoba mencari header untuk itu.Kernel yang berjalan dan terinstal tidak sinkron (yang biasanya bukan masalah besar), tetapi Anda menemukan kasus yang penting.
sumber
No package kernel-devel-uname-r == 4.4.193-1.el7.elrepo.x86_64 available.
yum install kernel-devel
mungkin itu akan lebih mudah bagi Anda? Jika tidak, Anda mungkin ingin mencoba mengajukan pertanyaan baru (mungkin mengutip pertanyaan ini dan memberikan lebih banyak informasi tentang situasi Anda)