一、ubuntu 直接自带内核开发环境??我试过,编写内核模块代码可以直接make通过,但CentOS就不一样了(我测试的是CentOS 7),make会提示没有文件目录错误。
二、CentOS默认不带内核开发环境
需要自己手动安装:
(1)uname –r 查看当前内核版本
(2)yum list | grep kernel 查看当前可以直接用yum更新的内核相关包
@anaconda 表示安装内核的时候已经带的包
updates表示可以从yum更新的包
(3)yum install kernel-headers-$(uname –r) 安装内核开发需要的包头 ---提示我已经有了
但 ls /usr/src/kernels 仍然没有任何内容,内核相关的开发文件没有。编译自己写的内核模块hello-1.c的时候会提示错误:make: *** /lib/modules/3.10.0-957.el7.x86_64/build/: No such file or directory.
参考解决文章:https://blog.csdn.net/qq_21111579/article/details/49337191
这时还是需要安装kernel-devel内核开发包。但发现本地内核的版本和yum上面的devel版本不一样。按理说不能直接yum install kernel-devel.x86_64。
但很多人也直接这么安装了,并改一下 /lib/modules/3.10.0.957.el7.x86_64/build 的软连接。并且可以使用。
cd /lib/modules/3.10.0.957.el7.x86_64/
rm build
ln -s /usr/src/kernels/3.10.0-1062.4.1.el7.x86_64/ build