Busybox构建根文件系统和制作Ramdisk

Posted LoTGu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Busybox构建根文件系统和制作Ramdisk相关的知识,希望对你有一定的参考价值。

         定制根文件系统的方法很多,最常用的是使用BusyBox来构建定制根文件系统。它集成压缩了Linux的许多工具和命令,可以使用户迅速方便地建立一套相对完整、功能丰富的文件系统,其中包括大量常用的应用程序。下面详细介绍有关Busybox定制根文件系统。

 

一、系统环境:

1、操作系统:Ubuntu140.4

2、交叉编译工具:gcc version 6.1.1 20160711 (Linaro GCC 6.1-2016.08)

3busybox源码包:busybox-1.26.2

 

二、构建rootfs

    1、建立rootfs目录

    /home/xxx/xxx目录下建立rootfs目录,

        $  mkdir rootfs

                $  cd  rootfs

                $  mkdir  root  bin  sbin  etc  dev  usr  lib  tmp  mnt  sys  proc  var  //建立常用目录

                $  mkdir  usr/lib  usr/bin  usr/sbin

 

    2、解压源码包:

        $ tar -jxvf busybox-1.26.2.tar.bz2

 

    3、配置BusyBox

       $ make distclean

              $ make defconfig

              $ make menuconfig ARCH=arm

    3.1选择Busybox Settings --->

              Installation Options --->

                                   BusyBox installation prefix(在里面输入BusyBox的安装目录,我是保存在/home/xxx/xxx/rootfs)

clip_image002

 

clip_image004

 

    3.2选择Busybox Settings --->  

                     选中[*] Don\'t use /usr

 

clip_image006

  

    3.3 Busybox Settings---->

             Build Options---->

               选中 [*]Build BusyBox as a static binary(静态链接)

               Cross Compiler prefix配置为arm-linux-gnueabi-(指定交叉编译器)

clip_image008

 

配置好后,保存相关配置信息。

    4、编译安装Busybox

        $ make

                $ make install

 

    5、添加/home/xxx/xxx/rootfs/dev目录下的设备文件。

    dev目录下必须有consolenull这两个设备文件,使用mknod来创建这两个设备文件。

        $ cd dev/

                $ sudo mknod -m 666 console c 5 1

               $ sudo mknod -m 666 null c 1 3

   

    6、把busybox源码目录下的examples/bootfloppy/etc的内容拷贝到rootfs目录下的etc

        $ cd /home/xxx/xxx/rootfs/etc

                $ cp  /home/ xxx/xxx/Downloads/busybox-1.26.2/examples/bootfloppy/etc/* ./ -raf

 

    8、修改配置文件

    8.1、修改fstab配置文件为:

#device        mount-point type       options         dump     fsck order

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

ramfs            /dev              ramfs     defaults        0     0

  

    8.2修改profile文件为:

# /etc/profile: system-wide .profile file for the Bourne shells

 

USER="root"

LOGNAME=$USER

export HOSTNAME=`/bin/hostname`

export USER=root

export HOME=/root

export PS1="[$USER@$HOSTNAME \\W]\\# "

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

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

export PATH LD_LIBRARY_PATH

 

    8.3修改inittab文件为:

# /etc/inittab

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

::askfirst:-/bin/sh

::ctrlaltdel:/sbin/reboot

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

::restart:/sbin/init

 

8.4 配置系统的hostname。在etc目录下执行如下命令:

    $ mkdir  sysconfig

        $ cd sysconfig

        $ touch  HOSTNAME

        $ echo  tiny4412 > HOSTNAME

 

    8.5 配置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 -p /dev/pts

mount -t devpts devpts /dev/pts

#mount -n -t usbfs none /proc/bus/usb

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

mdev -s

mkdir -p /var/lock

 

ifconfig lo 127.0.0.1

 

/bin/hostname -F /etc/sysconfig/HOSTNAME

 

修改init.d/rcS文件权限为:

    $ chmod 777 init.d/rcS

 

三、制作Ramdisk文件系统

    制作Ramdisk的脚本mk_Ramdisk.sh如下:

#!/bin/bash

 

rm -rf ramdisk*

 

sudo ddbusybox最小根文件系统

使用BusyBox制作Linux根文件系统

用wubi装的Ubuntu10.10系统,装完重启后出现了下面的问题: busybox v1.13.3(ubuntu 1:1.1.3.3-1ubuntu11)

Linux移植到自己的开发板根文件系统

第4阶段——制作根文件系统

使用BusyBox制作根文件系统

(c)2006-2024 SYSTEM All Rights Reserved IT常识