uClinux-dist 使用教學:編譯 uClinux-dist 與常見問題

jollen 發表於 February 26, 2004 1:40 PM

編譯 uClinux-dist

完成 kernel 與 filesystem 設定後,在命令模式執行編譯命令:

# make dep
# make

進行 kernel 與應用程式的跨平臺編譯。在編譯之前,請檢查跨平臺編譯工具組(如GNU armtools)是否已安裝,同時在環境變數 PATH 的搜尋路徑裡也要能找到相關的程式。

uClinux-dist 會幫我們製作 root filesystem 的映像檔(image file),最後編譯完成的 kernel 與 root filesystem 映像檔會存放於 image/ 目錄下。編譯成功後會得到 4 個主要的檔案如下:

˙ images/linux.text:kernel的.text節區。
˙ images/linux.data:kernel的.data節區。
˙ images/romfs.img:filesystem的映像檔。
˙ images/image.bin:以上 3 個檔案合併後的映像檔。

在這裡我將 uClinux-dist 設定成「GDB/ARMulator」,這樣我們之後就可以用 GDB/ARMulator 來玩這個 root filesystem 了。

常見問題

在許多無法成功編譯 uClinux-dist 的案例中,最常見到的問題有2個。

第一種情況為 GNU armtools 安裝不完整,導致在編譯的過程中出現錯誤,例如在 uClinux-dist 中選用 uClibc,但並未安裝 uClibc 套件,或是系統設定的問題,導致編譯器無法找到正確的程式庫位置。因此若在編譯 uClinux-dist 的過程出現錯誤,請先檢查 GNU armtools 的安裝是否完整,同時也記得安裝所選用的 C 程式庫。

第二種情況為套件的設定與 C 函式庫有衝突,例如有些套件不能使用 uClibc,必須改用 uC-libc 才能成功編譯。

讀者留言 (0)

我要留言

為了防止spam攻撃,按「發表」後請輸入帳號密碼。使用者帳號:「nospam」、密碼:「nospam」。當然,您發表的意見將被立即接受。

已儲存成功

謝謝!

連絡作者

Jollen Chen,Moko365(仕橙3G教室)講師,熱愛研究 Linux 與 Android 技術。曾為 Motorola、HTC、Foxconn、LG、OPPO、騰迅、廣達電腦、緯創、仁寶等超過 50 家企業講授課程。目前在 MokoVersity 擔任軟體工程師,撰寫 Node.js 程式,也在幾家科技廠兼任 Android Framework 研發顧問。您可透過電子郵件 <jollen (at) jollen (dot) org> 或這裡與我連絡。