0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

星星科技指导员 来源:嵌入式计算设计 作者:Ville Baillie 2022-12-01 14:25 次阅读

在为您的定制电子设计挑选零件时,可以提前检查 Linux 驱动程序支持。为不受支持的硬件编写新的驱动程序非常耗时,会带来风险,并增加项目的复杂性。

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

获得正确的 Linux 内核

您可能使用的是 kernel.org 的内核版本,但更有可能使用的是 SOC 供应商提供的任何定制内核。例如,如果您使用的是带有BSP imx_4.9.88_2.0.0_ga的恩智浦 i.MX 处理器,那么您将使用它。

您需要确保您拥有将使用的 Linux 内核的确切版本。支持一直在添加和删除,不能保证在两个不同版本的 Linux 内核中找到相同的代码。

搜索驱动程序支持

现在您已经有了正确的内核源代码,如何检查是否支持给定的硬件部件号?

最好的方法是对您要查找的部件号进行文本搜索。我将用几个例子来说明这一点。

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

示例 1:S25FL512SAGMFI011 闪存

您可以尝试的第一件事是搜索整个零件号。

poYBAGOISQyAabw9AABS1OgXynM646.png

这什么也想不出来。下一步是在设置不区分大小写的情况下进行搜索。最好搜索不区分大小写的字符,因为 Linux 内核更喜欢使用小写标识符作为驱动程序名称,但您可能会找到大写或小写的线索。

pYYBAGOISRGAW6z0AABRJXUnziA489.png

不幸的是,这仍然没有提出任何东西。接下来要尝试的是删除部件号中的一些尾随字符,因为其中一些可能是指包装、温度范围和其他不影响设备逻辑操作且不影响 Linux 驱动程序操作的内容。

您可以从搜索字符串中逐个删除字符,直到获得匹配项,然后根据数据表和结果做出明智的决定,以查看您的部件是否受支持。查看数据手册,我们可以看到只有S25FL512S部分与器件的逻辑操作相关。

poYBAGOISRiAYhqhAAMF7Mmlvt8585.png

现在我们有一些有趣的结果。第一个结果是“jedec,spi-nor”设备树绑定的一些文档。最后一个结果是在“spi-nor.c”驱动程序中找到的表中的条目,该表描述了此特定闪存芯片的某些属性。

由此我们可以推断出该芯片是受支持的,并且可以在启动时通过其 JEDEC ID 进行检测,如果按照第一个结果的文档中所述添加了正确的设备树条目。

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

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

pYYBAGOISR6Ab-VUAAGg9fo9I6s414.png

同样,我们得到了一些驱动程序结果和一些有关如何通过设备树添加支持的文档。

结语

有时不会显式支持确切的部件,但它在功能上可能与另一部件相同,在这种情况下,可以对两者使用相同的驱动程序。

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

有时驱动程序已经编写,但尚未包含在官方内核源代码中。它可能已提交到邮件列表,您可以尽早试用。在所有情况下,“谷歌”都可以是一个很大的帮助。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    38

    文章

    3750

    浏览量

    215744
  • Linux
    +关注

    关注

    87

    文章

    10994

    浏览量

    206772
收藏 人收藏

    评论

    相关推荐

    CCG3是否支持AlteranteMode上的嵌入式显示端口?

    我有一个关于 CCG3 的问题。 CCG3 是否支持 AlteranteMode 上的嵌入式显示端口?
    发表于 03-05 06:44

    嵌入式软件开发应该掌握哪些知识?

    的控制,如GPIO、串口、SPI、I2C 等。这使得嵌入式软件开发人员能够充分利用硬件资源,满足特定的需求。 1.2数据结构与算法 嵌入式系统通常具有有限的内存资源。通过使用合适的数据
    发表于 02-19 11:23

    嵌入式自学好书推荐

    单片机能为嵌入式系统的开发奠定良好基础。推荐书籍:《新型单片机开关电源的设计与应用》。 4.Linux基础:熟悉Linux源码和架构对嵌入式系统的开发非常重要。掌握
    发表于 01-11 15:13

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程
    发表于 12-05 15:17

    请问ESP32有没有被支持嵌入式linux系统?

    ESP32有没有被支持嵌入式linux系统?
    发表于 11-06 06:10

    什么是嵌入式Linux

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,
    发表于 10-11 13:47

    嵌入式Linux开发教程

    嵌入式Linux开发教程(下册)
    发表于 09-27 07:11

    嵌入式Linux应用开发的完全手册

    论坛疯狂发帖求教,现在回头一看不免感叹:怎么会提出这么弱智的问题?但是,当时就是被这类问题折磨得寝食难安。 相对于嵌入式Linux常识的匮乏,更大的困难是缺乏完善的知识结构:只了解硬件,或是只了解软件
    发表于 09-25 07:12

    基于树莓派的嵌入式Linux开发教学

    树莓派对于全球嵌入式 Linux 开发及教育已经并将继续带来广泛的影响,及早将之引入我国主流的嵌入式开发与教学环境中或将是有益的。尽管传统的 “ARM 开发板硬件设计 +
    发表于 09-21 07:09

    嵌入式Linux命令总结

    嵌入式Linux命令总结
    发表于 09-19 16:30 283次阅读

    嵌入式软件好还是硬件好?

    嵌入式硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件
    发表于 09-18 15:31

    嵌入式新手应该怎么学?

    文件的时候只能用这个),现在很多的人对鼠标早是情有独钟了,很少用到命令,在学习嵌入式Linux可要改改这个习惯了,Linux用命令操作具有效率高、功能强大的特点,这个是图形界面无法取代
    发表于 09-08 10:22

    嵌入式Linux GDB是什么

    在学习单片机的时候我们可以通过集成式 IDE 来进行调试,比如 MDK、IAR 等。 在嵌入式 linux 领域是否也可以进行调试呢? 答案肯定是可以的,在嵌入式
    的头像 发表于 07-27 16:29 457次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> GDB是什么

    关于嵌入式Linux的网络接口设计

    1.1 嵌入式网络简介 1.1.1 嵌入式下的网络硬件接口 提起网络,我们一般想到的硬件就是“网卡”,现在网卡已经是通过一个芯片来完成了,嵌入式
    的头像 发表于 06-22 11:42 379次阅读
    关于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的网络接口设计

    嵌入式学习路线你知道吗?

    嵌入式学习路线你知道吗? 1打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常
    发表于 06-14 16:00