我已经开发了Linux设备驱动程序。截至目前,我正在使用arm交叉编译器在Ubuntu 12.04上对其进行编译,然后将其插入到我的arm Linux镜像中。但是我想学习如何在Linux源代码中添加它,并通过配置arm Linux提供并提供添加/删除的选项,以便可以使用Linux源代码编译来对其进行编译?

有任何想法吗?

最佳答案

要在arm体系结构中交叉编译您自己的驱动程序,您必须执行以下一些步骤。

  • 在驱动程序(位于Linux源代码中)内为驱动程序创建一个类似于my_drvr的目录,并将驱动程序(my_driver.c)文件放入此目录中。看起来像/linux_source_code/drivers/my_drvr/my_driver.c
  • 在驱动程序目录(使用vi任何编辑器)和此put obj-$(CONFIG_MY_DRIVER) += my_driver.o内部创建一个Makefile
    并保存此文件。这看起来像/linux_source_code/drivers/my_drvr/Makefile
  • 在驱动程序目录中创建一个Kconfig文件(使用vi任何编辑器),并在此put内

    配置MY_DRIVER
    tristate“my driver” //给出您的驱动程序描述,例如供应商名称等。
    取决于ARM
    如果是ARM,则默认为y
    救命
    我的驱动程序模块。
  • 保存此文件,该文件将显示为/linux_source_code/drivers/my_drvr/Kconfig
  • 在Linux源驱动程序Makefile中的KconfigMakefile文件中添加Kconfig/linux_source_code/drivers/Makefile文件
    /linux_source_code/drivers/Kconfig
  • 在Makefile中,在最后一行中添加以下内容

    obj-y + = my_drvr /

    要么

    obj-$(CONFIG_MY_DRIVER)+ = my_drvr /
  • 在Kconfig文件中,在最后一行中添加以下内容

    来源“drivers / my_drvr / Kconfig”
  • 最后必须将Kconfig文件添加到特定于体系结构的配置文件中,该文件将位于kernel_source/arch/arm/configs/--defconfig中,位于最后一行的下面

    CONFIG_MY_DRIVER = y

  • 注意:-最后一步会根据您的体系结构而有所不同,因此请保重。
    现在,您可以使用make命令来编译驱动程序。
    (例如:sun7i_defconfig)

    关于linux-kernel - 在Linux源代码中添加新的驱动程序代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11710022/

    10-15 03:46