如何将linux驱动程序添加到内核中 / 蓝讯

发布网友 发布时间:2022-04-21 23:19

我来回答

1个回答

热心网友 时间:2022-06-03 15:50

展开1全部1.进入你的内核源码文档,创建一个DoneLin_Driver文件夹来存放你的驱动,于是文件夹路径:drivers/DoneLin_Driver/:

2.复制你的范例驱动到刚刚建立的DoneLin_Driver文件夹中,我的范例名字叫global_mem_two.c:

3.在DoneLin_Driver文件夹中建立两个新文本文件:Kconfig 和 Makefile

4.修改DoneLin_Driver文件夹下的Kconfig文件,输入以下内容:
menu "DoneLin-driver "
comment "global_mem_two-driver "

config GLOBAL_MEM_TWOtristate "global_mem_two DriTst"helpthis is global mem 2 test programming
endmenu

5.接着修改DoneLin_Driver的另一个文件Makefile,输入以下内容:

obj-$(CONFIG_GLOBAL_MEM_TWO)+= global_mem_two.o

6.修改上一层目录(Driver目录)中的Kconfig文件,声明自己的源代码:在"menu "Device drivers""下面加入如下内容:

source "drivers/DoneLin_Driver/Kconfig"##...add my tst driver mole

7.修改arch/arm/Kconfig

同样,跟在driver/Kconfig一样,在"menu device drivers"下面加入同样的语句:

source "drivers/DoneLin_Driver/Kconfig"

就是说:在arch/arm/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/DoneLin_Driver/Kconfig"
在drivers/Kconfig menu "Device Drivers" endmenu之间添加source "drivers/hello/Kconfig"(不知为什么arch/arm/Kconfig中竟然含有Drivers里Kconfig内容的一个复本,实验证明只对drivers/Kconfig中修改内容无效。)

8.修改Drivers目录下的Makefile,在如图位置,加入:

obj-$(CONFIG_GLOBAL_MEM_TWO)+= DoneLin_Driver/#ADD FOR TEST add_for_test add for test测试的驱动

8.都修改好,保存好之后,回到linux内核根目录,make menuconfig,奇迹出现了,我自己的linux驱动程序出现在内核的device drivers选项里面了:

选择global_mem_tow_DriTst为m,表示编译成模块,编译成ko文件

然后,保存退出,make, make zImage, make moles即可生成新的内核和新的moles,

完成了,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com