解壓進入核心頂層目錄: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 ...