内核:4.18.0-147.8.1.el7.aarch64
实现过程:在鲲鹏arm服务器完成python
1.官网下载部分源码rpm包kernel-alt-4.14.0-115.el7a.0.1.src.rpmlinux
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所属的组有效ide
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.构建完成后,能够获取到全量内核源码ui
路径为: cd /root/rpmbuild/BUILD/kernel-alt-4.14.0-115.el7a/linux-4.14.0-115.el7.0.1.aarch64
7.进入编译 make menuconfig也可直接更改.congfig3d
CONFIG_SLUB_DEBUG=y CONFIG_KASAN=y
make -j 64 make modules_install 驱动安装(可选) Make install 内核安装(可选) 选择第一个,然后选择M模块编译
9.编译完成后查看/boot下会多出一个内核code
10.查询本系统内有几个内核xml
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 模块。当向内核插入该模块的时候,就会执行测试代码,编译过就会生成.koInsmod test_kasan.ko
13.加载ko便可在dmesg中查询或者直接输出dmesg |grep kasan