at9261根文件系统的建立

来源:互联网 发布:天刀最好看的捏脸数据 编辑:程序博客网 时间:2024/04/28 01:37

这两天自己动手焊了块9261的工业级ARM板,然后就打算在上面搭建系统。相应的bootloader和内核(linux-2.6.24)都是从相应的9261光盘里得到并成功烧写,至于文件系统,我自己就打算搭建NFS网络文件系统,一来方便调试,二来是自己从头开始搭建的系统,用起来肯定非常顺手,而且也知根知底。我的步骤如下:

编译所用交叉编译器版本:arm-2007q1(来自9261光盘)

一,编译busybox

从网上下载busybox-1.11.2-tar.bz2

解压busybox,进入相关目录,修改Makefile:

CROSS_COMPILE ?=arm-none-linux-gnueabi-

ARCH ?= arm

然后make menuconfig,进入busybox配置界面,配置时需要注意几点:

1.添加如下两个选项

Busybox Settings --->
                BusyboxLibrary Tuning --->
                        [*]Username completion

                        [*]Fancy shell prompts

如果不添加,文件系统是不识别PS1这个环境变量的参数的,也就无法修改shell终端的提示行(本人血和泪的教训,足足折腾了两天才搞明白这点

2.选上静态编译

网上很多人说这样在make时会出现很多警告和莫名其妙的错误,但是本人这里却很正常

3.[ ]Don't user usr

如果选上这项,假如你选的默认的安装路径_install,那么busybox安装的时候就会在_install下生成bin、sbin、linuxrc,不生成usr目录;如果不选的话,就会生成bin、sbin、linuxrc、usr四个文件和目录。
有文说如果不选此项的话安装时就会覆盖宿主系统的/usr,经验证这种说法有误。

make menuconfig后保存退出

make

make install 就可以在设定的目录下生成bin,sbin.usr等目录,里面放的都是到busybox程序的软链接


二. 制作根文件系统

1.建立根文件系统结构

编译busybox的时候我已经设置安装路径在/opt/at9261/myrootfs目录下,make install后已经生成了bin,sbin,usr,linuxrc,因此用mkdir命令生成其他的目录:

mkdir -p dev etc home lib mnt proc sbin sys tmp var root

2.复制文件

复制所用交叉编译器的库文件(一般在相应编译器目录的arm-none-linux-gnueabi/libc/armv4t/lib下)到myrootfs的lib目录下。

3.建立相关文件

首先删除myroofs下的linuxrc文件。linuxrc是到busybox init 的链接,这里不需要,因此删除不要。

(1)inittab

inittab脚本告诉init在它的每个运行级别上需要做那些事情,详情见

参考文章:http://blog.csdn.net/madding/article/details/4337316  inittab文件详解

但是上面链接里详解的是PC上的inittab文件,busbox的init对inittab的解析不同,

详解见参考文章http://linfengdu.blog.163.com/blog/static/1177107320111186458110/
嵌入式linux启动时运行的inittab文件      或
http://blog.sina.com.cn/s/blog_5f26cfd20100x3ox.html

BusyBox init及其inittab文件分析


(2)fstab

本文件配置了系统启动后自动挂载的文件系统。 至于fstab里的文件系统何时挂载,bootloader与kernel载入内存时以只读挂载一次
这样才有/etc/rc.d/rc.sysinit里写的目录结构 ;然后执行/etc/rc.d/rc.sysinit时以可读写方式再挂载一次。

(3)passwd,group

passwd文件记录linux用户的信息,每行代表一个用户;group记录相应的组的信息,每行代表一个组。

(4)host.conf,hosts,resolv.conf

host.conf文件记录了解析器解析IP地址的顺序,hosts文件记录了主机名和IP地址的对应关系,resolv.conf设置了DNS

(5)ld.so.conf

配置除/lib,/usr/lib外系统自动查找的库信息

(6)mdev.conf

mdev的配置文件,新建为一个空文件即可

(7)profile

系统设置环境变量的文件,对每个用户都有效。

(8)init/rcS

该文件一般是自启动文件,设置在inittab里。

这一切都做好后根文件系统就建立完毕了。

注:NFS挂载时uboot设置的bootargs环境变量如下:(以本人的IP地址202.4.155.188为例)

setenv bootargs 'mem=64M console=ttyS0,115200 root=/dev/nfs rw nfsroot=202.4.155.188:/opt/at9261/myrootfs ip=202.4.155.98:202.4.155.1:255.255.255.0:eth0:off'

saveenv.

原创粉丝点击