您好,欢迎来到景安网络!
vps1元试用30天
主页 >服务器教程 >如何搭建linux内核模块环境

如何搭建linux内核模块环境


来源:景安网络发表日期:2017-02-05浏览次数:Tags:linux内核
景安-稳定安全的多线服务器托管,长期提供数据中心托管服务,私有云,互联网解决方案,互联网增值服务。景安多线虚拟主机租用,仅需1元立即领取
在说kvm模块单独编译之前,难免设计到linux内核模板的编写,所以今天小编教大家如何搭建linux内核模块环境
如何搭建linux内核模块环境
1.升级内核
 
升级当前系统的kernel,具体编译步骤这里不再详细说明,简单表述一下:如果想在当前的linux系统上面,不用修改配置文件来编译内核,就将/boot/config-***文件拷贝至/home/pizhi/linux-4.6.4/.config
 
  1. [root@pizhi-kernel boot]# pwd                
  2.                  /boot
  3.  [root@pizhi-kernel boot]# cp config-3.10.0-229.el7.x86_64 /home/pizhi/linux-4.6.4/.config 
 
注意:执行完上面的cp命令以后,仍然需要使用make menuconfig命令并保存配置。
 
编译之前需要安装rpmbuild工具:
 
make rpm
 
这一步会在/root/rpmbuild/RPMS生成对应的kernel rpm包。
 
更新:
 
yum install ./*.rpm
 
2.安装kernel-devel包
 
不需要像1.1中的花很长时间升级内核,只需要安装kernel-devel rpm包即可。
 
安装:
 
yum install kernel-devel
 
如果源没啥问题,基本安装的和kernel rpm包的版本一致即可。
 
测试:
 

hello.c:

#include <linux/init.h>

#include <linux/module.h>

static int hello_init(void) {

    printk(KERN_WARNING"Hello, pikachu kernel!\n");

    return 0;

}

static void hello_exit(void) {

    printk(KERN_INFO"Goodbye, pikachu kernel!\n");

}

module_init(hello_init);

module_exit(hello_exit);

MODULE_LICENSE("GPL");

Makefile:

ifneq ($(KERNELRELEASE),)

obj-m := hello.o

else

KDIR := /lib/modules/`uname -r`/build

all :

        make -C $(KDIR) M=$(PWD) modules

clean:

        make -C $(KDIR) M=$(PWD) clean

endif

 
make过程遇到的问题:
 
  1. make -C /lib/modules/`uname -r`/build M=/root/code_kernel/hello modules                
  2. make: *** /lib/modules/3.10.0-327.el7.x86_64/build: No such file or directory.  Stop.
  3. make: *** [all] Error 2
 
解决方法:
 
  1. /lib/modules/3.10.0-327.el7.x86_64/build没有指向正确的kernel source。建立软连接即可。           
  2. [root@localhost 3.10.0-327.el7.x86_64]# pwd
  3. /lib/modules/3.10.0-327.el7.x86_64  
  4. [root@localhost 3.10.0-327.el7.x86_64]# rm build
  5.   [root@localhost 3.10.0-327.el7.x86_64]# ln -sv /usr/src/kernels/3.10.0-514.2.2.el7.x86_64/ build 
 
注:kernel打印的日志文件在/var/log/messages下。
 
0(好文)
0(太水)
分享链接:
版权声明:部分文章源于网络,如侵权请联系我们删除

专题页