TI文件系统制作,和在线烧写与更新

1 搭建nfs

随便在PC上安装一个linux系统,我用的Fecora core 8,setup 配置系统服务,让nfs自动运行,vi /etc/exports

添加一行/home/davinci/nfs/tirootfs *(rw,sync,no_root_squash)                      //这行根据你的实际路径设置

然后执行exportfs -av                                              这个参数很有意思:)

 

2获取一些mtd信息(使用的nfs系统)

cat /proc/mtd

dev:    size   erasesize  name
mtd0: 00080000 00020000 "bootloader"
mtd1: 00480000 00020000 "kernel"
mtd2: 06a00000 00020000 "rootfs"
mtd3: 01000000 00020000 "data"

可以看到这块flash的mtd2是用来放文件系统的

mtd_debug info /dev/mtd2

mtd.type = MTD_NANDFLASH
mtd.flags = MTD_CAP_NANDFLASH
mtd.size = 111149056 (106M)
mtd.erasesize = 131072 (128K)
mtd.writesize = 2048 (2K)
mtd.oobsize = 64
regions = 0

可以看到erasesize为128KiB,也就是0x20000,后来要用到这数据。

writesize为2K,后面也要用到这数据

 

3 在PC上制作文件系统

进到/home/davinci/dm6446/softtool,根据你具体的路径进到这目录,ll命令查看下

-rwxrwxrwx 1 zjt zjt  38499 2010-08-31 10:10 mkfs.jffs2
-rwxr--r-- 1 zjt zjt 116991 2010-08-26 17:37 mksquashfs
-rwxr--r-- 1 zjt zjt  15662 2009-07-18 15:33 mkyaffs2image-128M
drwxr-xr-x 2 zjt zjt   4096 2010-11-02 06:19 ty-dm6446-1000-bin
38KB的mkfs.jffs2,很精悍!

执行命令./mkfs.jffs2 -r /home/davinci/nfs/tirootfs/ -o jfs.img -n -e 0x20000

或者./mkfs.jffs2 -n -e 0x20000 -s 2048 -p 2048 -d /home/davinci/nfs/tirootfs/ -o jfs2.img  这个是带指定pad和pagesize的参数,

 

这里的-r是要制作的文件系统目录,-o是输出的映象文件, -e是擦除大小,注意参数要和mtd信息一致,否则启动文件系统会有这样那样的错。

 

4上电启动板子

print看一下原来的参数,一般的参数都很容易理解,如filename,filesize,serverip之类的,有一个比较长的,控制启动是nfs还是本地:

nfs使用:

setenv bootargs mem=118M console=ttyS0,115200n8 noinitrd ip=192.168.16.2:192.168.16.107:192.168.16.254:255.255.255.0 root=/dev/nfs rw nfsroot=192.168.16.107:/home/davinci/nfs/tirootfs,nolock

ip后面是本机ip:nfs服务器ip:网关ip:掩码

本地使用

setenv bootargs mem=118M console=ttyS0,115200n8 noinitrd ip=192.168.16.2:192.168.16.107:192.168.16.254:255.255.255.0  root=/dev/mtdblock2 rootfstype=jffs2 rw

ip后面是本机ip:nfs服务器ip:网关ip:掩码,虽然我们不需要nfs了,但写完整这个东西,会让启动时ifconfig顺利完成。

 

5 nfs方式进入系统

./nandwrite -p /dev/mtd2  /opt/rootfs.jffs2

 

6 重启,修改启动参数到本地方式,再重启。

以上过程可以实现文件系统制作和在线烧写。

注意:这里的“在线烧写”指的是不用进入到uboot下,因此可以通过编程,实现文件系统制作与烧写的自动化,而不需要手工输命令,使用C库的system函数即可。

还有一种方式非在线方式是在uboot里实现kernel和fs的烧写,一般用户指南里都有,本文不再赘述,关于mtd-utils更详细的功能,可以看上一篇文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值