分类:
2009-07-01 22:39:29
AT91sam9263EK使用NFS根文件系统
OneWind 发表于 2007-5-29 15:36:00
一. t91sam9263是atmel arm9系列芯片新的一员,使用ARM926EJ-S ARM内核,有DSP扩展指令。支持cmos摄像头的itu656输入接口,支持LCD接口最大分辨率支持到2048x2048。200MHz的时钟能够获取到220mips的运算能力。支持linux操作系统,支持wince操作系统。
老外已经在linux下移植了ffmeg工程,能够流畅的播放视频文件(352x288),看demo后不仅热血沸腾,呵呵心想移植个街机模拟器如何?
要动手时发现AT91SAM9263EK使用的是cramfs根文件系统,移植或者开发应用很不方便的,需要用U盘拷来拷去的。工欲善其事,必先利其器,于是决定搞个NFS根文件系统的版本以方便后续的移植工作,算是迈出街机模拟器工作的第一步吧。
二.建根文件系统:
a) 拷贝ATMEL的linux demo里的rootfs_lnxdemo.cramfs文件到宿主机的:/home目录下。
b) 在/home目录下创建tmp目录:mkdir tmp 。
c) 在/home目录下挂载cramfs文件系统镜像:
mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loop
d) 进入tmp文件目录查看根文件系统是否齐全。
cd tmp
e) 修改根文件系统的rsS启动加载教本。
因为Atmel提供的cramfs根文件系统默认是启动触摸屏校正程序和ffmpeg播放器的,但是我的目的是移植街机模拟器,要的启动后进入shell里。
cd tmp
vim etc/init.d/rcS删除触摸屏和ffmpeg相关的脚本。然后保存退出。
f) 备份新的根文件系统:
tar cjvf nfsroot.tar.bz2 tmp
g) 卸载cramfs文件系统:
做过nfsroot根文件系统后要把卸载cramfs从tmp卸载掉。
Umount tmp
注意:现在的rootfs_lnxdemo.cramfs的已经不能够在用于atmel的linux demo了。
三. 配置NFS服务器
a) 当然是要先安装nfs服务器软件包的啦。
b) 创建exports 文件:
vim /etc/exports
添加:
/home/target/ 192.168.2.0/255.255.255.0(rw,no_root_squash)
/home/target就是NFS根文件系统的一级目录,由nfsroot.tar.bz2解压得来,包含有bin,etc,usr,mnt,dev,var等等,包含有linux启动运行所需要的一切。
c) 安装dhcpd服务包软件
d) 配置dhcpd
e) 启动nfs,启动dhcpd,portmap
service nfs restart
service protmap restart
service dhcpd restart
f) 测试服务器配置是否成功:
mount 192.168.2.46:/home/target /mnt
ls /mnt
四. 配置linux内核:
进入打过at91补丁的linux2.6内核源代码树的根目录
make menuconfig进入内核配置程序。
1. 选中Networking --->
Networking options --->
有关CRAMFS文件系统简介:
CRAMFS文件系统是由Linux Torvalds编写的专门针对闪存设计的只读压缩文件系统。
与RAM disk方式不同,CRAMFS文件系统不需要一次性地将文件系统中的所有内容都解压到内存中,而只是在系统需要访问某个数据时,马上计算出该数据在CRAMFS中的位置,将其实时的解压到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据
源文件:从下载cramfs-1.1.tar.gz
# tar -zxvf cramfs-1.1.tar.gz
# cd cramfs-1.1
# make
经过以上步骤会生成两个可执行文件:
mkcramfs和cramfsck;
把这两个可执行文件拷贝到/bin 目录下,就可以使用相应的命令了;
命令使用:
mkcramfs工具用来创建CRAMFS文件系统
# mkcramfs dirname outfile
cramfsck工具用来进行CRAMFS文件系统的释放和检查
# cramfsck -x dirname filename
-x dirname 表示释放到dirname所指定的目录中.
例如:
mkcramfs root root.cramfs 解压*.cramfs 文件
cramfsck -x root root.cramfs 压缩root根文件为root.cramfs