根文件系统制作(Busybox1.9.2)

1   建一个目录rootfs 用来装文件系统

 

2   # mkdir bin dev etc home lib mnt proc root sbin tmp usr var

    # mkdir usr/bin usr/sbin

# mkdir mnt tmp var

# chmod 1777 tmp

# mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp

# mkdir var/lib var/lock var/log var/run var/tmp

# chmod 1777 var/tmp

# mkdir home root boot

 

3   到系统 /dev 把所有的device 打一个包,拷贝到 dev 下面(最省事的做法);或者使用mknod 来自己建所需要的device,

举例:

# mknod -m 600 dev/console c 5 1

# mknod -m 666 dev/null c 1 3

 

4   应用程序定制

标准的Linux 发行版本具有功能种类比较多的应用程序,这些应用程序占用的空间也很大,这对存储容量空间有限的开发板来说就不是理想的选择,在嵌入式开发过程中,经常用BusyBox 来定制应用程序。BusyBox 具有shell 的功能,它能提供系统所需要的大部分工具,包括编辑工具、网络工具、模块加载工具、压缩解压缩工具、查找工具、帐号密码管理工具和进程相关工具等。

目前BusyBox 的最新版本是BusyBox-1.9.2 版本,下载解压,切换到BusyBox

根目录下,修改Makefile, 找到ARCHCROSS COMPILE 修改如下:

ARCH ?= arm

CROSS_COMPILE ?=/usr/local/arm/3.4.1/bin/arm-linux-

 

5   修改编译配置选项。

#make defconfig

#make menuconfig

在默认的选项前提之下,选项设置如下:

    BusyBox Settings --->

    Build Options ---> ( 采用静态编译)

[*] Build BusyBox as a static binary (no shared libs)

Install optin-->

[*] Don't use /usr  // 可以不选,选了则没有/usr 文件夹

Busybox Library Tuning --->

(2) MD5: Trade Bytes for Speed

[*] Faster /proc scanning code (+100 bytes)

[*] Support for /etc/networks

[*] Support for /etc/networks

[*] Additional editing keys

[*] vi-style line editing commands

[*] History saving

[*] Tab completion

[*] Username completion

[*] Fancy shell prompts

 

Linux Module Utilities --->

[ ] Support version 2.2.x to 2.4.x Linux kernels  // 不能选

[*] Support version 2.6.x Linux kernels

Linux System Utilities --->

    [*] Support for the old /etc/mtab file   // 不确定

Miscellaneous Utilities --->

    [*] devfs(obsolete) // 不确定

    [*] Use devfs names for all device(obsolete) // 不确定

Shell ---> 

Choose your default shell(ash)-->

---ash   // 下面的选项全部选择

 

6   编译busybox

make install

busybox/_install 目录下会生成我们需要的文件。

修改_install/bin/busybox 的属性。为4755

chmod 4755 ./_install/bin/busybox

必须要修改属性,否则在busybox 中很多命令会受限

将编译好的busybox 拷贝到/bin 下面。拷贝时带上参数-arf 或者-dpR

除了busybox 外,所有其他的命令都是他的link

/sbin 下面也是busyboxlink,

/usr/bin 下面也是busyboxlink,

/usr/sbin 下面放着所有编译完的可执行文件,具体就不多说了

7   非常重要之/lib ,务必重视

/lib 的库其实就是进行busybox 编译的库,即交叉编译器的库,我们这里使用的是3.4.1 ( 位置 /usr/local/arm/3.4.1)

# cd  /usr/local/arm/3.4.1/arm-linux/lib

# for file in libc libcrypt libdl libm libpthread libresolv libutil

> do

> cp $file-*.so   rootfs/lib ( 复制到你做的文件系统的 /lib 目录下 )

> cp -d $file.so.[*0-9]   rootfs/lib

> done

# cp -d ld*.so*   rootfs/lib

 

8   系统配置文件的建立

系统配置文件放在/etc 目录下

    (1)profile 文件

#Set search library path

export LD_LIBRARY_PATH =/lib:/usr/lib:$LD_LIBRARY_PATH

#Set user path

        PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH

alias ll='ls -l'

        #Set PS1
        USER=”`id –un`”

        LOGNAME=$USER

        PS1=’[/u@/h /W]/$ ’

PATH=$PATH

        export USER LOGNAME PS1 PATH

    (2)fstab 文件

proc   /proc proc   defaults   0 0

none   /tmp   ramfs defaults   0 0

mdev   /dev   ramfs defaults   0 0

sysfs /sys   sysfs defaults   0 0

    (3)inittab 文件

::sysinit:/etc/init.d/rcS

::respawn:-/bin/sh

::ctrlaltdel:/bin/umount -a -r

::shutdown:/bin/umount -a -r

::shutdown:/sbin/swapoff -a

    (4) 创建/etc/init.d 文件夹和rcS ,在rcS 中添加

#! /bin/sh

# 设置主机名,需要在etc 建立文件host

./etc/host

hostname ${HOSTNAME}

# mount all filesystem defined in “fstab”

echo "# mount all..........."

/bin/mount -a

echo "# Starting mdev........."

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

mdev –s

    (5)host 文件

HOSTNAME=Hasotech

    (6) 创建mdev.conf 文件 (空文件)

(7) 复制主机/etc/ 下面的文件passwd, group, shadow 文件到/etc

# cp /etc/group .

# cp /etc/passwd .

# cp /etc/shadow .

修改passwd 中用户使用的shell 名称。FC6 上默认的为bash,vivi 只支持ash

root:x:0:0:root:/root:/bin/bash -->

root:x:0:0:root:/root:/bin/ash

    (8) 修改各文件和文件夹的权限

# chmod 755 /rootfs/etc/init.d/rcS

# chmod 755 /rootfs/etc/host

 

9   yaffs 文件系统映像的制作

使用mkyaffsimg 程序可以把一个目录做成一个yaffs 映像文件,然后使用usb 下载到

板子上。进入文件系统目录层,使用以下命令。

#mkyaffsimg rootfs rootfs.img

这样就会在该目录下生成rootfs.img 映像文件,下载到开发板运行即可。

 

10  cramfs 文件系统映像的制作(cramfs 压缩率比较高)

FTP 中下载cramfs-1.1.tar.gz ,解压到自己设定的目录下, 如:

tar xzvf cramfs-1.1.tar.gz C /home/

进入生成有mkcramfs 文件的目录下(一定要进入此目录,否则会提示找不到该命令)

输入命令:#./mkcramfs / rootfs rootfs.cramfs

在当前目录下即生成rootfs.cramfs 映像文件。到此Linux 操作系统移植完毕。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值