将字符设备驱动代码添加到内核源码树
一、因为我们编写的是一个字符设备驱动,所以将其放在./driver/char字符设备驱动目录
cp -rfa ../../kernel/helloDev/helloDev.c ./
二、修改./char目录下的Kconfig文件
tristate标签: 表示在执行make menuconfig的时候,可以选择 Y、N、M 三态编译,配置为bool标签时只能选择 Y、N
default标签: 表示默认选择时Y
help标签: 表示帮助信息
最终名称为: CONFIG_HELLO
三、修改./driver/char 目录下的Makefile文件
增加编译项(注意名称为CONFIG_HELLO,来源于上一步配置的Kconfig文件)
四、回到内核文件根目录下
cd /home/yu/kernelwork/linux-4.9.229
五、静态加载 (编译到内核中)
1、执行 make menuconfig
make menuconfig
2、在> Device Drivers > Character devices 层级目录下,可以看到我们添加的选项,选择<*>,即静态加载,会随着系统的启动而加载
3、重新编译内核
export ARCH=x86
make x86_64_defconfig
make
4、查看编译打印信息
六、动态加载 (编译为驱动)
1、执行 make menuconfig
make menuconfig
2、在> Device Drivers > Character devices 层级目录下,可以看到我们添加的选项,选择<M>,即动态加载,需要自行手动insmod和rmmod
3、重新编译内核
make
4、查看编译日志
可以看到编译成了 helloDev.ko 驱动文件