基础环境搭建

  • 一、配置交叉开发工具链
  • 1.安装 交叉开发工具
  • 2.将交叉开发工具添加到全局的配置文件内
  • 3.交叉开发工具 环境测试
  • 二、配置TFTP服务(文件传输)
  • 1.安装 TFTP服务
  • 2.修改默认的配置文件(TFTP 服务器容器,即客户端只能获取该目录内的文件数据)
  • 3.配置完成后 重启TFTP服务
  • 4.TFTP服务测试
  • 三、配置NFS服务(网络共享目录)
  • 1.安装NFS软件包
  • 2.修改默认的配置文件(配置共享文件的目录位置)
  • 3.配置完成后 重启NFS服务
  • 4.NFS服务测试


一、配置交叉开发工具链

我们运行的可执行文件内部对应的是机器码;机器码又分为不同的架构有X86、ARM等

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_linux


只有生成对应架构的机器码才能时其正常运行;我们使用的开发是ARM架构的,却是在X86架构上开发;所以我们需要使用一个交叉编译工具来将代码程序给编译成对应的可执行文件;

//如下 在X86平台使用GCC编译的C文件 查看其机器码类型为X86
linux@ubuntu:~$ gcc main.c -o main
linux@ubuntu:~$ file main 
linux@ubuntu:~$ main: ELF 64-bit LSB executable, x86-64,...省略

1.安装 交叉开发工具

安装前请查看一下您的系统是否为64位,64位 ubuntu可能需要在线安装32位运行库

sudo apt install lib32ncurses5 
sudo apt install lib32z1

首先获取到NFS的安装包,然后对其解压安装

NFS压缩包 gcc-4.6.4.tar.xz
art -xvf gcc-4.6.4.tar.xz

进入安装目录即可查看到 交叉开发工具 /gcc-4.6.4/bin

gcc-4.6.4  gcc-4.6.4.tar.xz
linux@ubuntu:~$  cd gcc-4.6.4
linux@ubuntu:~/gcc-4.6.4$ ls
arm-arm1176jzfssf-linux-gnueabi  bin  include  lib  libexec  share
linux@ubuntu:~/gcc-4.6.4$ cd bin

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_linux_02



2.将交叉开发工具添加到全局的配置文件内

要想在任意目录都能调用 交叉开发工具来编译文件,则需要将交叉开发工具配置到全局文件内

linux@ubuntu:~$  sudo vi /etc/bash.bashrc #修改配置文件

进入配置文件后 在底行输入如下图的代码

TOOLCHAIN=您自己的交叉工具链目录位置
export PATH=$ PATH:$TOOLCHAIN

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_ubuntu_03



3.交叉开发工具 环境测试

//如下 在X86平台使用 交叉开发工具 编译的C文件 查看其机器码类型为ARM
linux@ubuntu:~$ arm-linux-gcc main.c -o main
linux@ubuntu:~$ file main 
linux@ubuntu:~$ mian: ELF 32-bit LSB executable, ARM, ...省略

二、配置TFTP服务(文件传输)

TFTP是一个传输文件的简单协议,绝大多数情况下基于UDP协议而实现;

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_x86环境下怎么pull arm的镜像_04

1.安装 TFTP服务

在线方式安装:
sudo apt-get install tftp-hpa (客户端程序)
sudo apt-get install tftpd-hpa (服务端程序)



2.修改默认的配置文件(TFTP 服务器容器,即客户端只能获取该目录内的文件数据)

在修改配置之前我们先创建一个目录 作为TFTP服务器的容器(保存好其位置 后面需要用到)

linux@ubuntu:~$ mkdir TFTP_container #创建的TFTP服务器的容器
linux@ubuntu:~$ cd TFTP_container
linux@ubuntu:~/TFTP_container$ pwd 	#获取容器 的绝对目录
/home/linux/TFTP_container			#TFTP服务器容器 的绝对目录

添加TFTP 服务器容器的文件 : /etc/default/tftpd-hpa

linux@ubuntu:~$ sudo vim /etc/default/tftpd-hpa

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_x86环境下怎么pull arm的镜像_05


x86环境下怎么pull arm的镜像 如何移植x86程序至arm_x86环境下怎么pull arm的镜像_06


3.配置完成后 重启TFTP服务

TFTP服务重启命令
sudo /etc/init.d/tftpd-hpa restart 或 sudo service tftpd-hpa restart

linux@ubuntu:~$ sudo /etc/init.d/tftpd-hpa restart				#重启TFTP服务
[ ok ] Restarting tftpd-hpa (via systemctl): tftpd-hpa.service. #OK代表成功


4.TFTP服务测试

tftp TFTP服务端IP地址		//TFTP客户端连接到TFTP服务器
tftp>get 需要下载的文件名称 	//获取TFTP服务器指定文件到当前目录
tftp>quit					//退出TFTP服务器

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_ubuntu_07


三、配置NFS服务(网络共享目录)

NFS即网络文件系统,是FreeBSD支持的文件系统中的一种;它允许网络中的计算机之间通过TCP/IP网络共享资源;

本地NFS的客户端应用 可以透明地读写位于远端 NFS服务器上的文件,就像访问本地文件一样

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_x86环境下怎么pull arm的镜像_08

1.安装NFS软件包

NFS软件包在线安装命令
sudo apt-get install nfs-kernel-server


2.修改默认的配置文件(配置共享文件的目录位置)

您可以将任意目录配置成共享文件;这里我使用了一个目录 rootfs

linux@ubuntu:~$ ls
rootfs
linux@ubuntu:~$ pwd
/home/linux/rootfs		#我将要配置NFS共享文件 的绝对路径

添加TFTP 服务器容器的文件 : /etc/exports

配置格式: NFS共享文件的绝对路径 *(rw,sync,no_root_squash)

linux@ubuntu:~$ sudo vim /etc/exports #修改配置文件

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_linux_09


3.配置完成后 重启NFS服务

NFS服务重启命令
sudo /etc/init.d/nfs-kernel-server restart 或 sudo service nfs-kernel-server restart

linux@ubuntu:~$ sudo /etc/init.d/nfs-kernel-server restart		#重启NFS服务
[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.


4.NFS服务测试

NFS连接格式:sudo mount NFS服务器IP地址:共享路径 自己的挂载点目录
NFS撤销格式:sudo umount 自己的挂载点目录

TFTP服务连接挂载成功后,客户端就可以操作服务端的共享文;

修改文件夹的内容,连接双方是同步的

x86环境下怎么pull arm的镜像 如何移植x86程序至arm_ubuntu_10