Wenn ich den Befehl service vboxdrv setup
in mein CentOS 7-Terminal eingebe, wird folgende Fehlermeldung angezeigt:
Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found
Wie kann ich diesen Fehler beheben?
Wenn ich die Protokolldatei durch Eingabe öffne vi /var/log/vbox-install.log
, sind die Inhalte:
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.
Der Fehler tritt bei der Installation von VirtualBox 5.0.4 gemäß den Anweisungen in diesem Lernprogramm auf . Zusammenfassend habe ich bisher:
vi /etc/yum.repos.d/virtualbox.repo
Fügen Sie den folgenden Text hinzu, speichern Sie ihn und beenden Sie ihn:
[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
Geben Sie dann an der Eingabeaufforderung Folgendes ein:
# 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)
Siehe oben für den Inhalt von vi /var/log/vbox-install.log
Aus Neugier schaute ich hinein /lib/modules/
und fand Folgendes:
[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
Gemäß @ EricRenoufs Rat habe ich getippt uname -a
und das Terminal antwortete mit:
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
Ich habe den Computer nicht neu gestartet, aber im Tutorial wurde nicht zum Neustart aufgefordert.
quelle
uname -a
zeigen3.10.0-229.el7.x86_64
oder3.10.0-229.14.1.el7.x86_64
? Ich vermute, es ist die erste, aber Sie haben die Header für die zweite installiert.Antworten:
Die Lösung dürfte bei dieser Frage die Kurzversion sein, die ausgeführt wird
Dadurch werden die Kernel-Header für die Version des aktuell ausgeführten Kernels installiert.
Ich vermute, dass Sie irgendwann einen
yum update
oder einen ähnlichen Kernel installiert haben, diesen aber noch nicht gestartet haben. Wahrscheinlich geschieht Folgendes: Wenn Sie dieyum install
Schritte in Ihrer Frage ausführen, wird nach der neuesten installierten Version gesucht und die entsprechenden Header abgerufen. Aber, wenn Sie es startenvboxdrv
, schaut es auf den laufenden Kernel und versucht, die Header dafür zu finden.Ihr laufender und installierter Kernel sind nicht synchron (was normalerweise kein großes Problem ist), aber Sie haben einen Fall gefunden, in dem es darauf ankommt.
quelle
No package kernel-devel-uname-r == 4.4.193-1.el7.elrepo.x86_64 available.
yum install kernel-devel
vielleicht würde das für dich einfacher funktionieren? Wenn nicht, möchten Sie vielleicht versuchen, eine neue Frage zu stellen (vielleicht unter Berufung auf diese Frage und Angabe weiterer Informationen über Ihre Situation)