這一次寫一下編譯
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...