驱动模块静态编译到 Linux 内核

一、准备好可以正常引导开发板的源码

二、在内核源码kernel文件夹的driver目录下,创建led_arm文件夹
        mkdir drivers/led_arm
三、将“LED驱动实验”的驱动程序拷贝到led_arm目录下(详情见上一次LED驱动博客)

       将led.c拷贝在该文件夹下面

Kconfig就是对应着内核的配置菜单。假如要想添加新的驱动到内核的源码中,可以通过修改Kconfig来增加对我们驱动的配置菜单,这样就有途径选择我们的驱动。

    每个config菜单项都要有类型定义,bool:布尔类型, tristate三态:内建、模块、移除, string:字符串, hex:十六进制, integer:整型

例如config HELLO_MODULE
bool "hello test module"

     bool类型的只能选中或不选中,tristate类型的菜单项多了编译成内核模块的选项,假如选择编译成内核模块,则会在.config中生成一个CONFIG_HELLO_MODULE=m的配置,假如选择内建,就是直接编译成内核影响,就会在.config中生成一个CONFIG_HELLO_MODULE=y的配置.


      ①添加一个Kconfig文件

[cpp]  view plain  copy
  1. config MYLED  
  2.     tristate "MYLED"  
  3.     default n  
  4.     help  
  5.     this is a LED driver  

      ②添加一个Makefile

[cpp]  view plain  copy
  1. obj-$(CONFIG_LEDTEST)+=led.o  

四、将我们编写的驱动支持选项增加进内核的配置菜单中。
    修改drivers目录中的Kconfig文件

在最后一行添加语句

[cpp]  view plain  copy
  1. source "drivers/led_arm/Kconfig"  

五、修改drivers/Makefile文件
   增加以下语句
     obj-$(CONFIG_LEDTEST)      +=led_arm/
六、重新配置内核
  在源码根目录输入
    #make Menuconfig 
   可以在菜单的最后,看到我们新加入的MYLED选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值