Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361078
  • 博文数量: 87
  • 博客积分: 1322
  • 博客等级: 少尉
  • 技术积分: 915
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-25 18:04
文章分类

全部博文(87)

文章存档

2013年(10)

2012年(9)

2011年(68)

分类: LINUX

2011-12-17 11:27:17

这两天做了yaffs根文件系统,今天整个可以启动,做点总结。
1:下载yaffs的源码,并把yaffs加入的内核源码中,并不通过简单cp,而是运行yaffs源码中的一个脚本。到此在内核中已经加入了yaffs文件系统的配置选项,但这些选项并没有被配置,或者并不是你需要的配置。

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目录下文件的权限

阅读(1653) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~