#导入Word文档图片# 根文件系统制作与挂载

Posted DS小龙哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#导入Word文档图片# 根文件系统制作与挂载相关的知识,希望对你有一定的参考价值。


  • 开发环境介绍虚拟机版本:商业版11.1.0 build-2496824
    发行版环境:Ubuntu_15.04 32位
    嵌入式Linux内核版本:3.5
    交叉编译器arm-linux-gcc版本:4.5.1

1.1 busybox介绍

BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 android 系统的自带的shell。BusyBox提供了一个比较完善的环境,可以适用于任何小的嵌入式系统。

1.2 获取busybox源码

官网链接:http://www.busybox.net/

下载截图:

#导入Word文档图片#


图1.0

1.3 busybox配置

1.3.1 解压源码包

首先将下载的busybox源码拷贝到虚拟机里的Linux系统,提前创建一个文件夹存放busybox,可以通过虚拟机的共享文件夹或者通过鼠标直拖入虚拟机。

拷贝进linux系统之后进行解压:

tar xvf busybox-1.24.1.tar.bz2

解压截图:

#导入Word文档图片#


图1.1

1.3.2 修改编译环境

修改busybox根目录下的Makefile,大约164行。修改之后如下:

164 CROSS_COMPILE ?=arm-linux-

截图修改:

#导入Word文档图片#


图1.2

1.3.3 配置busybox

进入配置界面,在busybox根目录下输入下面的命令:

#Make menuconfig

效果图:

#导入Word文档图片#


图1.3

图1.4

图1.5选择动态编译

选择busybox编译方式为动态编译,默认的选择就是动态编译。

  • Windows 下的库类型
  1. .dll 动态链接库
  2. .lib 静态库
  • Linux 下的库类型
  1. .so.X 动态链接库 X 是一个整数, 也可以直接 .so
  2. .a 静态库

编译成动态链接方式占用空间小,方便软件维护,更新。不能独立运行,要依赖其他库。

编译成静态链接方式占用空间大,但是可以独立运行,不依赖其他库。

  • 配置bosybox根文件系统安装路径
  • #导入Word文档图片#

  • 图1.6
  • #导入Word文档图片#

  • 图1.7默认的安装路径
    默认的安装目录是_install。该路径在当前目录下。 一般可以将该目录命名为rootfs,表示根文件系统路径。

1.3.4 编译安装busybox

在busybox根目录下输入以下命令:

root@XL:/work_user/busybox/busybox-1.24.1# make && make install

效果截图:

图1.8 成功现象

1.4 制作根文件系统

1.4.1 拷贝共享库lib

进入共享路径目录:

root@XL:/work_user/busybox/busybox-1.24.1# cd _install/

创建三个文件夹:

root@XL:/work_user/busybox/busybox-1.24.1/_install# mkdir lib dev etc

图1.9 创建成功

因为我们配置busybox时,选择的是动态编译,动态编译需要交叉编译器的库支持。

拷贝交叉编译器的库到共享路径_install目录下的lib文件夹。

  • 获取交叉编译器路径

root@XL:/work_user/busybox/busybox-1.24.1/_install# echo $PATH

/work_user/arm-linux/opt/FriendlyARM/toolschain/4.5.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

  • 拷贝lib库

root@XL:/work_user/busybox/busybox-1.24.1/_install/lib# cp /work_user/arm-linux/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/* ./ -d -rf

效果图:

#导入Word文档图片#


图2.0

1.4.2 创建设备节点

进入dev目录下创建设备节点。

root@XL:/work_user/busybox/busybox-1.24.1/_install/dev# mknod console c 5 1

root@XL:/work_user/busybox/busybox-1.24.1/_install/dev# mknod null c 1 3

mknod命令解析:

mknod console c 5 1

节点名称 c是字符设备 主设备号 次设备号

mknod null c 1 3

节点名称

用法:mknod <设备节点的名称> <设备节点的类型> [主设备号 次设备号]

效果图:

#导入Word文档图片#


图2.1

1.4.3 设置脚本命令解析器

root@XL:/work_user/busybox/busybox-1.24.1/_install# cd etc/

root@XL:/work_user/busybox/busybox-1.24.1/_install/etc# ls

root@XL:/work_user/busybox/busybox-1.24.1/_install/etc# vim inittab

添加如下代码:

console::askfirst:/bin/sh

效果图:

图2.2

1.4.4 设置NFS共享路径

添加共享路径:

root@XL:/work_user/busybox/busybox-1.24.1/_install/etc# vim /etc/exports

填上自己的共享路径:

/work_user/busybox/busybox-1.24.1/_install *(rw,no_root_squash,sync)

路径格式:

实际路径 *(rw,no_root_squash,sync)


实际路径:要共享的目录

* :允许所有的网段访问

rw :读写权限

sync:资料同步写入硬盘

no_root_squash:nfs客户端共享目录使用者权限

效果图:

图2.3

重新挂载/etc/exports

将共享路径输出到屏幕

如果缺少exports模块,需要安装:

root@XL:/work_user/busybox/busybox-1.24.1/_install/etc# apt-get install nfs-kernel-server //安装NFS服务器

root@XL:/work_user/test_busybox/busybox-1.24.1# sudo apt-get install nfs-common //安装NFS客户端

exports命令格式:

如果修改了/etc/exports文件后不需要重新激活nfs,只要重新扫描一次/etc/exports文件,并且重新将设定加载即可:

# exportfs [-aruv]

参数说明如下。

(1)-a:全部挂载(或卸载)/etc/exports文件内的设定。

(2)-r:重新挂载/etc/exports中的设置,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。

(3)-u:卸载某一目录。

(4)-v:在export时将共享的目录显示在屏幕上。

1.4.5 启动NFS挂载

  • Ubuntu系统选启动NFS挂载方式

root@XL:/# /etc/init.d/nfs-kernel-server restart //复位NFS服务

[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.


root@XL:/# /etc/init.d/nfs-kernel-server start //启动NFS服务

[ ok ] Starting nfs-kernel-server (via systemctl): nfs-kernel-server.service.


/etc/init.d/nfs-kernel-server stop //停止NFS服务

  • 红帽子系统下启动NFS服务器方法

为了方便,需要编写一个脚本:

在根目录下创建一个脚本文件。名称为:start_nfs_config.sh

#!/bin/bash

service nfs restart #重启NFS服务器

service iptables stop #关闭防火墙

ifconfig eth0 192.168.18.3 #设置网卡的IP地址。

修改脚本的执行权限:#chmod 777 start_nfs_config.sh

注意:如果重启NFS服务器过程中出现有错误,需要重新运行脚本一次!

单独启动NFS服务器:service nfs start

红帽6.3系统下配置网络方式

#导入Word文档图片#


1.4.6 配置网络

设置虚拟机网络为桥接模式:

#导入Word文档图片#


#导入Word文档图片#


设置ip地址:ifconfig eth0 192.168.18.3

1.5 设置UBOOT环境变量

setenv bootargs root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc cnotallow=ttySAC0,115200

格式:

setenv bootargs root=/dev/nfs nfsroot=<服务器IP>:<根文件系统的路径> ip=<开发板IP>:<服务器IP>:<网关>:<子网掩码>::eth0:off init=/linuxrc cnotallow=ttySAC0,115200

在UBOOT命令行设置环境变量后,需要保存!---> # saveenv

设置完成后重启开发板,如果正常的话,就挂挂载电脑上的文件系统:

#导入Word文档图片#



以上是关于#导入Word文档图片# 根文件系统制作与挂载的主要内容,如果未能解决你的问题,请参考以下文章

#导入Word文档图片# Linux系统与终端基础命令介绍

#导入Word文档图片# Linux下I2C驱动架构全面分析

嵌入式Linux开发-根文件系统本地挂载

#导入Word文档图片# Linux下时间处理相关函数介绍

#导入Word文档图片# Linux平台设备驱动模型

#导入Word文档图片# Linux下线程编程