在为定制电子设计挑选零件时,可以预先检查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闪光灯
第一次尝试是搜索整个部件号。
如果没有任何结果。下一步将使用不区分大小写的设置进行搜索。最好搜索不区分大小写的内容,因为linux内核更喜欢驱动程序名称的小写标识符,但你可能会发现大写或小写的线索。
如果第二次尝试仍然不成功。接下来就是要从部件号中删除一些尾随字符,因为其中一些可能是指包装,温度范围和其他不影响设备逻辑操作的事情,而不是影响linux驱动程序操作。
你可以从搜索字符串中逐个删除字符,直到获得匹配为止,然后根据数据表和结果做出明智的决定,以查看你的部件是否受支持。查看数据表,我们可以看到只有s25fl512s部件与器件的逻辑操作相关。
第一个结果是“jedec,spi-nor”设备树绑定的一些文档。最后一个结果是进入“spi-nor.c”驱动程序中的表,该驱动程序描述了这个特定闪存芯片的一些属性。
由此可以推断出芯片是否受支持,并且如果按照第一个结果的文档中所述添加了正确的设备树条目,则可以在引导时通过其jedec id进行检测。
例2:mcp79411-i / sn实时时钟
再次,搜索整个部件号并没有透露任何信息。查看数据表,mcp79410,mcp79411和mcp79412只有一个数据资料。唯一的区别是设备内部存储中提供的“唯一id”类型。因此,我们可以尝试搜索“mcp7941”。
我们再次获得一些驱动程序结果和一些关于如何通过设备树添加支持的文档。
终点
有时确切的部分将不会被明确支持,但它可能在功能上与另一部分相同,在这种情况下,相同的驱动程序可以用于两者。
如果不支持该部分,则值得拥有最新linux内核源代码的副本以进行交叉引用。如果最近添加了支持,你可以将驱动程序“后退”到内核版本。
有时驱动程序已经编写但尚未包含在官方内核源代码中。它可能已经提交到邮件列表,可以尽早尝试。在许多情况下,搜索引擎可以是一个很大的帮助。
来源:朗锐智科
FCC电流探头的产品介绍及其测试方法
深度:iPhone被禁有可能促成高通与苹果和解
订单将增加一倍,AMD今年或成为台积电7nm最大客户
高通与英特尔的霸权地位,有松动的可能吗?
中消协:所谓“量子产品”是伪科技
硬件是否具有嵌入式Linux支持怎样来判断
索尼新机疑似搭载骁龙845,配备6GB运存+128GB存储
停车场物联网解决方案4G工业路由器应用
为什么激光SLAM能够成为现下主流?它又是如何实现快速发展?
可以实现3节-24节动力电池组均衡的电池平衡IC ETA3001
人工智能或将成为本届高考一大热点
苹果A15处理器将采用台积电第二代5nm工艺制造
英特尔和美光结束他们在3D XPoint上的合作
华为荣耀9听好音乐HIFI手机推荐,成为新声代不再是梦想!
人脸识别技术引爆“刷脸时代” 国家标准制定速度要加快
上太空的微笑机器人Simon 能够帮助管理宇航员的情绪
InSense有望颠覆惯性MEMS产业格局
量子计算会商品化吗?
变配电的主要任务 变配电的五防是什么
戴森公布电动车专利 现代发售钢铁侠联名款