編譯arm linux核心

2021-06-16 05:35:49 字數 1406 閱讀 3732

這一次寫一下編譯

arm核心以及根檔案系統的體驗,我使用的是

linux-2.6.30.4

的核心,通過

第一步:

解壓原始檔

tar jxvf linux-2.6.30.4.tar.bz2–c /opt

下。第二步:

更改主目錄下

makefile

檔案,使其支援

arm架構。在

193行的

arch

?= $(subarch)

更改為arch

?=arm

將cross_compfile ?=

更改為cross_compfile ?= arm-linux-

。第三步:

修改平台的輸入時鐘,我們採用的平台是

tq2440

的開發板,該平台採用的是

12m赫茲的主頻,所以需要修改其

arch/arm/mach-s3c2440/mach-smdk2440.c

的__init smdk2440_map_io(void)

函式的時鐘

16934400

改為12000000.

第四步:

更改平台機器碼,使得

u-boot

的機器碼與核心的機器碼一致,因為

u-boot

的機器碼是

168(系統提供,在

include/asm-arm/mach-types.h

中),所以在核心中將機器碼改為

168(

/arch/arm/tools/mach-types

,預設是

362)

第五步:

修改nand flash

分割槽資訊(

arch/arm/plat-s3c24xx/common-smdk..c

)nand

的分割槽資訊與

u-boot

的分割槽資訊一致。

所以這裡需要注意的是核心的分割槽資訊與

u-boot

的分割槽資訊可能不一致,其實他們之間沒有什麼關係,最主要的是將核心的分割槽資訊尤其是核心的

kernel

的分割槽資訊和根檔案系統分割槽得

offset

和size

定義好。

第六步make menuconfig

:因為編譯的是基於

arm的核心,所以將

arch/arm/boot/configs/s3c2410_defconfig

配置檔案複製到根目錄下,然後執行

make menuconfig

第七步:

make zimage

,在/arch/arm/boot下生成

zimage

核心映象檔案。將映象檔案燒寫到板子上即可

ARM Linux 交叉編譯

編譯選項 i 指定標頭檔案的目錄 預設的頭檔案目錄是工具鏈裡的include目錄 預設的庫檔案目錄是工具鏈裡的lib 目錄 檔案最多的lib目錄 lib usr lib usr local lib l l 指定使用哪乙個so動態庫 ljpeg 使用libjpeg.so這個動態庫 預設標頭檔案木 us...

arm linux 核心生成過程

1.依據arch arm kernel vmlinux.lds 生成linux核心原始碼根目錄下的vmlinux,這個vmlinux屬於未壓縮,帶除錯資訊 符號表的最初的核心,大小約23mb arm linux gnu ld el p no undefined x o vmlinux t arch ...

arm linux交叉編譯環境

patch p1 patch 2.4.19 rmk7 6 修改makefile 將 arch arm 7 make menuconfig 配置 核心 8 system type 中選擇 clps711x ep721x based arm system type clps711x ep721x bas...