yaffs2制作教程.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
yaffs2制作教程

??????????????Yaffs2根文件系统制作 环境: ???交叉编译环境:4.3.3?(天嵌科技提供,存放路径/opt/EmbedSky/4.3.3) 开发平台:TQ2440 ???? 1,编译busybox ?????获取busybox源码busybox-1.17.2.tar?(/downloads/) 置于目录/opt/embed下 #tar?jxvf?busybox-1.17.2.tar.bz2 #cd?busybox-1.17.2 #vim?Makefile 将164行改为CROSS_COMPILE?=?arm-linux-?将190行改为ARCH?=?arm 保存推出进入配置菜单 #make?menonfig????采用默认配置保存推出 #make #make?install 在busybox-1.17.2的根目录下出现了一个_install目录在该目录下又有三个目录文件bin?sbin?usr?和一个链接文件?linuxrc??。 2,创建根文件系统必要的目录 ?????回到/opt/embed目录下创建根文件系统必要的目录 #mkdir?root_fs? #cd?root_fs 将刚才生成的三个目录bin?sbin?usr和一个链接文件linuxrc考到目录root_fs下 #cp?-rf?../busybox-1.17.2/_install/*?./?? #mkdir?dev?etc?home?lib?mnt?opt?proc?root?sys?tmp?var 创建几个必要的二级目录 #mkdir?usr/lib?usr/share #mkdir?etc/rc.d #mkdir?var/lib?var/lock?var/run?var/tmp 3,创建必要文件 ?? (1),?获取库文件?(我的交叉编译工具链放在目录?/opt/EmbedSky/下的) #cp?-rf?/opt/EmbedSky/4.3.3/arm-none-linux-gn?i/libc/armv4t/lib/*so*?lib?-a (2),将主机?etc?目录下的passwd、group、shadow文件拷贝到?root_fs/etc目录下 #cp?-f?/etc/passwd?/etc/group?/etc/shadow?etc 将目录/opt/embed/busybox-1.17.2/examples/bootfloppy/etc下的所有文件拷贝到 root_fs/etc下。在这个目录下有三个文件fstab,?inittab,?profile和一个目录init.d, 在目录init.d中有一个文件rcS。 #cp?-rf?../busybox-1.17.2/examples/bootfloppy/etc/*?etc 在目录etc下创建文件mdev.conf。mdev是?v的一个简化版本,我们可以通过文件mdev.conf自定义一些设备节点的名称或链接来满足特定的需要,但在此处让它为空。 #to?etc/mdev.conf (3)创建两个设备文件dev/console?dev/null。 ????在linux内核源码文件init/main.c中有打开设备文件dev/console的操作如下: static?noinline?int?init_post(void) __releases(kernel_lock) { ……………………………… if?(sys_open((const?char?__user?*)?/dev/console,?O_RDWR,?0)??0) printk(KERN_WARNING?Warning:?unable?to?open?an?initial?console.\n); ……………………………… } 内核启动执行到这里时mdev还没有构建dev目录,如果没有创建设备文件dev/console就将会打印警告Warning:?unable?to?open?an?initial?console。 ?????在内核启动的过程中要将产生的一些垃圾信息丢弃就需要空设备dev/null。 #mknod?dev/console?c?5?1 #mknod?dev/null?c?1?3 4,几个必要文件的修改 ?????在启动过程中bootloader会传递参数init=/linuxrc给内核的 main(?)函数,所以在文件系统被挂在后,运行的第一个程序是linuxrc,而linuxrc是一个指向/bin/busybox的链接文件,也就是说文件系统被挂在后运行的第一个程序是busybox。Busybox首先会解析文件/etc/inittab,这个文件中存放的是系统的配置信息,这些配置信息指明了接下来将要启动那些程序。

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档