首页 > 解决方案 > 驱动程序是否需要包含 DTS 文件?

问题描述

我的目标是在当前的 Linux 内核上移植这个驱动程序。我到现在为止所做的事情......

1) 下载当前内核版本的源代码。

2) 下载了 dev_parallel.c、Makefile、Kconfig 用于修改代码。

3)使用“make”命令,我能够编译驱动程序而没有错误。

4)使用“make modules”命令,我能够生成一个 .o 文件。

5)使用“make modules_install”命令我能够得到.ko文件。

6)使用“modprobe”命令我能够成功加载模块而没有任何内核恐慌。

但我看到此驱动程序有一个 DTS 文件位于此处。我知道 dts 文件被编译为 dtb 文件,内核在启动时读取这些文件并自动加载模块。

但是是否有必要拥有这个 DTS 文件或只是 modprobe 命令将为我完成这项工作?

我所说的驱动程序是用于电子纸显示器(EPD)的。

因此,如果我连接 EPD,然后执行 modprobe 以加载驱动程序,它会工作还是我需要 DTS 文件才能使其正常工作?

标签: linux-kernellinux-device-driverbeagleboneblackdevice-driverdevice-tree

解决方案


设备树是Linux内核源代码树中描述某个平台硬件的一组文本文件。它们可以有两个扩展:

  • *.dtsi 文件是设备树源包含文件。它们描述了几个平台通用的硬件,这些平台在它们的 *.dts 文件中包含这些文件。
  • *.dts 文件是设备树源文件。他们描述了一个特定的平台。

通常会加载内核映像和设备树二进制文件(低级设备描述,特定于您的设备)。3.8+ 内核已经支持除 APF9328 之外的所有 Armadeus 平台的设备树。大多数嵌入式平台不提供方法发现他们拥有的硬件。您要么不得不依靠猜测(这是不可行的),要么向 Linux 内核提供有关板和外围设备的信息。设备树文件存在于 arch/your_device_arch/boot/dts 中。


推荐阅读