Tiêu đề kernel của bạn cho kernel 3.10.0-229.el7.x86_64 không thể tìm thấy


12

Khi tôi gõ lệnh service vboxdrv setuptrong thiết bị đầu cuối CentOS 7, tôi gặp lỗi sau:

Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found  

Làm thế nào tôi có thể giải quyết lỗi này?

Khi tôi mở tệp nhật ký bằng cách nhập vi /var/log/vbox-install.log, nội dung là:

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.

Lỗi xảy ra trong quá trình cài đặt VirtualBox 5.0.4 bằng cách sử dụng các hướng dẫn từ hướng dẫn này . Tóm lại, cho đến nay, tôi có:

vi /etc/yum.repos.d/virtualbox.repo

Thêm văn bản sau, sau đó lưu và thoát:

[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

Sau đó, tại dấu nhắc lệnh:

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

Xem ở trên để biết nội dung của vi /var/log/vbox-install.log

Vì tò mò, tôi nhìn vào /lib/modules/và thấy như sau:

[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

Theo lời khuyên của @ EricRenouf, tôi đã gõ uname -avà thiết bị đầu cuối trả lời:

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

Tôi chưa khởi động lại máy, nhưng hướng dẫn không nói là khởi động lại.


Bạn đã cập nhật kernel của mình mà không cần khởi động lại vào một lúc nào đó hoặc một cái gì đó tương tự? Có uname -ahiển thị 3.10.0-229.el7.x86_64hay 3.10.0-229.14.1.el7.x86_64không? Tôi đoán đó là cái trước, nhưng yum đã cài đặt các tiêu đề cho cái sau.
Eric Renouf

Câu trả lời:


12

Giải pháp có thể được tìm thấy ở câu hỏi này phiên bản ngắn đang chạy

sudo yum install "kernel-devel-uname-r == $(uname -r)"

Điều đó sẽ cài đặt các tiêu đề kernel cho phiên bản kernel mà bạn hiện đang chạy.

Tôi nghi ngờ rằng tại một số điểm bạn đã làm một yum updatehoặc tương tự, và điều đó thực sự đã cài đặt một kernel mới, nhưng bạn chưa bắt đầu chạy nó. Điều có thể xảy ra là khi bạn thực hiện các yum installbước trong câu hỏi của mình, nó đang xem phiên bản được cài đặt mới nhất và nhận được các tiêu đề cho điều đó. Howerver, khi bạn khởi động, vboxdrvnó nhìn vào kernel đang chạy và cố gắng tìm các tiêu đề cho điều đó.

Các hạt nhân đang chạy và đã cài đặt của bạn không đồng bộ (thường không phải là một vấn đề lớn), nhưng bạn đã tìm thấy một trường hợp quan trọng.


Không làm việc cho tôi. No package kernel-devel-uname-r == 4.4.193-1.el7.elrepo.x86_64 available.
Sadik zoguz

@ SadikÖzoguz nếu bạn đang chạy phiên bản kernel bạn muốn cài đặt các tiêu đề cho bạn, bạn có thể thử yum install kernel-develcó lẽ nó sẽ làm việc dễ dàng hơn cho bạn? Nếu không, bạn có thể muốn thử hỏi như một câu hỏi mới (có thể trích dẫn câu hỏi này và cung cấp thêm thông tin về tình huống của bạn)
Eric Renouf

Tôi sẽ hỏi một câu hỏi mới.
Sadik zoguz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.