轉自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!可以重啓開發板看看是否燒寫正確。