嵌入式文件系统镜像制作及烧写
將rootfs和userdata兩個目錄分別制作為鏡像文件進(jìn)行燒寫:
鏡像文件對應(yīng)文件系統(tǒng)類型的選擇,采用:
rootfs制作為rootfs.img鏡像,采用的文件系統(tǒng)類型為cramfs,只讀,用于保護(hù)根文件系統(tǒng);
userdata制作為userdata.img鏡像,采用的文件系統(tǒng)類型為yaffs2,可讀寫;
配置linux內(nèi)核,支持兩種文件系統(tǒng):
cd??/opt/kernel
make?menuconfig
?File?Systems->
??[*]?Miscellaneous?filesystems??--->
<*>Compressed?ROM?file?system?support?(cramfs)?//支持cramfs文件系統(tǒng)
??File?Systems->
?????????[*]?Miscellaneous?filesystems??--->
<*>???YAFFS2?file?system?support?//已經(jīng)支持
保存退出
make?zImage
cp?arch/arm/boot/zImage?/tftpboot/
重啟開發(fā)板
cat?/proc/filesystems?//查看是否支持cramfs和yaffs2
將rootfs和userdata分別制作為cramfs和yaffs2文件系統(tǒng)鏡像:
目錄????????????鏡像文件??????????????文件系統(tǒng)類型
rootfs????????rootfs.img??????????cramfs
userdata????userdata.img?????yaffs2
rootfs.img鏡像制作步驟:
cd?/opt/
mkfs.cramfs?rootfs???rootfs.img
cp?rootfs.img?/tftpboot
userdata.img鏡像制作步驟:
從ftp下載mkyaffs2image工具到虛擬機(jī)中:
sudo?cp??mkyaffs2image??/usr/sbin
sudo?chmod?777?/usr/sbin/mkyaffs2image
cd?/opt/project
mkyaffs2image?userdata?userdata.img
chmod?666?userdata.img
cp?userdata.img?/tftpboot
至此四個軟件包都準(zhǔn)備就緒:
u-boot.bin,zImage,rootfs.img,userdata.img
存放目錄:/tftpboot
nandflash分區(qū)規(guī)劃,用于部署鏡像文件:
0----------2M----------7M----------17M------------剩余
??uboot?????zImage???rootfs.img??userdata.img
注意:鏡像文件大小要小于各個分區(qū)的大小!請確認(rèn)!
修改nandflash的分區(qū)表
cd?/opt/kernel
vim?drivers/mtd/nand/s3c_nand.c?找到分區(qū)表,修改為如下分區(qū)表信息:
struct?mtd_partition?s3c_partition_info[?]?=?{
//第一分區(qū)信息?
{
???????.name???????????=?"uboot",?//分區(qū)的名稱
???????.offset?????????=?(0),?//分區(qū)的起始地址
???????.size???????????=?(SZ_1M*2),?//分區(qū)的大小
},
//第二分區(qū)信息?
{
?????.name???????????=?"kernel",?
?????.offset?????????=?MTDPART_OFS_APPEND,?//追加
?????.size???????????=?(SZ_1M*5),?
},
//第三分區(qū)信息?
{
?????????.name???????????=?"rootfs",?? ? //第一次寫成大寫了下面圖片不對
?????????.offset?????????=?MTDPART_OFS_APPEND,?
?????????.size???????????=?(SZ_1M*10),?
},
//第四分區(qū)信息?
{
?????????.name???????????=?"userdata",
?????????.offset?????????=MTDPART_OFS_APPEND,?
?????????.size???????????=?MTDPART_SIZ_FULL?//剩余
}
};
保存退出
make?zImage
cp?arch/arm/boot/zImage?/tftpboot
重啟開發(fā)板
cat?/proc/mtd?//查看分區(qū)表
ls?/dev/mtd*?-lh?//查看字符設(shè)備文件和塊設(shè)備文件
/dev/mtd0:第一個分區(qū)的字符設(shè)備文件
/dev/mtdblock0:第一個分區(qū)的塊設(shè)備文件
將zImage,rootfs.img,userdata.img燒寫到nand上:
燒寫方法有兩種,一種通過uboot,另一種通過mtd工具
利用uboot來進(jìn)行燒寫的步驟:
燒寫zImage:
tftp?50008000?zImage
nand?erase?200000?500000
nand?write?50008000?200000?500000
?
燒寫rootfs.img
tftp?50008000?rootfs.img
nand?erase?700000?a00000
nand?write?50008000?700000?a00000
燒寫userdata.img
tftp?50008000?userdata.img
nand?erase?1100000???
nand?write.yaffs?50008000?1100000?$filesize
或者
nand?write.yaffs?50008000?1100000?$(filesize)
設(shè)置本地啟動的參數(shù)信息:
setenv?bootcmd?nand?read?50008000?200000?500000?\;?bootm?50008000
setenv?bootargs?root=/dev/mtdblock2?init=/linuxrc?console=ttySAC0,115200?rootfstype=cramfs
saveenv
重啟開發(fā)板,看rootfs是否能掛接,所在第三塊分區(qū)
驗證根文件系統(tǒng)是否為只讀:
cd??/
mkdir?helloworld?//看是否能創(chuàng)建目錄??可以創(chuàng)建
手動掛接存放userdata數(shù)據(jù)的第四塊分區(qū)到根文件系統(tǒng)home目錄:
在開發(fā)板上執(zhí)行:
mount?-t?yaffs2?/dev/mtdblock3?/home?
mount?//看是否掛接成功
cd?/home?//進(jìn)入第四塊分區(qū)?
ls?//查看第四塊分區(qū)的內(nèi)容,是否有之前userdata目錄的內(nèi)容
.??/home/scripts/run.sh??//手動運(yùn)行軟件啟動腳本,"."后跟一個空格
此時???led燈QT啟動成功
自動掛接存放userdata數(shù)據(jù)的第四塊分區(qū)到根文件系統(tǒng)home目錄:
vim?/opt/rootfs/etc/init.d/rcS,在文件最后添加:
mount?-t?yaffs2?/dev/mtdblock3?/home
ifconfig?eth0?192.168.1.110
ifcofig?lo?127.0.0.1
保存退出
鏡像包下載地址:http://linux.linuxidc.com/pub/2011/10/09/制作根文件系統(tǒng)鏡像工具mkfs編譯/
操作參考:http://www.linuxidc.com/Linux/2011-10/44887.htm
http://www.embedu.org/Column/Column508.htm
啟動信息顯示:
UBIFS:?mounted?UBI?device?0,?volume?0,?name?"rootfs"
UBIFS:?file?system?size:???126341120?bytes?(123380?KiB,?120?MiB,?995?LEBs)
UBIFS:?journal?size:???????6348800?bytes?(6200?KiB,?6?MiB,?50?LEBs)
UBIFS:?media?format:???????w4/r0?(latest?is?w4/r0)
UBIFS:?default?compressor:?lzo
UBIFS:?reserved?for?root:??4952683?bytes?(4836?KiB)
VFS:?Mounted?root?(ubifs?filesystem)?on?device?0:14.
Freeing?init?memory:?148K
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖
總結(jié)
以上是生活随笔為你收集整理的嵌入式文件系统镜像制作及烧写的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国移动游戏趋势洞察报告
- 下一篇: 互联网晚报 | 3月13日 星期日 |