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 可以看到这块flash的mtd2是用来放文件系统的 mtd_debug info /dev/mtd2 mtd.type = MTD_NANDFLASH 可以看到erasesize为128KiB,也就是0x20000,后来要用到这数据。 writesize为2K,后面也要用到这数据 ? 3 在PC上制作文件系统 进到/home/davinci/dm6446/softtool,根据你具体的路径进到这目录,ll命令查看下 -rwxrwxrwx 1 zjt zjt? 38499 2010-08-31 10:10 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更详细的功能,可以看上一篇文章。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |