一、静态加载
把新功能源码放在内核源码目录里面,然后在相应目录下改kconfig、makefile,然后make menuconfig里面把新功能那一项选为*,则新功能源码与其它源码会一起编译到uImage,uImage跑到板子上看是否打印;
二、动态加载
新功能源码与内核其它源码不一起编译,而是独立编译成内核的插件(称为内核模块)文件.ko;(k可以安装、卸载插件)
a、新功能源码与linux内核源码在同一目录结构下时
1、给新功能源码配置Kconfig
2、给新功能源码改写Makefile
3、make menuconfig界面里将新功能对应的那项选择成<M>;(意味着内核不再需要包含新功能的源码)
4、make uImage
5、cp arch/arm/boot/uImage /tftpboot
6、make modules (顶层目录下面执行;会将make menuconfig里面所有选择成<M>的那些项对应的功能源码编译成对应的内核模块文件,生成的同名.ko文件与新功能源码在同一个目录下面)(执行此命令之前要确保uImage文件已经生成)
make modules会在新功能源码的同级目录下生成相应的同名.ko文件