以按键驱动为例,驱动源代码为buttons_drv.c
1、进入目录linux-kernel-samsung-devdriverschar
新建目录key_arm,并将驱动程拷贝进去
mkdir key_drv
2、在key_arm目录里编写里Kconfig文件,内容如下:
menu "button driver"
config BUTTON
tristate "BUTTON"
default n
help
The button water made by buttons which was used by platform.
endmenu
3、在key_arm目录里编写里Makefile文件,内容如下:
obj-$(CONFIG_BUTTON) += buttons_drv.o
4、修改key_arm上级目录char里的Makefile文件
增加: obj-$(CONFIG_BUTTON) += key_arm/
5、修改key_arm上级目录char里的Kconfig文件
增加:source "drivers/char/key_arm/Kconfig"
6、执行make menuconfig命令弹出菜单,然后按照下面步骤一一进入
Device Drivers --->
Character devices --->
button driver --->
<*> BUTTON
7、编译内核
make zImage -j2
8、将生成的zImage拷贝到/tftpboot
cp arch/arm/boot/zImage /tftpboot/
9、重启开发板
[root@farsight /]# ls /dev/buttons
/dev/buttons
10、执行编译好的应用程序测试
[root@farsight /]# https://blog.csdn.net/qq_41831724/article/details/button
------buttons_open------
-------buttons_handler------------
key pressed
按下
-------buttons_handler------------
key up
松开
=============================分割线================================
总的config文件
ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi https://blog.csdn.net/qq_41831724/arch/arm/configs/sunmi_msm8937_defconfig
查看哪些被改过了
后面改了这几个 发现mytest居然能用啦
1 ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$vi https://blog.csdn.net/qq_41831724/arch/arm/configs/sunmi_msm8937_defconfig
2、ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi Kconfig
3、ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ vi Makefile
4、改完之后去到下面目录 可以用 ls -a 查看有无 .config文件 打开它 ubuntu@ubuntu:/work1/1168MP/out/target/product/zqp1168_p2lite/obj/kernel/msm-3.18$ vi .config
然后查看CONFIG_MYHELLO 是否已经根据 改了m或y
查看方法为:shift+g到文末; 然后 /MYHELLO ;就可定位到CONFIG_MYHELLO
ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ ls https://blog.csdn.net/qq_41831724/arch/arm/configs/ -l |grep sun
-rw-rw-r-- 1 ubuntu ubuntu 17196 7月 27 17:02 sunmi_msm8937_defconfig
-rw-rw-r-- 1 ubuntu ubuntu 16014 7月 9 14:58 sunmi_msm8937-perf_defconfig
-rw-rw-r-- 1 ubuntu ubuntu 2746 7月 9 14:58 sunxi_defconfig
查找一个文件在哪 可以用
ubuntu@ubuntu:/work1/1168MP/kernel/msm-3.18/drivers/misc$ find / -type f -name ".config"