天天看點

如何判斷硬體是否具有嵌入式Linux支援

如何判斷硬體是否具有嵌入式Linux支援

在為您的定制電子設計挑選零件時,可以預先檢查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核心更喜歡驅動程式名稱的小寫辨別符,但可能會發現大寫或小寫的線索。

如何判斷硬體是否具有嵌入式Linux支援

如果第二次忍忍不能判斷出來,接下來要嘗試的是從部件号中删除一些尾随字元,因為其中一些可能是指包裝,溫度範圍和其他不影響裝置邏輯操作的事情,而不是影響Linux驅動程式操作。

可以從搜尋字元串中逐個删除字元,直到獲得比對為止,然後根據資料表和結果做出明智的決定,以檢視你的部件是否受支援。檢視資料表,我們可以看到隻有S25FL512S部件與器件的邏輯操作相關。

如何判斷硬體是否具有嵌入式Linux支援

現在我們有一些結果,第一個結果是“jedec,spi-nor”裝置樹綁定的一些文檔。最後一個結果是進入“spi-nor.c”驅動程式中的表,該驅動程式描述了這個特定閃存晶片的一些屬性。

由此可以推斷出晶片是否受支援,并且如果按照第一個結果的文檔中所述添加了正确的裝置樹條目,則可以在引導時通過其JEDEC ID進行檢測。

例2:MCP79411-I / SN實時時鐘

再次,搜尋整個部件号并沒有透露任何資訊。檢視資料表,MCP79410,MCP79411和MCP79412隻有一個資料資料。唯一的差別是裝置内部存儲中提供的“唯一ID”類型。是以,我們可以嘗試搜尋“MCP7941”。

如何判斷硬體是否具有嵌入式Linux支援

我們再次獲得一些驅動程式結果和一些關于如何通過裝置樹添加支援的文檔。

終點

有時确切的部分将不會被明确支援,但它可能在功能上與另一部分相同,在這種情況下,相同的驅動程式可以用于兩者。

如果不支援該部分,則值得擁有最新Linux核心源代碼的副本以進行交叉引用。如果最近添加了支援,你可以将驅動程式“後退”到核心版本。

有時驅動程式已經編寫但尚未包含在官方核心源代碼中。它可能已經送出到郵件清單,你可以盡早嘗試。在很多情況下,搜尋引擎可以是一個很大的幫助。

本文由朗銳智科編輯整理(www.lrist.com),如有侵權請聯系本站。

繼續閱讀