如何在CentOS 7中安装内核头文件

当您在CentOS系统上编译自定义内核模块(如设备驱动程序)时,您需要在系统上安装内核头文件,其中包括Linux内核的C头文件。 内核头文件在安装或编译任何与内核接口的代码时提供了不同类型的函数和结构定义。

安装内核头文件时 ,确保它与系统上当前安装的内核版本相匹配。 如果您的内核版本附带默认的分发版安装,或者您已经使用系统基本存储库中的yum软件包管理器升级了内核 ,则必须仅使用软件包管理器安装匹配的内核标头。 如果您从源代码编译内核,则只能从源安装内核头文件。

在本文中,我们将介绍如何使用默认包管理器在CentOS / RHEL 7Fedora发行版中安装Kernel Headers

在CentOS 7中安装内核头文件

首先使用以下命令确认匹配的内核头文件已经安装在系统上的/ usr / src / kernels / location下。

# cd /usr/src/kernels/
# ls -l

在CentOS 7中检查内核头文件

如果没有匹配的内核头文件位于/ usr / src / kernels /目录中,请继续并安装内核头文件,该文件头文件由kernel-devel软件包提供,可以使用默认软件包管理器进行安装,如图所示。

# yum install kernel-devel   [On CentOS/RHEL 7]
# dnf install kernel-devel   [On Fedora 22+]

在CentOS 7中安装内核头文件

安装kernel-devel软件包后,可以使用以下命令在/ usr / src / kernels目录中找到所有内核头文件。

# ls -l /usr/src/kernels/$(uname -r) 

关于VPS (例如Linode VPS )的注意事项,内核可能有自定义的版本名称,在这种情况下,您必须手动识别内核版本并使用以下命令检查安装的内核头文件。

# uname -r	
# ls -l /usr/src/kernels/3.10.0-862.2.3.el7.x86_64

检查CentOS 7中的内核版本

示例输出
total 4544
drwxr-xr-x.  32 root root    4096 May 16 12:48 arch
drwxr-xr-x.   3 root root    4096 May 16 12:48 block
drwxr-xr-x.   4 root root    4096 May 16 12:48 crypto
drwxr-xr-x. 119 root root    4096 May 16 12:48 drivers
drwxr-xr-x.   2 root root    4096 May 16 12:48 firmware
drwxr-xr-x.  75 root root    4096 May 16 12:48 fs
drwxr-xr-x.  28 root root    4096 May 16 12:48 include
drwxr-xr-x.   2 root root    4096 May 16 12:48 init
drwxr-xr-x.   2 root root    4096 May 16 12:48 ipc
-rw-r--r--.   1 root root     505 May  9 19:21 Kconfig
drwxr-xr-x.  12 root root    4096 May 16 12:48 kernel
drwxr-xr-x.  10 root root    4096 May 16 12:48 lib
-rw-r--r--.   1 root root   51205 May  9 19:21 Makefile
-rw-r--r--.   1 root root    2305 May  9 19:21 Makefile.qlock
drwxr-xr-x.   2 root root    4096 May 16 12:48 mm
-rw-r--r--.   1 root root 1093137 May  9 19:21 Module.symvers
drwxr-xr-x.  60 root root    4096 May 16 12:48 net
drwxr-xr-x.  14 root root    4096 May 16 12:48 samples
drwxr-xr-x.  13 root root    4096 May 16 12:48 scripts
drwxr-xr-x.   9 root root    4096 May 16 12:48 security
drwxr-xr-x.  24 root root    4096 May 16 12:48 sound
-rw-r--r--.   1 root root 3409102 May  9 19:21 System.map
drwxr-xr-x.  17 root root    4096 May 16 12:48 tools
drwxr-xr-x.   2 root root    4096 May 16 12:48 usr
drwxr-xr-x.   4 root root    4096 May 16 12:48 virt
-rw-r--r--.   1 root root      41 May  9 19:21 vmlinux.id

另外,如果您需要Linux内核的头文件glibc使用,请使用以下命令安装kernel-header包。

# yum install kernel-headers   [On CentOS/RHEL 7]
# dnf install kernel-headers   [On Fedora 22+]

现在,您可以编译自己的或现有的内核模块以用于诸如VirtualBox等软件。

而已! 在本文中,我们解释了如何在CentOS / RHEL 7Fedora系统中安装kernel-develkernel-header软件包。 请记住,在Linux系统上编译内核模块(如设备驱动程序)之前,应该安装必要的内核头文件。 如果您有任何疑问,请使用下面的评论表单与我们联系。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏