arm-linux-gcc版本4.3.2.以安裝在/usr/local/arm/4.3.2下.
第一步:
修改linux-2.6.34/makefile檔案,在makefile中找到以下兩條資訊並做修改
arch ? =arm
cross_compile ?=/usr/local/arm/4.3.2/bin/arm-linux-
第二步:
修改平台輸入時鐘
修改平台的時鐘頻率,修改核心原始碼「arch/arm/mach-s3c2440/mach-smdk2440.c」
把時鐘初始化中(s3c24xx_init_clocks(16934400 ))的16934400 改為12000000,因為我們的開發板上為12m
第三步:
修改機器型別id號::
bootloader啟動核心時,會傳遞機器型別id進來,這裡需根據bootloadr傳進的id修改核心id號.
在核心原始碼的「arch/arm/tools/mach-types」檔案查詢s3c2440,這裡剛好與我們的bootloader相同,所以不用做修改,直接儲存退出即可,如果不同則根據bootloader的內容修改此檔案,或根據此檔案修改boorloader的內容(在vivi中可通過param show檢視)。
第四步:
解壓yaffs2.tar.gz原始碼包,進入yaffs2資料夾,給核心打上補丁使核心支援yaffs2
# ./patch-ker.sh c /home/linux-2.6.34
結果:更新了兩個檔案系統下的檔案
updating /home/linux-2.6.34/fs/kconfig
updating /home/linux-2.6.34/fs/makefile
第五步:
修改核心mtd分割槽和bootloader(vivi)使其一致
編輯檔案arch/arm/plat-s3c24xx/common-smdk.c
static struct mtd_partition smdk_default_nand_part = ,
[1] = ,
[2] = ,
};第六步:
修改檔案drivers/mtd/nand/s3c2410.c
將s3c2410_nand_init_chip函式裡的nand_ecc_soft改為nand_ecc_none(因為在核心中預設配置不支援ecc校驗,當然也可以在核心配置時選中ecc選項)
修改後如下:
chip->ecc.mode = nand_ecc_none;
第七步:
到llinux-2.6.30目錄下執行命令
#cp arch/arm/configs/s3c2410_defconfig .config
第八步:
執行make menuconfig,並對選項進行配置
1)system type --->
s3c2440 and s3c2442 machines --->
僅保留smdk2440 與smdk2440 whith s3c2440 cpu module兩個選項,將其他的選項全部勾掉
2)kernel features --->
[*]use the arm eabi to compile the kernel(選中該選項)
3)file systems --->
a、把與ext2 ext3 ext4相關的所有選項全部去掉
b、miscellaneous filesystems --->
<*>yaffs2 file system support(選中此選項)
去除所有與jffs2相關的選項
儲存退出
第九步:執行make zimage
編譯生成核心.
在arch/arm/boot下生成編譯好的可執行程式zimage. 這個是在
vivi
下使用的.
wenhao@20110609
編譯 linux核心 2 6 34
最進核心老報錯,所以就產生編譯最新核心 2.6.34 第一步安裝必要的工具 首先要安裝必要的包。包有 libncurses5 dev menuconfig 需要的 和 essential sudo apt get install build essential kernel package sudo...
編譯arm linux核心
這一次寫一下編譯 arm核心以及根檔案系統的體驗,我使用的是 linux 2.6.30.4 的核心,通過 第一步 解壓原始檔 tar jxvf linux 2.6.30.4.tar.bz2 c opt 下。第二步 更改主目錄下 makefile 檔案,使其支援 arm架構。在 193行的 arch ...
CFS排程分析 核心版本 2 6 34
cfs不再有時間片的概念,他維護的是每個程序執行的時間記賬 使用排程器實體結構來追蹤程序執行記賬 無數統計變數 但是演算法核心就是圍繞vruntime設計。排程器實體,作為程序的乙個名為se的成員變數。cfs使用vruntime變數來記錄乙個程式到底執行了多長時間以及他要應該執行多久。中,up da...