OMAPL138和Ubuntu1004的tftp开发环境搭建.docx

上传人:b****5 文档编号:8706318 上传时间:2023-02-01 格式:DOCX 页数:18 大小:689.66KB
下载 相关 举报
OMAPL138和Ubuntu1004的tftp开发环境搭建.docx_第1页
第1页 / 共18页
OMAPL138和Ubuntu1004的tftp开发环境搭建.docx_第2页
第2页 / 共18页
OMAPL138和Ubuntu1004的tftp开发环境搭建.docx_第3页
第3页 / 共18页
OMAPL138和Ubuntu1004的tftp开发环境搭建.docx_第4页
第4页 / 共18页
OMAPL138和Ubuntu1004的tftp开发环境搭建.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

OMAPL138和Ubuntu1004的tftp开发环境搭建.docx

《OMAPL138和Ubuntu1004的tftp开发环境搭建.docx》由会员分享,可在线阅读,更多相关《OMAPL138和Ubuntu1004的tftp开发环境搭建.docx(18页珍藏版)》请在冰豆网上搜索。

OMAPL138和Ubuntu1004的tftp开发环境搭建.docx

OMAPL138和Ubuntu1004的tftp开发环境搭建

目录

1tftp简介2

2Linux服务器端tftp-server的配置2

2.1安装tftp所需的软件2

2.2配置相关服务文件3

2.3重新启动服务6

2.4本地tftp文件传输功能测试7

3开发板文件系统和虚拟机之间tftp文件传输功能实现9

3.1查看PC机Windows主机的IP地址10

3.2修改开发板的IP地址10

3.3设置Ubuntu虚拟机IP地址12

3.4Windos主机、开发板、虚拟机三者之间ping命令测试15

3.5开发板下载虚拟机tftp服务器文件19

4tftp下载内核到内存20

4.1在U-Boot中设置加载文件系统参数20

4.2在U-Boot中设置网络环境变量21

4.3在U-Boot中通过tftp下载内核文件到内存22

1tftp简介

简单文件传输协议或称小型文件传输协议(英文:

TrivialFileTransferProtocol,缩写tftp),是一种简化的文件传输协议,于1980年定义。

tftp是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。

嵌入式Linux的tftp最常用来完成开发板和开发环境Linux系统之间的的文件传输功能,避免了频繁的U盘拷贝的过程。

Linux下的tftp开发环境建立包括两个方面:

一是Linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。

本文将介绍基于Ubuntu10.04发行版的Linux服务器端tftp-server的配置和在主机和目标机之间的tftp文件传输方法。

2Linux服务器端tftp-server的配置

2.1安装tftp所需的软件

安装软件前务必保证虚拟机可以上网。

虚拟机要访问网络必须在“VirtualMachinesetting”菜单下选择NetworkAdapter->Networkconnection->NAT:

Usedtosharethehost'sIPaddress,设置如下图:

图1

需要安装tftp-hpa和tftpd-hpa(前者是客户端,后者是服务程序)以及xinetd。

在终端下输入如下命令安装tftp-hpa、tftpd-hpa和xinetd:

Host#sudoapt-getinstalltftp-hpa

Host#sudoapt-getinstalltftpd-hpa

Host#sudoapt-getinstallxinetd 

2.2配置相关服务文件

进入根目录下的etc文件夹(cd/etc/),首先看目录中有没有一个xinetd.conf文件,如果没有则新建一个,有的话运行“catxinetd.conf”查看其内容,看是否与下面的一致,若不一致则运行“sudogeditxinetd.conf”修改为相同,内容如下图:

图2

打开配置文件tftpd-hpa命令如下:

Host#sudogedit/etc/default/tftpd-hpa

将内容修改成:

#/etc/default/tftpd-hpa 

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/tl/tftpboot"

TFTP_ADDRESS="0.0.0.0:

69"

TFTP_OPTIONS="-l-c-s" 

修改完成后如下图:

图3

TFTP_DIRECTORY="/home/tl/tftpboot":

表示tftp服务器的工作目录。

保存退出,然后执行命令“mkdir–p/home/tl/tftpboot”新建tftp工作目录,并修改权限为777,命令为“sudochmod777/home/tl/tftpboot”。

777是最松的权限,这样不仅可以允许别的主机或者目标机下载同时允许上传文件。

然后进入/etc下面的xinetd.d文件夹(cd/etc/xinetd.d),查看是否有一个tftp文件,如果没有就运行“sudogedittftp”新建一个并输入以下内容,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:

servicetftp

{

socket_type=dgram

wait=yes

disable=no

user=root

protocol=udp

server=/usr/sbin/in.tftpd

server_args=-s/home/tl/tftpboot-c

#log_on_success+=PIDHOSTDURATION

#log_on_failure+=HOST

per_source=11

cps=1002

flags=IPv4

}

修改完成如下图:

图4

其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。

然后保存文件,并退出编辑。

2.3重新启动服务

执行“sudoservicetftpd-hparestart”重启tftpd-hpa,,提示如下图:

图5

执行“sudo/etc/init.d/xinetdreload”重新加载一下xinetd进程,提示如下图:

图6

执行“sudo/etc/init.d/xinetdrestart”重启xinetd服务,提示如下图:

图7

每次修改完配置文件后,都需要重新启动一下服务。

2.4本地tftp文件传输功能测试

首先在/home/tl/tftpboot中新建一个文件test,在其中随便输入内容,例如内容如下图:

图8

然后进入一个不是“/home/tl/tftpboot”的目录。

再在终端中输入“sudotftplocalhost”,进入tftp命令符下,如下图:

图9

可以在其中输入help查看命令和命令的作用,提示如下:

图10

接着输入“gettest”再按回车,如果没有任何提示,就说明传输成功了。

然后输入q退出tftp命令行,如下图:

图11

在当前目录下运行“ls”就可以看到一个test文件,可以使用“cattest”命令查看其内容,可以发现是与开始新建的那个test的内容是一致的。

图12

修改test文件后,可以在tftp命令中输入“puttest”,把修改过的test文件上传到服务器文件夹中。

3开发板文件系统和虚拟机之间tftp文件传输功能实现

开发板和Windows主机先通过直连网线插到路由器,这样Winsows主机、虚拟机、开发板就相当于在同一个局域网了。

若没有路由器,也可以通过交叉网线将开发板和Windows主机互联。

3.1查看PC机Windows主机的IP地址

在Windows主机<开始>菜单栏的最下方输入“cmd”,然后按回车进入dos操作界面,再输入执行"ipconfig"查看Windows主机的IP地址,如下图所示:

图13

可以看到“本地连接”IPv4字段是:

192.168.0.2,这是主机的IP地址,子网掩码是:

255.255.255.0,不同主机的IP是不一样的。

3.2修改开发板的IP地址

开发板上电,进入开发板系统后设置IP的前三个字段和Windows主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。

只有前三个在字段和子网掩码相同,Windows主机、Ubuntu虚拟机、开发板三者之间才能互相ping通。

例如,针对Windows主机的IP:

192.168.0.2,子网掩码:

255.255.255.0,可以设置开发板的IP地址为:

192.168.0.8,子网掩码:

255.255.255.0,设置命令如下:

Target#ifconfigeth0192.168.0.8netmask255.255.255.0

可以通过ifconfig命令查看修改后的IP和子网掩码等信息,操作如下图:

图14

一种更简便的方法是使用“udhcpc”命令让开发板自动获取路由器给它分配的IP,如下图所示:

图15

3.3设置Ubuntu虚拟机IP地址

在设置之前先将虚拟机和主机的网络连接方式设置为桥接,点击虚拟机"VM->Setting",弹出以下设置界面:

图16

点击“NetworkAdapter->NetworkConnection->Bridged”选项,如下图所示:

图17

点击OK,完成设置。

进入虚拟机Ubuntu系统后设置IP的前三个字段和Windows主机的一样,最后一个字段务必不能相同,同时设置子网掩码为一致。

只有前三个在字段和子网掩码相同,Windows主机、Ubuntu虚拟机、开发板三者之间才能互相ping通。

例如,针对Windows的IP:

192.168.0.2,子网掩码:

255.255.255.0,可以设置虚拟机的的IP地址为:

192.168.0.5,子网掩码:

255.255.255.0。

执行以下命令配置IP:

Host#sudoifconfigeth0192.168.0.5netmask255.255.255.0

通过ifconfig命令查看修改后的IP和子网掩码等信息,结果如下图:

图18

3.4Windos主机、开发板、虚拟机三者之间ping命令测试

Ubuntu虚拟机ping开发板和Windows主机

在虚拟机分别执行以下两个命令,Linux系统的ping命令不会像Windows一样自动停止显示,需要执行“Ctrl+C”命令才能停止。

Host#ping192.168.0.8

Host#ping192.168.0.2

成功ping通提示如下图:

图19

备注:

(1)假如虚拟机出现“From*.*.*.*icmp_seq=1DestinationHostUnreachable”的错误提示,说明了没有成功ping通,请检查网线和地址的正确性。

(2)假如通过

(1)步骤还是存在错误,请运行“ifconfig”命令查看ip,有些用户会提示如下图:

图20

可以看到网络名字不是eth0而是eth2,这个是由于用户手动设置了网络名字的原因,MAC地址被缓存了,配置网络的时候可能会出现“eth0:

ERRORwhilegettinginterfaceflags:

Nosuchdevice。

Networkservicestart”。

解决办法:

在虚拟机下执行命令“sudorm/etc/udev/rules.d/70-persistent-net.rules”,然后关闭虚拟机,重启Windows系统,再开启虚拟机重新设置虚拟机IP即可。

(3)如果虚拟机里能ping同本机,而本机却ping不通虚拟机,或者虚拟机不能ping通本机,可能有如下原因:

虚拟机防火墙禁ping,请关闭虚拟机防火墙重试;桥接设置的ip有冲突或者是虚拟机桥接服务不正常。

Windows主机pingUbuntu虚拟机和开发板

将开发板和主机用网线连接起来,在Windows主机<开始>菜单栏的最下方输入“cmd”,然后按回车进入dos操作界面,分别执行以下两个命令:

ping192.168.0.5(请以实际主机IP作参考)

ping192.168.0.8(请以实际主机IP作参考)

成功ping通提示如下图:

图21

开发板pingUbuntu虚拟机和Windows主机

在开发板分别执行以下两个命令,Linux系统的ping命令不会像Windows一样自动停止显示,需要执行“Ctrl+C”命令才能停止。

Target#ping192.168.0.5

Target#ping192.168.0.2

成功ping通提示如下图:

图22

3.5开发板下载虚拟机tftp服务器文件

在开发板/home/tl目录下执行以下命令:

Target#tftp-g-rtest192.168.0.5

-g:

代表get,下载文件

-r:

代表remote,远程服务器

test:

远程服务器tftpboot目录下的文件名字

192.168.0.5:

远程服务器的ip地址,这里指Ubuntu虚拟机

执行命令后可以在当前目录看到test文件,使用“cattest”命令查看其内容是否和服务器tftpboot目录下的test文件内容一样,结果如下图所示:

图23

4tftp下载内核到内存

通过tftp在U-Boot中下载内核文件,可以避免频繁的U盘拷贝和FLASH烧写,特别是用于测试的内核文件。

4.1在U-Boot中设置加载文件系统参数

在下载内核前,先设置加载文件系统的参数,决定文件系统的加载方式,这样就在下载内核后可以直接启动文件系统。

(1)SD卡启动文件系统设置

先插上已经正常使用的SD卡,在U-Boot执行以下命令:

U-Boot>setenvbootargsconsole=ttyS2,115200n8root=/dev/mmcblk0p2rwrootfstype=ext3mem=128M

图24

U-Boot>saveenv

图25

(2)NFS起根文件系统设置

此设置见《基于Ubuntu10.04的nfs开发环境搭建》的“nfs起根文件系统”章节。

4.2在U-Boot中设置网络环境变量

开发板上电后,按任意键进入U-Boot命令行,输入以下命令设置虚拟机TFTP服务器的IP地址变量serverip:

U-Boot>setenvserverip192.168.0.5

输入以下命令设置开发板的IP地址变量ipaddr和ethaddr:

U-Boot>setenvipaddr192.168.0.8

U-Boot>setenvethaddr00:

01:

02:

03:

04:

05

假如变量ethaddr已经设置过,重新设置可能会提示无法覆盖,无需理会,如下图所示:

图26

然后再执行以下命令保存环境变量:

U-Boot>saveenv

保存后重新上电就不用再次设置了,提示如下图:

图27

执行以下命令测试网络的连通性:

U-Boot>ping192.168.0.5

若提示“host*.*.*.*isalive”说明网络畅通,如下图所示:

图28

4.3在U-Boot中通过tftp下载内核文件到内存

保证有测内核文件uImage在虚拟机的tftp服务器目录“/home/tl/tftpboot”,如下图所示:

图29

在U-Boot中输入以下命令下载内核文件:

U-Boot>tftpc0700000uImage

c0700000:

指定的运行内存地址

uImage:

tftp服务器中的内核镜像

成功下载图示如下:

图30

执行“bootmc0700000”命令运行刚才下载的内核文件,结果如下图:

图31

需要上电自动通过tftp下载uImage的客户,可以在U-Boot里面设置bootcmd参数,设置命令如下:

U-Boot>setenvbootcmd'tftpc0700000uImage;bootmc0700000'

U-Boot>saveenv

操作如下图所示:

图32

重启后就自动进入SD卡或者nfs服务器的文件系统,可以通过前面提到的U-Boot参数设置决定。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1