


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
根文件系统的制作文件系统的制作其实并没有想像中那么难。一个基本的文件系统应该包括: busybox (提供 shell 命令集)、配置文件(用来初始化和布局你的文件系统)、设备文件(如果是用 devfs 的话这个就免了)、必要的库文件系统(如果 busybox 是静态编译的话,那根本不用为 busybox 用到的库文件而烦。在我制作的文件系统里,只是为了用户程序和 qt 的运行才放置了一些库文件)。 正文一、 首先说一下 busybox 的配置和编译问题 其实搞好 busybox 后,可以说你的文件系统已经完成了一半了。 Busybox 之所以比较难编译,主要是 busybox 和交叉编译工具的版本搭配问题。在文坛上不乏因为 busybox 某些命令不能编译通过而烦的人,在这里我推荐一个搭配: busybox-1.1.3+arm-linux-gcc-3.3.2 (在文坛上看到过有人说 busybox-1.0.1+arm-linux-gcc-3.4.1 也可以正常编译通过,你自己看着办吧)。 Busybox 的配置很简单,详细过程可以参考基于 S3C2410 的 Linux 全线移植文档的文件系统部分,我刚开始的时候就是按照这个来做出一个很简单的文件系统的。不过有一点要特别注意的 (shell 的配置问题 ) : 、要这样配置: Shells - Choose your default shell (ash) - 、如果是这样配置的话,虽然可以生成ash,但不能生成sh: Choose your default shell (none) - * ash 另外,按照他的这种方法做出来的文件系统,运行的时候 shell 并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能: Shells - - Bourne Shell Options Hide message on interactive shell startup Standalone shell * command line editing * vi-style line editing commands (15) history size * history saving * tab completion * username completion Fancy shell prompts这是我自己试验出来的,网上没有看到过这方面的介绍,在此奉献给大家。 二、 再来说一下配置文件的问题在文件系统中,配置文件主要存放在 /etc 目录里面。基于 S3C2410 的 Linux 全线移植文档里面介绍的文件系统由于需要加载文件系统的时候把 /mnt/etc 目录拷贝到 /etc ,所以不得不使用 /linuxrc 脚本,不过如果是这样的话需要在内核传递参数里设置 init=/linuxrc ,因为默认是启动 /sbin/init 初始化脚本的( busybox 编译安装以后生成的 linuxrc 文件是指向 /bin/busybox 的符号文件,应该把它删掉,自己重写脚本)。在我做的文件系统里不采用这种方法,所以不用设置 init=/linuxrc 。 Busybox init 的流程在构建嵌入式 linux 系统这本书里面有介绍,我在这简单的说一下:如果不采用 linuxrc 的话就会执行 /sbin/init 脚本( busybox init ),它会去分析 /etc/inittab 脚本(如果没有的话就使用它默认的来代替,一般没必要自己为它编写这个脚本,用它默认的就行),然后会执行 /etc/init.d/rcS 命令(在我制作的文件系统里就把配置都写入了这个文件)。 至于 rcS 这个目录的编写主要是安排哪些目录挂载哪些次级文件系统,比如 /proc 要挂载 proc 文件系统、 /sys 要挂载 sysfs 、 /dev/shm 要挂载 tmpfs 、 /tmp 要挂载 ramfs 等等。此外,还可以让内核重新挂载根文件系统也行,具体可以参考 rcS 这个脚本里面的内容,我的是参考友善的那个来写的。另外,可以在这个脚本里执行一些命令,比如设置 ip 地址、建立符号链接(我为 usb 设备的挂载特意建立了 /dev/sda1 的符号链接)、设置主机名等等。 Busybox init 还会调用 /etc/profile 来设置 PATH ,具体请看文件。 在构建嵌入式 linux 系统提到了怎样建立和建立哪些设备文件,但因为 devfs 这个东西的存在,我们可以不再为这些设备文件而费心了。因为内核在申请设备的同时会向 devfs 申请相应的设备文件,然后 devfs 会帮我们在 /dev 目录建立相应的设备文件,做到内核使用多少设备就建立多少设备文件,不像以前那样要预先建立一大堆可以你不会用到的设备文件(不过从 2.6.12 内核开始,这个 devfs 选项从内核配置中删除,好像是用 udevfs 之类来代替了,不过很多人还是喜欢用回 devfs ,而且按现在看来起码它用得还挺不错的)。 好像没什么好讲了,至于 /lib 目录应该放哪些库文件,我也没有底。如果不运行应用程序,只是运行 busybox 的话根本不用放任何的库,因为我们的 busybox 是静态链接的还记得吧?我在自己的文件系统中存放了 helloworld 应用程序和模块,另外还有一个 led 模块,是用 ioctl 来控制 led 灯的亮和灭的,所以我才加载了一些库,而且是从原来友善的文件系统里面拷过来的。以后如果要运行 qt 的话,还要把 qt 用到的库文件也放进去,这样文件系统就变得挺大的了。 总结 :好了,一个简单的文件系统就是如此简单的就可以做出来。不过要做出一个合理的文件系统的话相信还有很多东西要注意,比如根文件系统各目录应该使用什么次级文件系统、配置文件的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业银行信用风险管理的多维审视与创新发展
- 唐山市城市生态系统健康评价:基于多维度指标的综合分析与展望
- 唐宋动物赋研究-以思想、学术发展对文学的影响为中心
- 唐代官方救灾体系及其历史镜鉴:基于制度、实践与社会影响的多维度考察
- 金融投资合同书7篇
- GB 24536-2025防护服装化学防护服的选择、使用和维护
- 客运从业资格模拟考试题及答案解析
- 【语文】小学四年级上学期期末复习模拟试题测试卷
- 公共安全人员考试题库及答案解析
- 沧州护理事业编考试题库及答案解析
- 国家电网工作人员综合素质考试题库含答案
- 3.4 活动:电路创新设计展示说课稿 2025-2026学年教科版物理九年级上册
- 过节前安全培训课件
- 2025年彩色水泥行业研究报告及未来行业发展趋势预测
- 煤矿井下喷浆安全培训课件
- 输变电工程建设现行主要质量管理制度、施工与验收质量标准目录-2026年2月版-
- 2025年餐饮服务及学校食堂从业人员食品安全知识培训考试试卷(含答案)
- 3.2《参与民主生活 》- 课件 2025-2026学年度道德与法治九年级上册 统编版
- 农产品电子商务运营 教学大纲、教案
- 浙江新化化工股份有限公司扩建6000吨-年新型无卤有机阻燃剂项目环评报告
- 工厂开荒保洁标准与流程
评论
0/150
提交评论