1. 制作內核
假設 pwd 得到 /timkyle-dev/techer/arm11-resources/
a.解壓內核包
#tar xf linux-2.6.28.tar.bz2
得到linux-2.6.28_smdk6410文件夾
b.更改配置文件
#cd linux-2.6.28_smdk6410
#cp smdk6410_config .config
c.配置內核
#make menuconfig
/device drivers
/Graphics support
/Support for frame buffer devices
/ S3C Framebuffer Support
/Multimedia devices
/Video capture adapters
d.修改Makefile
第193行架構改為 ARCH := arm
第198行交叉編譯工具改為 CROSS_COMPILE := arm-none-linux-gnueabi
e.編譯內核
#make
編譯完後內核鏡像在arch/arm/boot/zImage
f.把u-boot/tools/mkimage 復制到/usr/local/bin
#cp ../u-boot-1.1.6_smdk6410/tools/mkimage /usr/local/bin/
g.進內核的arch/arm/boot/目錄
#cd arch/arm/boot/
h.制作內核鏡像並放到tftpboot目錄
#mkimage -A arm -O linux -T kernel -C none -a 0x50008000 -e 0x50008040 -n "timkyle" -d zImage /tftpboot/uImage
顯示信息如下
Image Name: timkyle
Created: Thu Feb 9 21:32:55 2012
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2067316 Bytes = 2018.86 kB = 1.97 MB
Load Address: 0x50008000
Entry Point: 0x50008040
2. 通過tftp下載內核鏡像
a.下載內核鏡像
$tftp 0x50008000 uImage
b.試啟動內核
$bootm 0x50008000
3. 把內核鏡像燒寫到nand上
a.復位開發板,進入u-boot的命令狀態運行
b.下載內核鏡像
$tftp 0x50008000 uImage
c.燒寫內核鏡像到nandflash上
先擦除nandflash從地址0x100000開始的0x200000大小空間
$nand erase 0x100000 0x200000
把內存地址0x50008000處的內容寫到nandflash地址0x100000處,寫0x200000大小
$nand write 0x50008000 0x100000 0x200000
d.設置開機從tftp下載內核啟動,並保存配置
$setenv boottftp "tftp 0x50008000 uImage;bootm 0x50008000"
$saveenv
e.設置開機從nandflash讀取內核啟動,並保存配置
setenv bootnand "nand read 0x50008000 0x100000 0x200000;bootm 0x50008000"
配置u-boot啟動後自動執行的命令bootcmd
$setenv bootcmd $bootnand
$saveenv
相關閱讀:
嵌入式系統搭建之一U-Boot移植 http://www.linuxidc.com/Linux/2012-02/54020.htm
嵌入式系統搭建之三文件系統制作 http://www.linuxidc.com/Linux/2012-02/54022.htm
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm