2. 準備編譯
配置工具鏈:
由於編譯後準備使用在jz2440的開發板上,因此需要將交叉編譯工具連的資訊寫到makefile中,將主目錄下makefile的以下兩項修改
arch ?= arm
cross_compile ?= arm-linux-gnueabi-
高版本的liunx核心可能沒有cross_compile,自行新增上就好。
載入編譯配置:
因為要位jz2440使用,因此在config資料夾下找尋最相似的檔案進行配置
根目錄下執行: make s3c2410_defconfig
這會將基本配置項寫道根目錄下的.config檔案中,這個檔案也就是執行make的時候載入的配置項,同時可以執行make menuconfig對載入後的配置進行手工修改
進行編譯:
由於使用uboot做啟動,因此編譯的時候需要編譯出uimage檔案,在4.20版本下uimage的載入位址需要自己指定,這個需要配套結合uboot的設定進行修改,我在uboot中設定的核心載入位址是0x30108000,因此執行以下命令進行編譯
等待編譯完成即可在arch/arm/boot下找到生成的uimage了
編後語:
這裡只是基本的編譯流程,這麼編出來的包是肯定不能使用的,例如需要針對分割槽位址進行設計,核心大小進行剪裁,檔案系統支援,uboot配套分割槽位址,等等。
這些內容稍後在一一記錄,
linux 核心編譯準備
在編譯linux核心之前必須做一些準備工作,首先準備的是linux作業系統,另外要注意 核心源 不要放在 usr src linux 資料夾下 這個資料夾下有很多系統庫,會和源 發生衝突 編譯linux核心需要在linux完成。有些人也許會迷惑,用linux編譯linux系統,這不是雞和蛋的問題嗎,...
linux核心編譯及燒寫
本文實現在虛擬機器中的ubuntu系統中編譯能夠在arm晶元上執行的linux系統 給arm晶元裝系統 安裝虛擬機器,裝ubuntu 12.4系統 1 安裝交叉編譯工具 什麼系統用什麼編譯工具,編譯arm晶元核心的編譯器請選擇廠商給的工具,如給的壓縮包為arm.tar.bz2,解壓到指定資料夾後通過...
linux體系結構及編譯核心
一 核心空間與使用者空間 核心空間與使用者空間是程式執行的兩種不同狀態,通過 系統呼叫和硬體 中斷能夠完成從使用者空間到核心空間的轉移。二 linux核心架構 三 目錄結構 arch 架構相關的目錄 block 部分塊裝置驅動程式 crypto 加密 壓縮 crc校驗演算法 documentatio...