移植文件系统到GEC210(一)

一、创建目标文件夹

1.在home目录下创建一个build_rootfs 文件夹 

mkdir /home/zhou/buil_rootfs
cd    /home/zhou/buil_rootfs

2.在build_rootfs目录里面创建一个rootfs文件夹,这将是我们最终要移植的文件夹

mkdir rootfs
cd rootfs

3.创建以下几个linux必须的文件夹关于这几个文件夹的具体作用可以 参考这里

mkdir {bin,sbin,etc,lib,dev,proc,usr,sys,tmp}
cd usr
mkdir {lib,sbin,bin}

二、移植Busybox

BusyBox是一个集成了一百多个最常用Linux命令和工具的软件。BusyBox包含了一些简单的工具,例如ls、cat 和echo等等,还包含了一些更大、更复杂的工具,例如grep、find、mount以及telnet。有些人将BusyBox称为Linux工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统的自带的shell。
BusyBox将许多具有共性的小版本的UNIX工具结合到一个单一的可执行文件。这样的集合可以替代大部分常用工具比如的GNU fileutils,shellutils等工具,BusyBox提供了一个比较完善的环境,可以适用于任何小的或嵌入式系统。

1.下载Busybox

2.解压并且进入目录

# tar jxvf busybox-1.20.2.tar.bz2
# cd busybox-1.20.2
3.修改Makefile

将第164行修改为

CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
注意这里我使用的交叉编译工具是arm-2009q3

将第190行修改为

ARCH = arm

4.配置busybox

BusyBox的配置程序和linux内核菜单配置方式简直一模一样。熟悉用make menuconfig方式配置linux内核的朋友很容易上手。

make menuconfig

BusyBox的配置程序和linux内核菜单配置方式简直一模一样。熟悉用makemenuconfig方式配置linux内核的朋友很容易上手。

#make menuconfig

选上以下几项:

BusyboxSettings --->
    BuildOptions --->
       [*] Build BusyBox as a static binary (no shared libs)

这个选项是一定要选上,这样才能把BusyBox编译成静态链接ᄃ的可执行文件ᄃ,运行时才独立于其他函数库,否则需要其他库文件才能运行BusyBox
    BusyboxLibrary Tuning --->
       [*] vi-style line editing commands

选上VI风格的行编辑器命令。
       [*] Fancy shell prompts
Linux ModuleUtilities --->
        [] Simplifiedmodutils
        [*] insmod
        [*] rmmod
        [*] lsmod
        [*] modprobe
        [*] depmod

取消选中Simplifiedmodutils,使用完整的模块工具命令:insmodrmmod……

确保支持mdev(mdevudev设备文件系统的精简版),确保以下几项被选中:

LinuxSystem Utilities ---> [*] mdev 
       [*] Support/etc/mdev.conf 
       [*] Supportsubdirs/symlinks 
       [*] Supportregular expressions substitutions when renamingdev
       [*] Supportcommand execution at device addition/removal 
       [*] Supportloading of firmwares

修改输出目录

BusyboxSettings --->

        InstallationOptions ("make install" behavior) --->

        将第二项修改为:

/home/zhou/build_rootfs/rootfs也就是我们的输出目录

Busybox Settings  --->
       General Configuration  --->
            [*] Don't use /usr   
选中这一项 
5.编译 安装

make -j4
make install

以下均在rootfs目录下完成

三、添加必要的文件

1.拷贝交叉编译器里的动态链接库到 lib目录

cp /usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/armv4t/lib/*so* lib -rdf 
2.对 lib目录下的动态链接库进行裁减

arm-none-linux-gnueabi-strip lib/*so*
3.创建几个脚本文件

etc/inittab 文件是启动流程文件,它的内容为:

::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::restart:/sbin/init
etc/init.d/rcS文件的内容为:

#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin        
mount -a                                         #mount-a会读取etc/fstab完成文件系统挂载
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
ifconfig eth0 192.168.0.80

etc/fstab文件的内容为:

# <file system> <mount point> <type> <options> <dump> <pass>
     proc        /proc      proc   defaults    0      0
     sysfs       /sys       sysfs   defaults    0      0
     tmpfs      /dev      tmpfs   defaults    0      0
     tmpfs      /tmp      tmpfs   defaults     0      0

到此我们的文件系统已经配置完成;可以使用两种方式来测试文件系统

四、测试文件系统

将文件系统挂载到nfs服务器

sudo vim /etc/exports
//添加
/home/zhou/build_rootfs/rootfs *(rw,sync,no_root_squash,no_subtree_check)
//重启nfs服务器

测试将/home/zhou/build_rootfs/rootfs目录挂载在/mnt下:

mount 192.168.1.2:/home/zhou/build_rootfs/rootfs /mnt

这样可以在/mnt目录下看到文件系统中的内容










 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值