linux3 4 2核心移植詳解(二) 移植核心

2021-09-18 02:33:25 字數 1882 閱讀 8287

解壓進入核心頂層目錄:tar xjf linux-3.4.2.tar.bz2

修改頂層makeflie:

arch        ?= arm

cross_compile   ?= arm-linux-

執行make s3c2410_defconfig會出現:

# configuration written to .config

此時將預設配置寫進.config檔案

執行make menuconfig配置核心:

device drivers--->

<*> memory technology device (mtd) support --->

<*>   enable ubi - unsorted block images  --->

檢視file system--->

<*> miscellaneous filesustems --->

發現沒有對yaffs2檔案系統支援的,核心中預設是不支援 yaffs檔案系統的, 因此我們需要為核心打上 yaffs 的補丁(筆者當初就在這卡了很久,發現原來是核心預設不支援yaffs2檔案系統的,所以需要為核心打上 yaffs 的補丁)

核心打yaffs補丁:

解壓yaffs2 最新原始碼並進入頂層目錄:

執行:./patch-ker.sh c m /work/trans_system/linux-3.4.2

成功會出現:

updating /work/trans_system/linux-3.4.2/fs/kconfig

updating /work/trans_system/linux-3.4.2/fs/makefile

這條命令幹了三件事:

1.修改核心 fs/kconfig, 增加了 yaffs2 下的 kconfig:

# patched by yaffs

source "fs/yaffs2/kconfig"

2.修改核心 fs/makefile, 增加了 yaffs 目錄的資訊:

# patched by yaffs

obj-$(config_yaffs_fs)   += yaffs2/

3.在核心fs/目錄下建立yaffs2子目錄:

a.將yaffs2原始碼目錄下的makefile.kernel複製為核心fs/yaffs2/makefile檔案

b.將yaffs2原始碼目錄下的kconfig檔案複製到核心fs/yaffs2/目錄下

c.將yaffs2原始碼目錄下的.c,.**件(不包括子目錄下的檔案)複製到核心fs/yaffs2/目錄下

執行make menuconfig配置核心支援yaffs2檔案系統:

file  systems  --->

miscellaneous  filesystems  --->

<*>  yaffs2  file  system  support

[*]  autoselect  yaffs2  format

修改mtd分割槽:

執行:vim arch/arm/mach-s3c24xx/common-smdk.c

static struct mtd_partition smdk_default_nand_part = ,

[1] = ,

[2] = ,

[3] =

};上述分割槽資訊要保證和u-boot中的分割槽資訊一致

修改時鐘頻率為12m:

執行vim arch/arm/mach-s3c24xx/mach-smdk2440.c

static void __init smdk2440_map_io(void)

執行make uimage編譯,在/arch/arm/boot下生成uimage。

使用dnw或者tftp燒寫

ok,畢

參考:

Linux 3 4 2核心移植除錯筆記

問題1 linux 在nand 上成功進行分割槽後,掛在 yaffs2 檔案系統失敗,出現問題 問題原因 沒有在uboot中設定好對應的啟動引數 解決方法 在uboot 設定相應的啟動引數,支援 yaffs2 的使用,具體做法如下 問題2 掛在成功後,出現問題 attempted to kill i...

linux3 4 2核心 LCD驅動程式的移植

彙總點這 需要把頭檔案修改 關於設定 s3c2440 lcd控制器的設定 修改之後需要重新配置編譯核心,把原來的lcd驅動變成模組 s3c2410 lcd framebuffer support。silicon motion sm501 framebuffer support也需要配置成模組,因為有...

2440 上核心3 4 2移植

win7下不能使用dnw燒寫的替代方法 兩種替代方法 u boot tftp 30000000 u boot.bin protect off all erase 0 3ffff cp.b 30000000 0 40000 kernel tftp 30000000 uimage nand erase ...