当你在编译一个设备驱动模块时,你须要在系统中安装内核头文件。内核头文件同样在你编译与内核直接链接的用户空间程序时须要。当你在这种情况下安装内核头文件时,你必须确保内核头文件精确地与你当前内核版本匹配(例如:3.13.0-24-generic)。
假如你的内核是发行版自带的内核版本,或则使用默认的包管理器的基础库房升级的(例如:apt-ger、aptitude或则yum)linux操作系统原理,你也可以使用包管理器来安装内核头文件。另一方面linux源代码分析,假如下载的是kernel源码而且自动编译的linux内核驱动api手册,你可以使用make命令来安装匹配的内核头文件。
如今我们假定你的内核是发行版自带的linux内核驱动api手册,让我们看下该怎么安装匹配的头文件。
在Debian、Ubuntu或则LinuxMint上安装内核头文件
假定你没有自动编译内核,你可以使用apt-get命令来安装匹配的内核头文件。
首先,使用dpkg-query命令检测是否有可用的内核头文件。
复制代码代码如下:$dpkg-query-slinux-headers-$(uname-r)
dpkg-query:package'linux-headers-3.11.0-26-generic'isnotinstalledandnoinformationisavailable
接着使用下边的命令安装匹配的内核头文件。
复制代码代码如下:$sudoapt-getinstalllinux-headers-$(uname-r)
验证头文件是否成功安装。
复制代码代码如下:$dpkg-query-slinux-headers-$(uname-r)
Package:linux-headers-3.11.0-26-generic
Status:installokinstalled
Debian、Ubuntu、LinuxMint默认头文件在/usr/src下。
在Fedora、CentOS或则RHEL上安装内核头文件
假定你没有自动编译内核,你可以使用yum命令来安装匹配的内核头文件。
首先,用下边的命令检测系统是否早已安装了头文件。假如下边的命令没有任何输出,这就意味着还没有头文件。
复制代码代码如下:$rpm-qa|grepkernel-headers-$(uname-r)
接着用yum命令安装头文件。这个命令会手动找出合适的头文件并安装。
复制代码代码如下:$sudoyuminstallkernel-headers
验证包安装的状态。
复制代码代码如下:$rpm-qa|grepkernel-headers-$(uname-r)
kernel-headers-3.10.0-123.9.3.el7.x86_64
文章评论