首页 > 每日快讯 > teraterm(tftp系统启动环境设定)

teraterm(tftp系统启动环境设定)

Linux系统移植四大部分:①搭建交叉开发环境。②bootloader的选择和移植【本文选用bootloader下的U-boot】。③uImage的配置、编译与移植。④根文件系统的制作。(①④全部已完成,本文只讲解②③如何搭载这些东西启动移植目标)

注:本文不涉及安装交叉编译工具链流程,文章底部具有交叉编译工具链的下载方式和安装流程,需要可以自取。若有需要自启动模式的,文章底部也会简单介绍。

使用的交叉编译器:arm-none-linux-gnueabi-gcc

本文关键技术点:tftp串口通信、nfs文件挂载、bootm环境启动参数设定

本文移植:linux(主机端)->目标端:开发板(fs4412、搭载exynos4412芯片、armv7架构、cotex-A9型号)

流程:①主机端搭载tftp服务器、创建共享文件夹并配置tftp命令。②主机端设定nfs文件系统路径。③目标端设定启动环境,保证tftp服务器下载启动文件至内存、设定主机端与移植目标端的ip、初始化搭载文件系统命令,保存环境命令。

①主机端搭载tftp服务器、创建共享文件夹并配置tptp命令。

这里我们使用的主机端是ubuntu(18.08 64bit)搭载VmWare Workstation上。首先我们需要下载tftp服务器至linux端口,命令如下:

sudo apt-get install tftpd-hpa tftp-hpa//下载服务器

若下载失败,可能之前有残留文件或未更新导致,可以尝试如下操作:

1.卸载tftp服务器及客户端,并删除配置文件--purge

2.sudo apt-get remove --purge tftpd-hpa tftp-hpa

3.重新安装tftp服务器及客户端

4.sudo apt-get update 更新软件包

5.sudo apt-get install tftpd-hpa tftp-hpa 重新下载

下载完成后,我们需要创建一个共享文件夹,【将测试文件放进去】。这里要注意权限的赋予,保证【共享文件夹】及【测试文件】都具有可读可写的权限。(这里直接给了0777权限)

1.sudo mkdir TFTPShareDir //创建共享文件夹

2.sudo chmod 0777 TFTPShareDir//赋予权限

接下来使用命令更改tftp参数,主要为了链接这个文件夹为共享文件夹

sudo vi /etc/default/tftpd-hpa

更改成这样

1.TFTP_USERNAME="tftp"//配置服务器名称

2.TFTP_DIRECTORY="/home/TFTPShareDir" //配置共享文件夹路径

3.TFTP_ADDRESS="0.0.0.0:69" //配置tftp服务器地址

4.TFTP_OPTIONS="-c -s -l"// 解释起来比较复杂,建议查看tftp手册得到c s l作用

然后重置tftp运行一下就完成了第一步。具体命令为:

sudo service tftpd-hpa restart

②主机端设定nfs文件系统路径。

这里的话我们先将小型文件系统拷贝至我们的linux系统下即可。博主这里用的是rootfs文件包,记住拷贝rootfs小型文件系统的路径,然后更改nfs配置环境即可。命令如下:

先打开nfs配置环境

sudo vim /etc/exports

再更改nfs配置环境

③目标端设定启动环境,保证tftp服务器下载启动文件至内存、设定主机端与移植目标端的ip、初始化搭载文件系统命令,保存环境命令。

现在我们去开发板进行调试,这里我们使用串口录入开发板信息进行调试,搭载的软件为TeraTerm-4.101

先配置开发板的tftp服务器ip,及主机端的服务器ip 命令如下


再配置nfs搜寻命令 这是一句话

1.#setenv bootargs root=/dev/nfs nfsroot=192.168.8.47:/home/farsight/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=192.168.8.88 clk_ignore_unused

2.翻译:从服务器192.168.8.47端口将nfs(网络文件系统)下载至板子192.168.8.88。设置串口波特率为115200,随后将其作为内核的根文件目录。 并且忽略时钟的影响。【注:内核需有支持传输nfs的网络驱动】

再配置运行启动命令,这也是一句话。

1.#setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;bootm 41000000 – 42000000

2.翻译:使用tftp网络通信将内核放置运行内存41000000位置、将设备树文件放至内存42000000位置

然后保存当前配置环境:

#saveent

----------------------我是分割线-------

到这一步,我们的启动命令已经搭载完毕、同时tftp服务器在主机端、目标端都已链接。然后我们直接boot启动板子即可,注意观察tftp是否下载内容,nfs是挂载成功,若搜寻到挂载文件并可正常使用linux命令就是成功了,类似如下:

此时操作板子的文件系统,linux端口也会出现变化,示例如下:(口误,应该是文件)

我们去linux端口去看一下

-------综上,为linux操作系统移植并启动目标(板子)操作--

④接下来放上交叉编译工具链的下载:

如果要自己编译工具链,从以下链接下载源码

crosstools-ng下载地址

http://ymorin.is-a-geek.org/download/crosstool-ng/

同时对每一个版本都有相应的补丁我们尽量把这些补丁打上,这些补丁的下载地址是

http://ymorin.is-a-geek.org/download/crosstool-ng/01-fixes/

解压工具链压缩包

$ cd ~

$ mkdir toolchain

$ cd toolchain

将gcc-4.6.4.tar.xz拷贝到toolchain目录下并解压:

$ tar xvf gcc-4.6.4.tar.xz

环境变量的添加,修改文件/etc/bash.bashrc添加如下内容

export PATH=$PATH:/home/linux/toolchain/gcc-4.6.4/bin

重启配置文件:

$ source /etc/bash.bashrc

⑤自启动的配置方法

从EMMC加载内核和文件系统(自启动)

a)拷贝测试文件到虚拟机tftp共享文件夹目录下

b)烧写内核镜像到EMMC上

# tftp 41000000 uImage

# movi write kernel 41000000


c)烧写设备树文件到EMMC上

# tftp 41000000 exynos4412-fs4412.dtb

# movi write dtb 41000000


d)烧写文件系统镜像到EMMC上

# tftp 41000000 ramdisk.img

# movi write rootfs 41000000 300000


e)设置启动参数

# setenv bootcmd movi read kernel 41000000\;movi read dtb 42000000\;movi read rootfs 43000000 300000\;bootm 41000000 43000000 42000000

# saveenv

boot 启动,

f)重新启动开发板,u-boot自动加载、执行内核

相关文章
公务员面试题目及答案(2023广西公务员面试题目及答案)
竞猜体育彩票首页(竞猜体育彩票首页as83~me顶)
你灿若星辰全文免费阅读(你灿若星辰全文免费阅读温晴季北辰百度网盘)
我凭本事单身免费观看电视剧主演(我凭本事单身免费观看韩剧网)
中国石拱桥课件(中国石拱桥课件第一PPT)
p2p网贷平台排名(p2p网贷平台排名前10名)