CentOS7编译内核模块
2018-03-14 08:22
357 查看
想在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。
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。
相关文章推荐
- CentOS 5.6下将linux内核2.6.18升级到2.6.30,并编译动态加载linux下第一个模块
- Centos5.3编译内核增加connlimit模块并升级Iptables
- 在Linux2.6内核(CentOS)中编译内核模块的一个例子
- centos获取内核源码,编译内核,编译内核模块
- 编译,加载并卸载一个内核模块
- centos linux 内核升级,内核编译步骤
- centos6.5 内核编译过程
- centos 7.3 安装vmtools,解决无法编译共享文件夹模块
- Android内核开发 内核模块编程编译及安卓虚拟机测试
- openWRT自学---对官方的开发指导文档的解读和理解 记录2:如何控制内核模块的编译
- linux 内核模块编程之编译多个源文件(三)
- linux驱动学习--第六天:第四章 Linux 内核模块 之 Linux 内核模块编译
- 编译内核到模块(无需加载)
- centos7内核模块命令
- 编译多个文件到内核模块
- Linuxx 2.6内核可加载模块的编译
- raspberry内核编译和模块开发
- 编译内核模块常见问题
- 如何把自己的模块编译到内核中
- 编译Android内核模块