CentOS7编译内核模块

想在CentOS系统直接编译内核模块,然后运行调试,这样做主要还是用于学习Linux内核。当然也可以进行交叉编译,在开发板上跑模块调试,但是,这样做比较慢而且麻烦,因此上网找些办法在CentOS上搭建可以进行内核模块编译的环境,以下内容大部分出自博客,在此借用,勿怪。

1,安装工具

# yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto
# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
# yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel

2,下载源码

http://vault.centos.org,选择合适的内核版本,当前使用的是kernel-3.10.0-693.1.1.el7.src.rpm。

可能用到

# cat /etc/redhat-release

# uname -a

3,解压源码

# mkdir -p ~/kernel/centos7/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

# echo '%_topdir %(echo $HOME)/kernel/centos7' > ~/.rpmmacros

路径可自行确定。

#  cd ~

# rpm -i kernel-3.10.0-693.1.1.el7.src.rpm

解压之后,在~/kernel/centos7/BUILD/kernel-3.10.0-693.1.1.el7/linux-3.10.0-693.1.1.el7.x86_64/目录,就是当前系统的内核源码。

4,编译内核获取Module.symvers文件

# cd ~/kernel/centos7/BUILD/kernel-3.10.0-693.1.1.el7/linux-3.10.0-693.1.1.el7.x86_64

# cp /boot/config-`uname -r` .config

拷贝当前系统配置文件

# make oldconfig

# make menuconfig

配置menuconfig

# make

5,编译模块

Makefile

     KDIR ?= ~/kernel/centos7/BUILD/kernel-3.10.0-693.1.1.el7/linux-3.10.0-693.1.1.el7.x86_64

完成之后insmod。









  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值