概述
本文是基于 Android 使用的 Kernel 4.19 进行的实验。
1. 修改 deconfig 文件
(1)CD 到 kernel 的根目录:
cd xxx(kernel 根目录)
(2)复制平台的 deconfig 文件到当前目录:
cp linux/arch/arm64/configs/xxx_defconfig .config
(2)执行 Shell 指令:
make menuconfig
(3)进入 Kernel hacking 选中:
Code coverage for fuzzing
然后进入Memory Debugging,选中如下两项:
SLUB debugging on by default
KASAN: runtime memory debugger
(4)保存退出
(5)检查是否成功: grep -rin -E "kasan|slub|kcov" .config
CONFIG_KASAN=y
CONFIG_KASAN_INLINE=y #要求GCC >= 5.0,否则是 CONFIG_KASAN_OUTLINE=y
CONFIG_KCOV=y
CONFIG_SLUB=y
CONFIG_SLUB_DEBUG=y
(6)替换平台的 deconfig 文件:
mv .config linux/arch/arm64/configs/xxx_defconfig
(7)执行 Shell 命令:
make mrproper
2. 编译
(1)执行 Shell 命令:
source build/envsetup.sh
lunch xxx
make -j4
(2)编译完成后,检查 Image Size 是否变大:
ls -l arch/arm/boot/compressed/vmlinux 或
ls -l release_img/boot.img
3. 调整 Partition
对于 Android,修改文件:
/device/厂商/平台/BoardConfig.mk
确保配置 Boot 和 Recovery Size 大于等于实际 Size:
BOARD_BOOTIMAGE_PARTITION_SIZE := 34035744
BOARD_RECOVERYIMAGE_PARTITION_SIZE := 41787424
4.重新编译
对于 Android,需要重新编译打包成最终的 Image。
参考:
编译内核 | Android 开源项目 | Android Open Source Project
Linux内核4.4打开kasan功能并替换内核编译器_bin_linux96的专栏-CSDN博客
最后
以上就是欢呼可乐为你收集整理的Kernel 开启 KAsan 实录的全部内容,希望文章能够帮你解决Kernel 开启 KAsan 实录所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复