实验九 根文件系统移植

【实验目的】

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

【实验环境】

  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. 参考如下信息配置 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
    

在这里插入图片描述

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

	$ make install

安装完成后在源码的顶层目录下会生成_install 目录
在这里插入图片描述

  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
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/83883.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

XXL-JOB

XXL-JOB是一个分布式的任务调度平台。 目的:为了自动完成特定的任务,在约定的特定时间去执行任务的过程。 原因:在spring中有scheduled,放到业务层代码上面也可以。但是其无法做到高可用、防止重复执行,单机处理极限…

Java项目-苍穹外卖-Day06-微信小程序开发

文章目录 前言1.HttpClienthttpclient是什么入门案例发送GET请求发送POST请求Httpclient工具类 2.微信小程序介绍准备工作注册小程序和完善对应信息下载开发者工具 入门案例 前言 本篇主要是主要是wx小程序开发入门和HttpClient的使用介绍 完成了苍穹外卖用户端的 微信登陆 和…

记录一个用C#实现的windows计时执行任务的服务

记录一个用C#实现的windows计时执行任务的服务 这个服务实现的功能是每天下午六点统计一次指定路径的文件夹大小 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using Syst…

登录校验-JWT令牌-登陆后下发令牌

目录 思路 接口文档 令牌生成和下发 步骤 具体代码如下 工具类 控制类 测试 前后端联调 思路 令牌生成:登陆成功后,生成JWT令牌,并返回给前端令牌校验:在请求到达服务端后,对令牌进行统一拦截、校验 接口文档…

考研C语言进阶题库——更新41-50题

目录 41.编写程序要求输出整数a和b若a和b的平方和大于100,则输出a和b的平方和,否则输出a和b的和 42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:第一项是1/1,第二项是是…

微信开放注册微信小号功能,工作人群福音!

微信,这个坐拥数亿用户的社交巨头,最近终于开放了注册微信小号的功能。这个功能对于需要多个微信账号进行工作的人来说,无疑是一场及时雨,极大地提高了工作便利性。 在之前的版本中,每个微信账号都绑定了一个手机号&am…

改进YOLO系列:5.添加CBAM注意力机制

添加CBAM注意力机制 1. CBAM注意力机制论文2. CBAM注意力机制原理3. CBAM注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. CBAM注意力机制论文 论文题目:CBAM: Convolutional Block Attention Module 论文链接:CBAM: Convolutional Block Attenti…

哪个蓝牙耳机打电话比较好,打电话降噪蓝牙耳机推荐

近年来,骨传导耳机的市场表现出了显著的增长,其市场竞争也变得异常激烈,与传统无线耳机相比,“骨传导耳机”的知名度还达不到举世皆知的地步,但对于运动群体以及部分有听力损伤的群体来说,骨传导耳机还是有…

❤ 给自己的mac系统上安装java环境

❤ 给自己的mac系统上安装java环境 🍓 作为前端工程师如何给自己的mac系统上安装java环境 🍎 最近因为自己的一些项目需求,mac电脑上需要安装一些后台的java环境,用来跑后台的java程序,于是从一个前端工程师的角度安…

探秘工业设计的魅力:引领时尚潮流,打造个性空间

工业风格源自于上世纪初的工人阶级世界,几十年来一直充满诱惑力。它们由金属集合物,焊接、铆钉这些暴露在外的结构组建,融进了更多装饰性的曲线,再与素雅的色彩搭配形成:让我们来看看这种历史悠久的,在室内…

HTTPS协议加密原理

目录 一、什么是HTTPS 二、什么是加密/解密 三、为什么要加密 四、常见的加密方式 1.对称加密 2. 非对称加密 五、HTTPS加密方式探讨 1.只使用对称加密 2.只使用非对称加密 3.非对称加密对称加密 4.非对称加密对称加密CA认证 六、总结 一、什么是HTTPS HTTP 协议&a…