前言
现在linux内核文件越来越多,在source inside添加工程的时候,如果不加区别,全部添进去,会导致工程很大,耗时很长,而且搜索时也特别不方便,查找函数的时候,也会出现N个同名函数,让人不知道到底哪个才是最终被编译的
为了解决这个问题,只需要添加编译内核的log中提到的文件即可
关于这个的做法,网上有写c++程序取做替换的,有用脚本替换的,还有的写的不知道什么东西放到github让人下载的,但是都没用说明白具体的原理,实际去操作,发现并不能成功
因此这篇文章将以最简单的方法,一步步教你如何去做
内核编译及log生成
如果内核以及编译过了,那么使用make distclean先清除掉
然后make,加上你自己的编译参数,最后重定向到一个日志文件,我举个例子
sudo make rk1808-evb-v10.img > build-log.txt
这个build-log.txt文件,打开来看大概是这个样子,有各种CC之类开头的命令, 有时还有一些其它信息打印输出,有个这个文件,下一步就是利用sublime去将它改为source inside需要的list文件
CC init/main.o
CHK include/generated/compile.h
CC init/do_mounts.o
CC init/do_mounts_initrd.o
CC arch/arm64/mm/dma-mapping.o
CC init/noinitramfs.o
CC arch/arm64/mm/extable.o
CC init/initramfs.o
CC init/init_task.o
CC arch/arm64/mm/fault.o
CC arch/arm64/crypto/sha1-ce-glue.o
CC arch/arm64/kernel/debug-monitors.o
CC [M] drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_gpio.o
CC [M] drivers/net/w