Kasan实现原理以及实现过程
2020-09-09 17:13
656 查看
内核:4.18.0-147.8.1.el7.aarch64
实现过程:在鲲鹏arm服务器完成
1.官网下载部分源码rpm包kernel-alt-4.14.0-115.el7a.0.1.src.rpm
2.编译内核之前,必须安装编译内核基本工具链,如未安装可能遇到如下问题:
error: Failed build dependencies: xmlto is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64 asciidoc is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64 newt-devel is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64 pciutils-devel is needed by kernel-alt-4.14.0-115.el7.0.1.aarch64
执行命令安装: `yum install –y xmlto asciidoc newt-devel pciutils-devel`
安装要求的工具链: 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-deve
3.编译之前确保mockbuild用户和mockbuild所属的组有效
groupadd mockbuild radd mockbuild -g mockbuild
4.安装rpm 包,此rpm 包实际为rpmbuild 构建工程
rpm -ivh kernel-alt-4.14.0-115.el7a.0.1.src.rpm 安装完成,rpm构建工程自动部署在 /root/rpmbuild/SPECS /root/rpmbuild/SOURCES
5.rpmbuild 构建,会自动下载全量内核代码(包括补丁合入)
cd /root/rpmbuild/SPECS rpmbuild -bp --target=$(uname -m) kernel-alt.spe
6.构建完成后,可以获取到全量内核源码
路径为: cd /root/rpmbuild/BUILD/kernel-alt-4.14.0-115.el7a/linux-4.14.0-115.el7.0.1.aarch64
7.进入编译 make menuconfig也可直接更改.congfig
CONFIG_SLUB_DEBUG=y CONFIG_KASAN=y
- Make 编译时会有两个选项
make -j 64 make modules_install 驱动安装(可选) Make install 内核安装(可选) 选择第一个,而后选择M模块编译
9.编译完成后查看/boot下会多出一个内核
10.查询本系统内有几个内核< 5b4 /p>
cat /etc/grub2-efi.cfg |grep menuentry 新编译的内核会有显示(如果未显示就重启,reboot)
11.设置更改后的内核为首选项启动并查询是否更改
grub2-set-default "CentOS Linux (4.14.0) 7 (AltArch)"; grub2-editenv list
12.测试是否成功
Linux 内核的源码中已经包含了针对 Kasan 的测试代码,其位置在 lib/test_kasan.c。编译内核或者单独编译 lib 模块的时候,会生成 test_kasan.ko 模块。当向内核插入该模块的时候,就会执行测试代码,编译过就会生成.ko
Insmod test_kasan.ko
13.加载ko即可在dmesg中查询或者直接输出
dmesg |grep kasan
相关文章推荐
- windows程序的运行原理以及VC 的实现过程
- [Android开发] 在项目中快速实现 列表字母排序滑动索引 功能原理以及过程代码
- zookeeper的选主机制的实现过程以及原理
- VC点滴 之 WinMain(windows程序的运行原理以及VC++的实现过程)
- JavaScript 深浅拷贝原理以及内部代码实现过程
- MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现
- JavaScript中Promise 使用、原理以及实现过程
- 微信扫一扫打印照片的原理以及实现过程(持续更新中)
- Spring学习06--IOC实现原理以及IOC容器初始化过程
- MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现
- jQuery的datatable的使用例子,以及通过例子分析datatable插件的实现过程,即不但要会用,还要懂其原理
- 消息推送原理以及实现过程
- WinMain(windows程序的运行原理以及VC++的实现过程)
- HashMap的实现原理以及面试官的提问
- jsp自定义标签技术(实现原理与代码以及平台搭建步骤)
- Andriod中Style/Theme原理以及Activity界面文件选取过程浅析
- 前端分页功能的实现以及原理
- 对生成对抗网络GANs原理、实现过程、应用场景的理解(附代码),另附:深度学习大神文章列表
- 深度学习(七)U-Net原理以及keras代码实现医学图像眼球血管分割
- 图像拐点检测-原理以及代码实现