Chinaunix首页 | 论坛 | 博客
  • 博客访问: 353401
  • 博文数量: 49
  • 博客积分: 3229
  • 博客等级: 中校
  • 技术积分: 616
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-26 21:46
文章分类

全部博文(49)

文章存档

2011年(8)

2010年(2)

2009年(3)

2008年(36)

我的朋友

分类: LINUX

2008-03-16 21:55:36

以前在利用友善提供的文件系统通过NFS启动后,执行env命令,发现其在/bin/qtopia脚本文件以及在rcS中设置的环境变量根本就没起作用,今天试了一下把这些环境变量加到/etc/profile文件中,问题解决。原来在执行/bin/qtopia时,也会开启一个bash,在qtopia中定义的变量只在此bash中有效,当执行完后,此bash关闭,相应的环境变量也就不存在了.
关于配置文件
(摘自:http://www.cnitblog.com/luofuchong/archive/2007/01/10/21711.aspx)

在文件系统中,配置文件主要存放在 /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



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