字符设备驱动代码添加到内核源码树(环境Centos7)

1、 准备

1、Linux内核文件(我用的4.19)
阿里镜像:https://mirrors.aliyun.com/linux-kernel/v4.x/

2、字符设备驱动源文件
我自己简单的写了一个
见我的另外的帖子:https://blog.csdn.net/weixin_43083491/article/details/108961701 helloword.c

2、配置Kconfig

1、准备
将helloworld.c放入linux-4.19驱动下的字符设备目录。
路径:linux-4.19/drivers/char/

2、修改配置文件
vim Kconfig
在这里插入图片描述
可以看见其他文件的配置复制一份即可
在这里插入图片描述
复制一个修改为自己的(有点简陋,具体可以自行学习)在这里插入图片描述
3、修改Linux内核配置
[root@hezaizai linux-4.19]# make menuconfig
进入图形配置界面(就像windows下的bois)
在这里插入图片描述
依次进入: Devices drivers->Character devices->hello device

将驱动选中(如下图所示)
在这里插入图片描述
注意:在make menuconfig时会遇到一个错误,提示缺少ncurses库。报错如下:

* Unable to find the ncurses libraries or the
* required header files.
* ‘make menuconfig’ requires the ncurses libraries.
* Install ncurses (ncurses-devel) and try again.
make[1]: * [scripts/kconfig/dochecklxdialog] Error 1
make: * [menuconfig] Error 2

执行安装命令 yum install ncurses ncurses-devel 即可。然后在执行 make menuconfig 就会出现那个蓝色选择框。

3、配置Makefile文件

修改char下的Makefile文件即可
[root@hezaizai char]# vim Makefile
在这里插入图片描述
按照上图红框里,添加即可。

4、编译

1、配置环境
[root@hezaizai linux-4.19]#export ARCH=x86
[root@hezaizai linux-4.19]#make x86_64_defconfig
2、编译
[root@hezaizai linux-4.19]#make

注意
在编译时会遇到另外一个错误找不到:openssl/ssl.h,安装openssl-devel即可。
[root@hezaizai linux-4.19]#yum install openssl-devel

这样我们添加的驱动便可以在内核启动时**自动加载(静态加载)**了。

另外也可以使之动态加载加粗样式,即编译处ko文件但是在内核启动不自动加载,可以通过insmod的方式手动加载。
操作:在make menuconfig时将驱动前选项改为M。如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值