加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

介绍将驱动程序编译进Linux内核

发布时间:2021-11-19 14:11:23 所属栏目:教程 来源:互联网
导读:1、进入目录linux-kernel-samsung-devdriverschar 2、新建目标目录01.led,将驱动相关文件复制到此目录 注:需确保复制的驱动文件是能正常运行的驱动 3、在目录01.led里编写Kconfig文件 menu xxx config XXX_LED tristate xxx_ggg210_led default n help T

1、进入目录linux-kernel-samsung-devdriverschar
 
2、新建目标目录01.led,将驱动相关文件复制到此目录
  注:需确保复制的驱动文件是能正常运行的驱动
 
3、在目录01.led里编写Kconfig文件
menu "xxx"
 
config XXX_LED
        tristate "xxx_ggg210_led"
        default n
        help
          The led water made by xxx which was used by platform!
 
endmenu
 
4、在目录01.led里编写Makefile文件
obj-$(CONFIG_XXX_LED) += led_dev.o led_drv.o
 
5、修改01.led上级目录char里的Makefile文件
增加:obj-$(CONFIG_XXX_LED) += 01.led/
 
6、修改01.led上级目录char里的Kconfig文件
 
增加:source "drivers/char/01.led/Kconfig"
 
7、正确配置好之后,执行make menuconfig命令弹出菜单,然后按照下面步骤一一进入
    Location:
      -> Device Drivers
        -> Character devices
          -> xxx
                < > xxx_ggg210_led (NEW)
 
8、使用“空格”键选择“*”号:
                <*> xxx_ggg210_led (NEW) 表示将该模块编译进内核中
 
9、执行命令:make -j 2 uImage
  (“-j 2”表示开启2个线程以加快编译速度)
               
10、将生成的uImage文件烧录到开发板
 
11、开发板内核启动完成后,使用“ls /dev”命令查看是否有设备节点,以确认是否添加成功
 
12、删除驱动模块。
    首先删除drivers目录下的01.led文件夹,然后再删除之前在相应Makefile和Kconfig中添加的语句。
 
########################################################################################
设备驱动程序存放在内核源码树根目录 drivers/ 的子目录下,在其内部,设备驱动文件进一步按照类别,类型等有序地组织起来。
a. 字符设备存在于 drivers/char/ 目录下
b. 块设备存放在 drivers/block/ 目录下
c. USB 设备则存放在 drivers/usb/ 目录下。
 
注意:
 
(1) 此处的文件组织规则并非绝对不变,例如: USB 设备也属于字符设备,也可以存放在 drivers/usb/ 目录下。
(2) 在 drivers/char/ 目录下,在该目录下同时存在大量的 C 源代码文件和许多其他目录。所有对于仅仅只有一两个源文件的设备驱动程序,可以直接存放在该目录下,但如果驱动程序包含许多源文件和其他辅助文件,那么可以创建一个新子目录。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读