实验九 根文件系统移植

【实验目的】

熟悉根文件系统的目录结构,构建自己的根文件系统

【实验环境】

  1. ubuntu 14.04 发行版
  2. FS4412 实验平台
  3. 交叉编译工具:arm-none-linux-gnueabi- 【注意事项】
  4. 实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行

【实验步骤】

一、构建自己的根文件系统

  1. 在 busybox 官网下载 busybox 源码(这里我们下载 busybox-1.22.1.tar.bz2)
    https://busybox.net/downloads/

  2. 拷贝 busybox 源码包到 ubuntu 的家目录下,解压并进入其顶层目录

    $ tar xvf busybox-1.22.1.tar.bz2
    $ cd busybox-1.22.1/
    
  3. 进入 busybox 配置界面(与 Linux 内核配置方法一样)

    $ make menuconfig
    

实验九 根文件系统移植_第1张图片

  1. 参考如下信息配置 busybox

    Busybox Settings --->
    	Build Options --->
    		[*] Build BusyBox as a static binary (no shared libs)
    		[ ] Build with Large File Support (for accessing files > 2 GB)
    		(arm-none-linux-gnueabi-) Cross Compiler prefix
    

配置完成后通过方向键选择‘Exit’退出,并保存配置信息

  1. 编译 busybox

    $ make
    

实验九 根文件系统移植_第2张图片

编译完成后在源码的顶层目录下会生成 busybox 文件
6. 安装 busybox

	$ make install

安装完成后在源码的顶层目录下会生成_install 目录
实验九 根文件系统移植_第3张图片

  1. 进入到安装目录下查看生成的文件

    $ cd _install/
    $ ls
    

如下图所示,在安装目录下生成了根文件系统中所需的 shell 命令文件
在这里插入图片描述

  1. 将交叉编译工具链中的库文件拷贝到_install 目录下

    $ cp /home/linux/Linux_4412/toolchain/gcc-4.6.4/arm-arm1176jzfssf-linux-gnueabi/lib/ . -a
    

如下图所示,在安装目录下就有了根文件系统中所需的库文件
在这里插入图片描述

  1. 删除库文件中的静态库

    $ sudo rm lib/*.a
    
  2. 删除共享库中的符号表(需要在 root 用户下操作

    $ sudo su
    $ /home/linux/Linux_4412/toolchain/gcc-4.6.4/bin/arm-none-linux-gnueabi-strip lib/*
    $ exit
    
  3. 将资料中“移植相关文件”下的 etc 目录(配置文件)拷贝到当前目录下
    在这里插入图片描述

  4. 给 etc/init.d/下的 rcS 脚本添加可执行权限

    $ chmod +x etc/init.d/rcS
    
  5. 创建其他目录

    $ mkdir dev mnt proc root sys tmp var
    

如下图所示,至此我们就构建好了自己的根文件系统
在这里插入图片描述

  1. 删除原来的根文件系统

    $ sudo rm -rf /opt/4412/rootfs/*
    
  2. 将自己制作的根文件系统拷贝到 NFS 的工作目录下测试

    $ sudo cp -rf ./* /opt/4412/rootfs
    

你可能感兴趣的:(数据库,postgresql,服务器)