免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1712 | 回复: 0
打印 上一主题 下一主题

使用Busybox定制根文件系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-25 16:16 |只看该作者 |倒序浏览

                                                                                                                                                                                                                                                                                                                                下载busybox源代码,最新版本为busybox-1.15.0
http://www.busybox.net/downloads/
解压并进入目录# tar jxvf busybox-1.15.0.tar.bz2# cd busybox-1.15.0修改Makefile# gedit Makefile &把 164 行修改为:
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
                CROSS_COMPILE = /usr/local/arm/arm-2009q1/bin/arm-linux-
把 189 行修改为:
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
                ARCH = arm
配置# make menuconfig在原有的基础上修改配置
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
               
Busybox Settings  --->         Build Options  --->                 
  • Build BusyBox as a static binary (no shared libs)               
  • Build with Large File Support (for accessing files > 2 GB)         Busybox Library Tuning  --->               
  •    vi-style line editing commands               
  •    Fancy shell prompts Linux Module Utilities  --->         [ ] Simplified modutils         
  •    insmod        
  •    rmmod        
  •    lsmod         
  •    modprobe        
  •    depmod
    退出并保存配置编译# make
    安装# make install在busybox-1.15.0目录下可以找到_install子目录,这就是刚才的安装目录
    在busybox-1.15.0目录的父目录建立一个rootfs目录(用于存放各类型根文件系统)
    # mkdir ../rootfs
    拷贝_install目录到rootfs目录下
    # cp _install/ ../rootfs/ -adf
    进入rootfs目录
    # cd ../rootfs
    改_install名为rootfs_default,这将会作为最简约的根文件系统
    # mv _install/ rootfs_default
    在rootfs_default目录新建一个一键创建根文件系统所需文件与目录的脚本mkrootfs.sh
    # cd rootfs_default
    # gedit mkrootfs.sh
    其内容为:
                   
                   
                   
                   
                   
                   
                   
                    #!/bin/sh
    mkdir boot dev etc home lib mnt opt proc root tmp var sys www
    mkdir usr/lib
    mkdir usr/local
    mkdir usr/local/lib
    mkdir usr/local/etc
    mkdir usr/local/bin
    mkdir usr/local/sbin
    mkdir etc/init.d
    touch etc/init.d/rcS
    touch etc/inittab
    touch etc/fstab
    touch etc/profile
    mkdir etc/sysconfig
    touch etc/sysconfig/HOSTNAME
    mknod dev/console c 5 1
    chmod 777 dev/console
    mknod dev/null c 1 3
    chmod 777 dev/null
    为其加上可执行权限,并执行
    # chmod +x mkrootfs.sh# ./mkrootfs.sh
    etc/init.d/rcS的内容
    #!/bin/sh
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    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
    编辑完成后为其加上可执行权限# chmod +x etc/init.d/rcS
    etc/fstab的内容
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
    #device    mount-point     type     option     dump   fsck   order            
    proc          /proc          proc      defaults     0        0           
    sysfs         /sys            sysfs     defaults     0        0           
    mdev        /dev           ramfs    defaults     0        0
    none         /var            ramfs    defaults     0        0
    none         /tmp           ramfs    defaults     0        0
    etc/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`
    export USER LOGNAME PS1 PATH
    etc/inittab的内容
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
    #etc/inittab
    ::sysinit:/etc/init.d/rcS
    ::askfirst:-/bin/sh
    ::ctrlaltdel:/sbin/reboot
    ::shutdown:/bin/umount -a –r
                                  
    etc/sysconfig/HOSTNAME的内容为你自己的名字即可
    拷贝你主机的passwd和group及shadow文件到rootfs_default/etc/目录下
    # cp /etc/passwd ./etc
    # cp /etc/group    ./etc
    # cp /etc/shadow ./etc
    拷贝交叉编译器的动态库文件到lib目录# cp -f /usr/local/arm/arm-2009q1/arm-none-linux-gnueabi/libc/lib/*so* lib/ -a
    # cp -f /usr/local/arm/arm-2009q1/arm-none-linux-gnueabi/libc/usr/lib/*so* lib/ -a               
    OK,算是做好了

    [color="#02368d"]

    [color="#02368d"]移植触摸屏库 tslib 到mini2440

                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49274/showart_2060009.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP