linux-kernel - 驱动程序是否需要包含 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内核源代码树中描述某个平台硬件的一组文本文件。它们可以有两个扩展:
- *.dtsi 文件是设备树源包含文件。它们描述了几个平台通用的硬件,这些平台在它们的 *.dts 文件中包含这些文件。
- *.dts 文件是设备树源文件。他们描述了一个特定的平台。
通常会加载内核映像和设备树二进制文件(低级设备描述,特定于您的设备)。3.8+ 内核已经支持除 APF9328 之外的所有 Armadeus 平台的设备树。大多数嵌入式平台不提供方法发现他们拥有的硬件。您要么不得不依靠猜测(这是不可行的),要么向 Linux 内核提供有关板和外围设备的信息。设备树文件存在于 arch/your_device_arch/boot/dts 中。
推荐阅读
- java - iText PDF模板在表格上动态插入行
- java - Spring boot MongoDB Change Streams 不起作用
- javascript - 按钮定位问题
- git - 什么创建了远程 git 存储库?
- google-apps-script - 如何获取包含许多页面的 Google 网站的所有页面
- tensorflow - 形状在 tf.data.Dataset.from_tensor_slices 的最后一条记录中不兼容
- c - 如何仅使用键盘将值从一个整数数组复制到另一个整数数组来填充它们?
- android - SupportMapFragment (V2) - 一些像 OnInfoWindowClickListener 这样的 clicklisteres 不起作用
- javascript - 当用户单击一个元素时,如何准确地运行一个函数?
- python - IB API:请求不存在的历史数据时出错