分类: LINUX
2011-12-17 11:27:17
2:在内核源码目录中配置yaffs文件系统,目的就是把yaffs文件系统编译到kernel中。
3:制作文件系统需要的命令集,需要有操作文件系统的命令集,所以我们要用busybox编译需要的命令集。步骤如下:
下载busybox的源码并解压,配置busybox的CROSS_COMPILE和ARCH变量,配置编译busybox;
4:创建根文件系统,创建文件系统目录下的文件目录(eg:root,ect,dev,sys,proc,home等),以及各个目录中对应的文件,这步的工作是比较大的。目录完成后,用mkyaffs2image工具编译生成可用的文件系统。
2011-04-09补充
按照文档制作了一个文件系统,可以跑。我以为一切都ok了,后来想在这个系统上跑些应用程序,才知道移植的这个文件系统问题多多。现在把这两天遇到的问题记录一下:
1)现象:在控制台上命令行前只有这样的@xxxx信息,然而如果正常的话应该是这样的信息。
办法:在创建文件系统时,在etc/下创建了group文件,但没有给此文件输入任何信息,此文件为空。但看了原文件,group是有信息的,就把原文件中的内容cp到此group中,正常啦!
2)现象:在系统起来以后,在命令行中输入rz,sz命令,不能传输数据,提示"rz/sz permission denied"错误。
办法:我试了论坛上可能的所有办法,重新编译rz,sz命令,改变rz,sz的权限等,但每次都不行,提示同样的错误。最后看到有个人是的./hello不能运行,说是因为/lib库的权限问题,实在没有办法,我就去把/lib库的权限给改为了777,最终还是可以了。(这里的rz,sz命令是我自己重新编译生成的,不明白如何在编译这些命令的时候把他们编译成静态库)
生成rz sz命令参考下面的方法:
已经自己搞定了,从网上下了一个rzsz源码包
然后解压:# tar zxvf rzsz-3.48.tar.gz
3、修改Makefile:
# cd src
# vi Makefile
修改CC=arm-linux-gcc(按照此Makefile的配置编译出的rz,sz等命令在运行的时候要链接库函数才能运行的,就是编译时没静态链接)
如果这样设置 CC=arm-linux-gcc -static (这样编程出的命令就不再需要库函数的支持,即使不改变/lib的权限,命令可以正常运行)
保存退出。
4、编译:
# make posix
5 进入src文件,里面已经产生了所需文件
3)现象:通过rz命令下载一个应用程序的xxx.a文件到平台上,并执行了chmod 777 xxx.a命令。当执行./xxx.a时提示 xxx.a permission denied.前提是/lib库的权限没有改变。
办法:修改/lib目录下文件的权限