arm linux 启动文件/etc/init.d/rcs,linux下文件系统的移植

首先文件系统的构造如图

f702e74218ddae1ad86e24ff495bbd3a.png

所以 我们如果要移植文件系统的话 也就是在根目录上去创建(挂载)这些系统启动所必须的目录

/bin 存放linux系统下常用的命令 cat,chmod,等

/sbin 存放需要管理员权限才能使用的命令 比如 shutdown reboot等 挂接其他文件前都可以使用,所以

放在和根文件相同的分区中。不紧迫的命令可以放在 、/usr/sbin下

/dev 存放设备文件比如串口啊存储啊 手动创建 + uedv 自动创建

/etc 用来存放各种配置文件export passwd 等

/lib 存放共享库 和 可加载文件运行根文件系统中的可执行程序 libc.so*

/home 、 /root 、/usr 、 跟用户相关的一些东西

/proc 存储一下临时生成的文件 用来表示系统的运行状态

/mnt 用于临时挂接某个文件系统的挂接点 通常是空的 也可以在里面创建目录挂接 一些硬盘设备等

/tmp 通常是空的 一些需要临时生成的文件用到 必须要有

2、移植BusyBox

从官网下载最新版本的busyBox压缩包 然后解压 修改其中的Makefile

CROSS_COMPILE = arm-linux-

ARCH = arm

Busybox Settings --->

Build Options --->

[ ] Build BusyBox

as a static binary (no shared libs) (NEW)

这个意思是运行busybox才动态链接库,busybox需要的库要我们提供Busybox

Settings --->

Installation Options

("make install" behavior) --->

What kind of

applet links to install (as soft-links) --->

设置busybox生成后各种命令均为指向busybox主程序的软链接Busybox

Settings --->

Busybox Library

Tuning --->

(255) History

size

[*] History

saving (NEW) // 支持历史记录

[*] Tab completion

(NEW) // 支持Tab补全操作选项Applets就是将busybox支持的几百个命令分门别类,我们可以在各个门类下选择想要的命令。

保存 然后make menuconfig 配置这些选项

关于需要注意的一些选项说明如下:

最后出现下面的信息,make成功

CC util-linux/volume_id/xfs.o

AR util-linux/volume_id/lib.a

LINK busybox_unstripped

Trying libraries: crypt m

Library crypt is not needed, excluding it

Library m is needed, can't exclude it (yet)

Final link with: m

libbusybox: 0_lib/libbusybox.so.1.23.1

DOC busybox.pod

DOC BusyBox.txt

DOC busybox.1

DOC BusyBox.html

然后 make

生成以后 make install 到目标板的目录

出现下面的信息安装成功

--------------------------------------------------

You will probably need to make your busybox binary

setuid root to ensure all configured applets will

work properly.

2,构建文件系统的目录

构建文件系统需要三个步骤

1、创建所需要的文件夹

mkdirdev etc home lib media mnt opt proc sys tmp var root

2、添加文件系统所需要的库

mkdir lib

cp home/wjl/work/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib 下的库到刚建的目录下

3、创建所需要的文件

mkdir etc 目录

需要再etc 目录下创建三个文件

1>initab /ect/initab

initab 主要是任务是创建其他进程,比如调用脚本文件配置IP地址,挂接其他文件系统。启动shell等

2> rcS etc/init.d/rcS

rcS 里面可以添加你真正想执行的程序 配置的信息 在这里面可以用 mount -a

3> fatab etc/fstab

fstab文件被用来控制 mount 的行为

fstab的表示形式如下

#device mount-point type options dump fsck order

proce /proce proc defaults 0 0

构建dev 目录

1、 静态创建设置文件 在dev 目录下手动创建 一些设备节点

mkdir /dev

sudo mknod console c 5 1

sudo mknod null c 1 3

sudo mknod ttySAC0 c 204 64

2、使用mdev动态的去创建设备文件

要使用 mdev 需要内核支持sysfs文件系统 为了减少flash的读写还需要支持tempfs 文件系统

所以要配置内核设置 CONFIG_SYSFS CONFIG_TEPFS 配置项

mount -t tmpfs mdev /dev

mkdir /dev/pts

mount -t dev

mount -t devpts devpts /dev/pts

mount -t sysfs sysfs /sys

echo /bin/mdev > /proc/sys/kernel/hotplug

mdev -s

还需要修改 rcS fstsb 文件

4 制作 YAFFS 文件系统映像文件

所谓制作文件系统映像文件 就是将一个目录下的所有内容按照一定的格式存放到一个文件中 这个文件可以直接烧写到

存储设置上去,当系统启动狗挂接这个设备 就可以看到与原来目录一样的内容

mkyaffsimage fs_mini fs_mini.yaffs

j将fs_mini.yaffs 放入tftp 目录或者nfs目录后 在U-BOOT阶段 烧入指定的内存即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值