嵌入式Linux开发环境搭建之八---Ubuntu16.04 tftp环境搭建

简介: 嵌入式Linux开发环境搭建之八---Ubuntu16.04 tftp环境搭建

1、Linux下安装tftp

首先利用命令:dpkg -l | grep tftp,查看tftp是否安装,如果没有安装,则可以按下面步骤进行安装。

1.   1.安装相关软件包:tftpd-hpa(服务端),tftp-hpa(客户端),xinetd
2. 
3.   2.sudo apt-get install tftpd tftp xinetd

2、建立tftp服务文件目录

这个目录用于存放宿主机与目标机之间使用tftp时传递的文件,是可以更改为其他地址的,例如/tftpboot,根据自己需求来设定,并且更改其权限。

1. sudo mkdir /tftpboot
2. sudo chmod 777 /tftpboot

3、建立配置文件

在/etc/xinetd.d/下建立一个配置文件tftp,Linux下的tftp服务是由xinetd(还有openbsd-inetd等其它服务)所设定的,默

认情况下tftp是处于关闭状态,所以要修改tftp的配置文件,开启tftp服务。

sudo vi /etc/xinetd/tftp

在文件中输入以下内容:

1. service tftp 
2. { 
3.     socket_type = dgram
4.     protocol= udp
5.     wait = yes
6.     user = root
7.     server= /usr/sbin/in.tftpd
8.     server_args = -s /tftpboot
9.     disable= no
10.     per_source = 11
11.     cps = 100 2
12.     flags= IPv4 
13. }

4、重新启动服务

sudo/etc/init.d/xinetd restart

然后,使用命令

netstat -au | grep tftp

出现

udp        0      0 ubuntu:tftp             0.0.0.0:*

则说明tftp服务已经开启。  

至此tftp服务已经安装完成了,下面可以对其进行一下测试。

5、本机测试tftp服务器的功能

当前目录~下建立一个测试文件,vim~/test_local.c

并键入内容Thisis a file from local!。保存退出。

在/tftpboot目录下建立一个文件,vim/tftpboot/test_server..c

并键入内容Thisis a file from server!。保存退出。

使用命令ifconfig查看本机ip地址,假设是192.168.1.161

改变用户到root,在~目录运行tftp,

1. tftp localhost
2. 
3. tftp>get test_server.c
4. 
5. Received 31 bytes in 0.0 seconds
6. 
7. tftp>quit

通过get命令,可以从/tftpboot下,下载test_server.c文件。这样,就验证了从server端下载文件是成功的。

1. tftp>put test_local
2. 
3. Error code 2: Access violation

试图通过put命令,把当前目录下的test_local.c文件,通过tftp上传到它的服务文件目录/tftpboot。

经查找该错误信息,发现是因为这样的规定:tftp默认只允许下载文件,要上传文件,必须是服务器中已存在同的文

件,且该文件权限允许被覆盖。名在/tftpboot目录中,新建一个test_local.c,并将test_local.c文件设为777。

再次通过tftp上传文件test_local.c

1. tftp>put test_local.c
2. 
3. Sent 30 bytes in 0.0 seconds

这样,就验证了从本地向server端上传文件是成功的。

这样就验证了tftp服务配置的正确性。当文件上传与下载结束后,可以通过quit命令退出。

6、由本机向开发板传输文件

利用网线一端连接到开发板的网络接口,另一端连接到PC机的网络接口,然后开发板的IP等设置好.

使用终端SecuereCRT,进入到开发板中,在任意一个目录下,键入命令:

tftp -g -r test_server.c 192.168.1.101

-g:get表示下载,-r:remove,移动。

现在你的开发板已经下载好文件test_server.c。

目录
相关文章
|
5天前
|
消息中间件 存储 缓存
【嵌入式软件工程师面经】Linux系统编程(线程进程)
【嵌入式软件工程师面经】Linux系统编程(线程进程)
20 1
|
5天前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
19 1
|
5天前
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
8 1
|
5天前
|
存储 缓存 Unix
【嵌入式软件工程师面经】Linux文件IO
【嵌入式软件工程师面经】Linux文件IO
10 1
|
7天前
|
Ubuntu Java Linux
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co
|
7天前
|
Ubuntu Linux Docker
windows 安装docker 安装Ubuntu linux
windows 安装docker 安装Ubuntu linux
|
7月前
|
消息中间件 缓存 Unix
[面试必备]嵌入式Linux内核开发必须了解的三十道题
[面试必备]嵌入式Linux内核开发必须了解的三十道题
|
9月前
|
Linux
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
163 0
|
12月前
|
Linux Go 人机交互
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
|
12月前
|
存储 XML JSON
嵌入式linux之go语言开发(十二)参数配置文件存储模块开发
嵌入式linux之go语言开发(十二)参数配置文件存储模块开发