• 简单添加自己的驱动程序到Linux内核树中


    --- title: 简单添加自己的驱动程序到Linux内核树中 date: 2020-06-22 07:50:00 categories: tags: - Linux - kernel - driver ---

    背景

    移植4g模块的时候,看到文档中有添加驱动到内核的步骤,于是趁着这个机会,展开有关的学习。

    了解更多可以访问:《Kconfig语法简介

    Target    :hi3531d

    Linux    :Linux-3.18

    有关概念:

    内核源码编译过程:

    • 从顶层目录开始,遍历每个源码目录(或配置指定的源码目录)中的Makefile;

    • 每个目录的Makefile 会根据Kconfig来定制要编译对象 回到顶层目录的Makeifle执行编译。那么,也就有:

    .config ---> (源码顶层目录下)保存选择结果
    Kconfig ---> (每个源码目录下)提供选项
    Makefile---> (每个源码目录下)根据.config中的内容来告知编译系统如何编译
    

    步骤:

    在自己喜欢的位置创建一个目录(前提是这个目录下面存在Kconfig以及Makefile)

    为了方便演示,我们这里在 drivers 目录下面创建 demo 文件夹

    进入到新建的目录下。img

    在新建的目录下创建Kconfig文件

    config DEMO
        bool "Test driver"
        help
            This is a demo for test
    

    在新建的目录下创建Makefile文件

    当CONFIG_选项名=y时,表示对应目录下的xxx.c将被编译进内核;当CONFIG_选项名=m 时对应目录下的xxx.c将被编译成模块

    Obj-$(CONFIG_DEMO) += demo.o
    

    目前的情况:

    img

    修改与新建目录同级Kconfig

    添加一行,为的是:将新建目录下的Kconfig文件添加到配置搜寻目录中

    source "drivers/demo/Kconfig"
    

    修改与新建目录同级Makefile

    添加一行,为的是使用配置项来管理是否需要编译demo目录下的代码

    obj-$(CONFIG_DEMO) += demo/
    

    目前的情况:

    img

    img

    最终的效果:

    img

  • 相关阅读:
    每天一个Linux命令(10)--cat命令
    每天一个Linux命令(09)--touch命令
    每天一个Linux命令(08)--cp命令
    每天一个Linux命令(07)--mv命令
    CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
    iptables配置服务器端口转发
    AD管理命令
    win7登入使用的是临时档案解决方法
    修复Dll文件
    iptables 用法
  • 原文地址:https://www.cnblogs.com/schips/p/13178792.html
Copyright © 2020-2023  润新知