网站搜索

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


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

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

另请阅读:如何在 Ubuntu 和 Debian 中安装内核头文件

在本文中,我们将解释如何使用默认包管理器在 CentOS/RHEL 7Fedora 发行版中安装内核头

在 CentOS 7 中安装内核头文件

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

cd /usr/src/kernels/
ls -l

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

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

安装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

样本输出
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 软件包/strong> 系统。请记住,在 Linux 系统上编译设备驱动程序等内核模块之前,您应该安装必要的内核头文件。如果您有疑问,请使用下面的评论表与我们联系。