zoukankan      html  css  js  c++  java
  • zju(4)使用busybox制作根文件系统

    1、实验目的

    1、学习和掌握busybox相关知识及应用;

    2、学会使用交叉编译器定制一个busybox;

    3、利用该busybox制作一个文件系统;

    4、熟悉根文件系统组织结构;

    5、定制、编译ramdisk根文件系统。

    二、实验内容

    1.使用交叉编译器定制一个busybox;

    2.利用该busybox制作一个文件系统;

    3. 利用已经完成的文件系统,生成根文件系统。

    三、主要仪器设备

    1、Ubuntu12.04系统。

    2、英培特eduk4-s3c2410试验平台

    四、操作方法和实验步骤

    1. 编译busybox

    设置环境变量,执行命令切换到busybox实验目录下,并解压busybox

    在终端中输入命令设置环境变量

    source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh

    source /usr/local/arm/2.95.3/path.sh

    clip_image002

    clip_image004

    clip_image006

    清除早前可能存在的配置信息

    clip_image008

    执行配置命令

    clip_image010

    clip_image012

    选择Load An Alternate Configurstion File选项,添加配置文件,在弹出的窗体中写入eduk4后,保存并退出。

    编译busybox

    执行make 和 make install 后将在busybox-1.1.2下面生成一个_install文件夹

    clip_image014

    基于busybox生成文件系统包

    clip_image016

    创建文件系统目录树结构,并拷贝必要的文件到文件系统目录内

    mkdir –p dev etc/init.d home mnt proc root sys tmp var media

    clip_image018

    clip_image020

    cd /usr/local/src/EduKit-IV/Mini2410/simple/6.3-busybox/root-mini/etc/init.d/

    clip_image022

    #!/bin/sh

    echo "running /etc/init.d/rcS"

    #mount the /proc file system

    /bin/mount -t proc proc /proc

    echo "mount tmpfs filesystem to /tmp"

    /bin/mount -t tmpfs none /tmp

    echo "mount ramfs filesystem to /var"

    /bin/mount -t ramfs none /var

    /bin/ln -s /dev/fb/0 /dev/fb0

    /bin/ln -s /dev/ub/a/part1 /dev/sda1

    /bin/ln -s /dev/sound/dsp /dev/dsp

    /bin/ln -s /dev/tts/0 /dev/ttyS0

    /bin/ln -s /dev/tts/1 /dev/ttyS1

    /bin/ln -s /dev/tts/2 /dev/ttyS2

    /bin/mknod /dev/mtd0 c 90 0

    /bin/mknod /dev/mtd1 c 90 2

    /bin/mknod /dev/mtd2 c 90 4

    /bin/mknod /dev/mtd3 c 90 6

    /bin/mknod /dev/mtd4 c 90 8

    /bin/mknod /dev/mtd5 c 90 10

    /bin/hostname EDUK4

    /sbin/ifconfig lo 127.0.0.1 netmask 255.0.0.0

    #/sbin/ifconfig eth0 192.192.192.200 netmask 255.255.255.0

    /sbin/ifconfig eth1 192.192.192.201 netmask 255.255.255.0

    #exec /etc/init.d/rc.local

    在chmod –R 777 root-mini

    Busybox文件完

    根文件系统ramdisk的制作

    进入6.4-ramdisk执行脚本

    clip_image024

    运行shell脚本结果

    clip_image026

    创建一个空的ramdisk镜像

    clip_image028

    格式化文件系统

    clip_image030

    挂载文件系统

    mkdir -p temp

    mount -o loop ramdisk temp

    clip_image032

    clip_image034

    将root-mini下文件复制到temp

    cp -av ../6.3-busybox/root-mini/* temp/

    clip_image036

    卸载

    umount temp

    clip_image038

    生成压缩文件,修改root-mini.gz权限,再删除临时文件夹ramdisk,拷贝生成的ramdisk根文件系统映像到/home/example目录

    clip_image040

    gzip -v9 ramdisk

    chmod -R 777 ramdisk.gz

    cp -av ramdisk.gz /home/example/

    固化ramdisk

    启动minicom,按住space启动实验箱,进入vivi下载模式,使用load flash ramdisk x进行ramdisk根文件映像的固化。

    clip_image042

    clip_image044

    clip_image046

    重启系统,修改vivi启动参数,具体如下

    param set ramdisk_copy 1

    param set linux_cmd_line "initrd=0x30800000,0x200000 root=/dev/ram console=ttySAC1"

    param save

    clip_image048

    重启实验箱,可以在minicom中看到ramdisk文件系统的相关信息,如图4-10所示。clip_image050

    clip_image052

    定位导致出错的信息。通过提示信息猜测,问题出现在执行rcS的过程中,通过在文件中添加echo提示信息,进行问题定位。实验过程中发现,问题出现在配置网络信息过程中,即下面的语句:

    /sbin/ifconfig eth1 192.192.192.201 netmask 255.255.255.0

    当将eth1改为eth0时,提示信息消失。

    clip_image054

    clip_image056

  • 相关阅读:
    Java基础——消息队列
    Java基础——缓存
    Java基础——动态代理
    Java基础——克隆
    Java基础——锁
    Java基础——线程池
    Java基础——线程
    Java基础——HashMap
    Java基础——String
    SpringMVC的学习____5.乱码问题的解决_两种方法(两个类)
  • 原文地址:https://www.cnblogs.com/shenerguang/p/3381520.html
Copyright © 2011-2022 走看看