1. 程式人生 > >openwrt新增新平臺支援

openwrt新增新平臺支援

大多數時候,與SDK一起提供的核心原始碼並不是很乾淨,而且不是標準的Linux版本,它還具有從核心開發樹的CVS或git倉庫返回的架構特定修復。無論如何,一些零件可以很容易地隔離,並作為一個好的開始,使一個香草核心工作你的硬體。

一些目錄很可能需要進行本地修改,以便在Linux下識別和使用您的硬體。首先,您需要找出硬體使用的linux核心版本,這可以通過編輯linux / Makefile檔案來找到。

head -5 linux-2.x.x/Makefile  
VERSION = 2  
PATCHLEVEL = x  
SUBLEVEL = y  
EXTRAVERSION = z  
NAME=A fancy name

所以現在,你知道你必須在kernel.org下下載一個與硬體使用的版本相匹配的標準核心tarball。

然後,您可以在兩個樹之間建立一個diff檔案,特別是對於以下目錄:

diff -urN linux-2.x.x/arch/sub architecture linux-2.x.x-modified/arch/sub architecture > 01-architecture.patch  
diff -urN linux-2.x.x/include/ linux-2.x.x-modified/include > 02-includes.patch  
diff -urN linux-2.x.x/drivers/ linux-2.x.x-modified/drivers > 03-drivers.patch
這將構成一組基本的三個補丁,這些補丁很有可能包含任何需要修改的記憶體,用於在您的特定裝置上執行庫存的Linux核心。當然,diff -urN產生的內容可能並不總是相關的,所以你必須清理這些補丁,只允許“必須”程式碼。

第一個補丁將包含板子在啟動時初始化所需的所有程式碼,以及處理器檢測和其他引導時間特定的修復。

第二個補丁將包含該板的所有有用的定義:地址,核心粒度,重新定義,處理器系列和功能...

第三個補丁可能包含以下驅動程式:序列控制檯,乙太網網絡卡,無線網絡卡,USB網絡卡...大部分時間此補丁程式除了新增的“膠”程式碼之外,還可以使二進位制驅動程式與Linux核心一起使用。如果您計劃從頭開始為此硬體編寫驅動程式,則此程式碼可能無用。