pp电子

如何判断硬件是否具有嵌入式Linux支持

pp电子官网

郎瑞志科

在为自定义电子设计选择部件时,可以预先检查Linux驱动程序支持。为不受支持的硬件编写新驱动程序既费时又大,并且增加了项目的复杂性。

最好选择支持的硬件。我们如何首先检查硬件是否受支持?首先,您需要找到将要使用的Linux的确切版本。

获得正确的Linux内核

您可能正在使用kernel.org的内核版本,但也可以使用SOC供应商提供的任何自定义内核。如果您使用的是带有BSP imx_4.9.88_2.0.0_ga的NXP i.MX处理器,那么您将使用它。

您需要确保拥有将要使用的Linux内核的确切版本。已经添加和删除了支持,并且无法保证在两个不同版本的Linux内核中找到相同的代码。

搜索驱动程序支持

既然您拥有正确的内核源代码,那么如何检查是否支持给定的硬件部件号?

最好的方法是对您要查找的部件号进行文本搜索。下面将举例说明一些例子。

注意:在这些示例中使用了kernel.org的内核版本v5.0-rc1。搜索将使用'git grep',这是一个非常快速的命令行工具,用于搜索git存储库的全部内容。

例1:S25FL512SAGMFI011闪光灯

c5ad813f1d9f4d51a901f7fd9dd38af3

第一次尝试是搜索整个零件号。

如果没有结果。下一步是使用不区分大小写的设置进行搜索。最好搜索不区分大小写的内容,因为Linux内核更喜欢驱动程序名称的小写标识符,但您可以找到大写或小写的线索。

4c4123c04fc94c0bbf70c0de28181fd6

如果第二次尝试仍然不成功。下一步是从部件号中删除一些尾随字符,因为其中一些可能涉及封装,温度范围和其他不影响设备逻辑操作的事物,而不是影响Linux驱动程序操作。

您可以从搜索字符串中逐个删除字符,直到获得匹配,然后根据数据表和结果做出明智的决定,以查看您的部件是否受支持。查看数据表,我们?梢钥吹街挥蠸25FL512S组件与器件的逻辑操作有关。

d4cf3eb0f35440deab43679fcc3b1a6c

第一个结果是“jedec,spi-nor”设备树绑定的一些文档。最终结果是在“spi-nor.c”驱动程序中输入表格,该驱动程序描述了此特定闪存芯片的一些属性。

目,则可以在引导时通过其JEDEC ID检测到它。

例2:MCP79411-I/SN实时时钟

同样,搜索整个部件号并未显示任何信息。查看数据手册,MCP79410,MCP79411和MCP79412只有一个数据手册。唯一的区别是设备内部存储中提供的“唯一ID”类型。因此,我们可以尝试搜索“MCP7941”。

8742c1cda8f249e48562a18a1096eaac

我们再次获得一些驱动程序结果以及有关如何通过设备树添加支持的一些文档。

终点

有时确切的部分将不会被明确支持,但它可能在功能上与其他部分相同,在这种情况下,可以使用相同的驱动程序。

如果不支持此部分,则值得拥有用于交叉引用的最新Linux内核源代码的副本。如果最近添加了支持,则可以将驱动程序“备份”到内核版本。

有时驱动程序已经编写但尚未包含在官方内核源代码中。它可能已经提交到邮件列表,可以尽早尝试。在许多情况下,搜索引擎可以提供很大的帮助。