最近有很多朋友在探討關於建立Linux交叉編譯環境的問題,下面就一些問題作一個說明,以期拋磚引玉。
基於Linux操作系統的應用開發環境一般是由目標系統硬件(開發板)和宿主PC機所構成。目標硬件開發板用於運行操作系統和系統應用軟件,而目標板所用到的操作系統的內核編譯、應用程序的開發和調試則需要通過宿主PC機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,並口或以太網接口建立連接關系。
但在此我建議構建如下的交叉編譯環境,適合個人或研發小組使用:單獨拿出一台PC機(PII以上即可,就用以前淘汰的舊機器就可以),在該PC上安裝桌面的Linux操作系統(如Red Hat Linux 8.0及以上),可以采用默認的安裝選項(注意要包含FTP服務),這台PC作為Linux服務器,除管理員以外,一般不直接讓其他人去操作。
將該Linux服務器接入局域網,並新建一些合法用戶,以便其他的PC機(在此我們將其稱為工作站)的合法用戶能訪問到Linux服務器。而其他的PC機(工作站)仍然使用Windows操作系統,原來干啥繼續干啥。
需要的軟件工具包括:
1、FTP客戶端程序(如Cuteftp,可到網上下載)。
2、Telnet工具(如SecureCRT,可到網上下載)。
3、移植到某一特定ARM平台的Linux操作系統內核源碼(一般由銷售商整理提供)。
4、GNU編譯工具,可由相關網站下載,或由銷售商整理提供。
在工作站安裝:
在某工作站PC上安裝FTP客戶端程序和Telnet工具,安裝完畢後應該可以在該工作站PC和Linux服務器之間進行文件的傳輸,並在工作站PC可以通過Telnet登陸到Linux服務器(可能需要將Linux服務器的防火牆服務關閉才能完成)。
在Linux服務器安裝:
將工作站PC上的Linux操作系統內核源碼壓縮包和GNU編譯工具通過FTP傳送到Linux服務器的某個目錄(如合法的用戶目錄),然後在該目錄下解壓,並將GNU編譯工具安裝到默認的工作目錄即可,以上工作通過在工作站PC使用Telnet工具完成,而不需要在Linux服務器上進行。
Linux操作系統內核的編譯:
Linux操作系統內核的編譯一般有一個比較固定的步驟,會根據MakeFile文件的不同而略有差異,可參考相關文檔,編譯的工作在工作站PC使用Telnet工具完成。
按固定的步驟編譯內核完成以後,會在相應目錄生成可執行的二進制文件,通過FTP將該可執行的二進制文件傳回工作站PC,然會再通過ADS或SDT下的燒寫工具寫入開發板的Flash即可。