- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,这个文件中存放的是系统的配置信息,这些配置信息指明了接下来将要启动那些程序。
您可能关注的文档
最近下载
- QB_T 4563-2013金砂糖.pdf
- 大坝安全监测系统运检导则(试行) QGDW 46 10022.24-2020.docx VIP
- 第五单元 一方水土养一方人 达标训练(含答案) 浙江省人教版七年级人文地理下册.docx
- 奋进新征程建功新时代PPT模板.ppt VIP
- 规范《GB712-88-船体用结构钢》.pdf
- 二年级上册语文教学设计21《狐假虎威》一等奖 刘芳 部编版.docx VIP
- Q_GDW 46 10022.25-2020 通风空调系统运检导则.docx
- 12如何帮助学生学会正确地与异性同学交往?.docx VIP
- 专题1.2 数轴与动点经典题型(四大题型)(原卷版).docx VIP
- 拉森钢板桩专项施工方案.doc
文档评论(0)