• 简单添加自己的驱动程序到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

  • 相关阅读:
    WGS84经纬度坐标与web墨卡托之间的转换【转】
    ArcGIS API for Javascript配置
    百度地图BMap API实例
    VS2010 Web项目需要缺少的Web组件才能加载
    单态模式
    对服务的操作
    根据子级ID获取其所有父级
    在DropDownList里显示多级分类
    jQuery给CheckBox添加事件
    FolderBrowserDialog使用
  • 原文地址:https://www.cnblogs.com/schips/p/13178792.html
Copyright © 2020-2023  润新知