嵌入式 使用busybox制作完全属于自己的文件系统

make ARCH=arm CROSS_COMPILE=arm-hisi100ntpl-linux-

用busybox制作文件系统

busybox-1.15.2

编译器:arm-linux-gcc 4.3.2

平台:某开发板(s3c2440)

宿主:redhat 9.0

得到源码 busybox-1.15.2.tar.bz2

在任意目录解压源码,在任意目录制作文件系统框架~!~!~!

我是在用户模式下家目录中解压的源码和制作的文件系统框架~!~!如图:

这里你能看到我是在家目录 kevin下的源码 busybox-1.15.2.tar.bz2 和制作的文件系统框架 rootfs。。

进入rootfs中你看到:

其中 linuxrc 是后期编译busybox得到的。。

好了,基本的前期任务算是完成了。

下面开始源码的编译:

#cd #vi Makefile

ARCH ?= arm 164行

CROSS_COMPILE ?= arm-linux- 190行

# make menuconfig

展示如下图:

其中的选项大部分是默认的:

这里我们只需该Busybox Setting 目录下的内容。(若需要可以根据自己的情况选配其他选项)

进入 Busybox Setting :

这里第一项保持默认(再次申明 若需要可以根据自己的情况选配)

进入第二项:(Build Options):

按照图中选择 退出配置下一项:

进入Busybox Library Tuning 选项:

其他默认 选上 vi-style line deiting commands

        Fancy shell prompts

这两项,从名字上您也能才到这两项是干什么的吧,,不明白的自己百度吧。。。。

配置完毕::退出保存。。。。

执行 #make

make完毕 接着执行 #make install

ok,,你会在busybox-1.15.2目录中看到_intall 目录。。

这个目录(_intall)中就是我们要用到的内容。。把这个目录的内容完全复制到你做的根文件系统框架中去。。在这里我的是rootfs。。

开始制作文件系统::

进入rooffs/dev目录,创建两个设备节点:

#mknod console c 5 1

#mknod null c 1 3

进入rootfs/etc目录,复制 busybox-1.15.2/example/bootfloop/etc/下的全部文件到此目录下。。

cp -r

复制宿主机下的 /etc/passwd grop shadow 到 此目录下。。

把passwd中的第一行:root:x:0:0:root:/root:/bin/bash中的bash改为ash

修改inittab文件:

::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::once:/usr/sbin/telnetd -l /bin/login
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r

修改fstab 文件 :

proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
var /dev tmpfs defaults 0 0
修改/init/rcS文件:

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
mkdir -p /var/lock

/bin/hostname -F /etc/sysconfig/HOSTNAME
修改 profile文件:
#Ash profile
#vim : syntax=sh

#No core files by default
#ulimit -S -c 0 > /dev/null 2>&1

USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]#'
PATH=$PATH

HOSTNAME=`/bin/hostname`

echo "hello kevin ...."

echo "Done"

export USER LOGNAME PS1 PATH

在此目录下新建sysconfig目录。。新建HOSTNAME文件内容自定。将来作为主机名。。

注意以上都在/etc目录操作的。。。

现在该目录

到/usr下建立share目录复制主机相应目录下的zoneinfo到此目录。。

在/etc下建立localtime 并建立软链接。。。。

ln -s /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

改目录到/lib下,

这个很重要,因为应用程序会用到库文件。所以自己想吧。。。。。

复制编译器中的lib目录下的内容。。

这里我复制两处的内容。给出目录。

toolchian/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

toolchian/4.3.2/arm-none-linux-gnueabi/libc/lib

不过有的不需要,我也不知道哪几个不需要所以就都复制过来了。。。

ok 大功告成用mkyaffs2image工具制作吧,,

mkyaffs2image rootfs roofs.bin

最终,烧到nandflash后文件系统虽挂载上了,但就是进步了文件系统。。呵呵。。

这里注意一下这几个文件

/etc 下的 inittab profile 和/etc/init.d/下的rcS 还有 根目录下的 linuxrc文件 等的权限为了方便都chmod 777 **

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值