转自http://blog.163.com/ljf_gzhu/blog/static/13155344020105279432256/
在应用中升级ARM-Linux内核映像
转自http://blog.163.com/ljf_gzhu/blog/static/13155344020105279432256/
在应用中升级嵌入式linux内核通常需要使用mtd-utils工具包,这是一个非常实用的工具包,关于这个工具包的交叉编译方法以及命令使用方法请参考本人的另外两篇日志:《交叉编译mtd-utils》、《mtd-utils命令简介》。下面介绍如何使用mtd工具在应用中升级内核的方法:
备注:本人的开发板分区情况如下:
dev: size name
mtd0: 00040000 "bootloader" (256K Byte)
mtd1: 00200000 "kernel" (2M Byte)
mtd2: 03dc0000 "filesystem" (61.75M Byte)
说明:当你输入ls /dev命令时,你将会看到类似mtd0,mtd1,mtd2,mtdblock0,mtdblock1,mtdblock2 等设备文件,其中mtdx为字符设备,而mtdblockx为块设备,mtd-utils目前只支持字符设备。
1. 先准备内核映像文件如uImage等,将映像文件放在文件系统的某个目录,这里放在/home/目录下,文件系统最好是NFS;
2. 开启PC机端的串口控制台;
3. 启动开发板,让它正常登录系统;
4. 擦除内核分区mtd1,在串口控制台输入命令:
flash_eraseall /dev/mtd1
5. 将映像文件烧写到开发板分区mtd1,在串口控制台输入命令:
nandwrite -p /dev/mtd1 /home/uImage
6. OK!可以重启开发板看看是否烧写正确。