RK3588 4.0release 版本kasan 编译方法总结
1、下载gcc 10.3编译工具 rk3588 4.0release 内核版本使用的gcc 7.5 版本编译,而kasan 版本编译需要gcc8.6以上版本,所以需要先下载高版本gcc 编译工具. 下载链接如下: 说明:该10.3版本由瑞星微提供,使用外部gcc版本编译存在不开机的情况。 2、将kasan_device.patc
1、下载gcc 10.3编译工具
rk3588 4.0release 内核版本使用的gcc 7.5 版本编译,而kasan 版本编译需要gcc8.6以上版本,所以需要先下载高版本gcc 编译工具.
下载链接如下:stability_testing_tools/tools/rk3588_kasan · 拉瓦尔空间/Laval_tools - 码云 - 开源中国 (gitee.com)
说明:该10.3版本由瑞星微提供,使用外部gcc版本编译存在不开机的情况。
2、将kasan_device.patch 打到device\board\hihope\ 目录。
kasan_device.patch 下载链接:stability_testing_tools/tools/rk3588_kasan · 拉瓦尔空间/Laval_tools - 码云 - 开源中国 (gitee.com)
该patch主要修改如下:
2.1、内核配置文件增加kasan编译配置文件 :
路径:dayu210/kernel/kernel_config/linux-5.10/arch/arm64/rk3588_standard_defconfig
修改:
#kasan
CONFIG_KASAN=y
CONFIG_KASAN_GENERIC=y
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_FRAME_WARN=0
CONFIG_CC_HAS_KASAN_GENERIC=y
2.2、内核编译文件增加参数消除编译报错:
路径:dayu210/kernel/kernel_patch/linux-5.10/dayu210_patch/kernel.patch
KBUILD_CFLAGS += -Wno-unused-function -Wno-unused-variable -Wno-implicit-fallthrough -mno-outline-atomics
2.3、make-boot.sh 编译脚本中增加block_size大小,消除编译报错:
路径:/dayu210/kernel/make-boot.sh
block_size=$((${IMAGE_SIZE} * 1024 * 1024 * 2 / ${blocks}))
2.4、make-ohos.sh 修改GCC的版本
路径: dayu210/kernel/make-ohos.sh
MAKE="make CROSS_COMPILE=../../../../prebuilts/gcc/linux-x86/aarch64/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-"
2.5、调整boot.img 分区大小解决烧录失败
路径: /dayu210/loader/parameter.txt
CMDLINE:mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00001000@0x00006000(bootctrl),0x00003000@0x00007000(resource),0x00040000@0x0000A000(boot_linux:bootable),0x00002000@0x0004A000(ramdisk),0x00400000@0x0004C000(system),0x00200000@0x0044C000(vendor),0x00019000@0x0064B000(sys-prod),0x00019000@0x00664000(chip-prod),0x0000a000@0x0067E000(updater),0x00400000@0x00687000(userdata:grow)
3.将kasan_kernel.patch 打到kernel\linux\linux-5.10 目录
patch 下载地址:stability_testing_tools/tools/rk3588_kasan · 拉瓦尔空间/Laval_tools - 码云 - 开源中国 (gitee.com)
主要修改如下:
3.1、/arch/arm64/mm/ 目录下增加测试文件 kasan_test.c 用于测试版本ksan检测是否生效 【仅用于测试版本功能是否正常,正式压测版本不用添加】
3.2、arch/arm64/mm/Makefile 中添加测试文件的编译 【仅用于测试版本功能是否正常,正式压测版本不用添加】
+obj-$(CONFIG_KASAN) += kasan_init.o kasan_test.o
3.3、arch/arm64/mm/kasan_init.c 中添加多次检测模式设置:
+ kasan_save_enable_multi_shot();
4.删除out 目录在整编项目
说明:必须删除out目录后整编项目,否者部分修改不生效。
更多推荐
所有评论(0)