Loading

将字符设备驱动代码添加到内核源码树

一、因为我们编写的是一个字符设备驱动,所以将其放在./driver/char字符设备驱动目录

cp -rfa ../../kernel/helloDev/helloDev.c ./

二、修改./char目录下的Kconfig文件

image

tristate标签: 表示在执行make menuconfig的时候,可以选择 Y、N、M 三态编译,配置为bool标签时只能选择 Y、N
default标签: 表示默认选择时Y
help标签: 表示帮助信息

最终名称为: CONFIG_HELLO

三、修改./driver/char 目录下的Makefile文件

增加编译项(注意名称为CONFIG_HELLO,来源于上一步配置的Kconfig文件)
image

四、回到内核文件根目录下

cd /home/yu/kernelwork/linux-4.9.229

五、静态加载 (编译到内核中)

1、执行 make menuconfig

make menuconfig

2、在> Device Drivers > Character devices 层级目录下,可以看到我们添加的选项,选择<*>,即静态加载,会随着系统的启动而加载

image

3、重新编译内核
export ARCH=x86
make x86_64_defconfig
make
4、查看编译打印信息

image

六、动态加载 (编译为驱动)

1、执行 make menuconfig

make menuconfig

2、在> Device Drivers > Character devices 层级目录下,可以看到我们添加的选项,选择<M>,即动态加载,需要自行手动insmod和rmmod

image

3、重新编译内核

make

4、查看编译日志

可以看到编译成了 helloDev.ko 驱动文件
image

posted @ 2021-09-03 00:18  鱼儿叁  阅读(147)  评论(0编辑  收藏  举报