内核新增驱动

      在根目录下进入/usr/src/linux-2.*****的某个版本进行这次的实验,在进入其下drivers目录,ls查看,可以看到MakefileKconfig 。mkdir  自己随意取目录名,如:mkdir litest(新增一目录),在里面创建一些文件,因为我们此次只是为让大家了解这里面的Makefile和Kconfig和内核驱动的联系,没有涉及真正编译文件,所以对于目录里的文件我们这里不谈。首先在litest必须下touch Makefile  Kcongfig ,其它文件可以根据需要创建,方便后面举例,我们touch test.o  test_queque.o   test_client.o。Makefile相当文件管理器,通俗些就是文件的仓库,Kconfig配置文件,通俗讲就是给用户提供的选择信息,而用户所选的信息会保存在内核目录下的.config中,这是个隐藏文件,ls -a才能看到,如果你还看不到,那是你现在用的这台机子还没有过这样的体验操作。红色字和黄色字文件名相同,但是可以看到他们的从属关系,Makefile是内层的,Makefile 是外层的,Kconfig文件同理。如果还没懂,nothing,再给你个nice的说法,就好像皇帝身边的太监是大内所有太监的总管一样,只要这个小太监信息在我这报备了,我就管得着你。

     

      这里拿Makefile来说,我们修改外层是为了让drivers的下Makefile 有litest的信息,跟Makefile建立了层次关系,就相当钩子挂了网上,这一提才能整体都起来的道理,使得外层能够统一管理和查看, Kconfig同理。以上是让我们对Makefile和Kconfig有逻辑上的认识,下面的我们就开始完成想法。

      tips:

           s1. 在drivers/Kconfig中增加语句:
                   source ”drivers/litest/Kconfig”

            s2.修改drivers/Makefile中增加语句:
                   obj-$(CONFIG_liTEST)+=litest/

 

            s3.在litest/Kconfig中增加语句:
                          menu "litest Driver"
                          comment "Test Driver"
                          config TEST
                          bool "test support"
                          config TEST_USER
                          tristate "test user-space interface"
                          depends on TEST
                          endmenu

 

             s4.在litest/Makefile中增加语句:
                      obj-$(CONFIG_TEST ) +=test.o test_queque.o test_client.o    //执行与否取决config TEST
                                                                                                                          中TEST 的值

                      obj-$(CONFIG_TEST_USER ) +=test_ioctl.o                               //执行与否取决config TEST_USER
                                                                                                                          TEST_USER的值
               备注:bool有Y 或 N两种选择;tristate有 Y, M, N三种选择。而后者config TEST_USER是依赖于前者 config TEST存在的,当前者为N时,后者不再出现,也不会再有三种选择。

                
        操作完成,在内核目录下sudo make menuconfig进入图形化界面,查找Device Drivers一项点击进入,看到litest了吗?退出后选YES保存,在内核目录下vim  .config打开,键入/litest 你便会找到litest Driver了。

       

        删除你的作品也很简单,首先在drivers目录下删除整个目录rm -r litest,其次删除你在drivers下Makefile和Kconfig之前添加的东西,就OK了,所以你不必担心它会对你的内核产生任何的不良反应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值