TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。
 
    xinetd(eXtended InterNET services daemon)是新一代的网络守护进程服务程序,又叫超级INTERNET服务器,经常用于管理多种轻量型INTERNET服务,xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。
 
 
 
安装tftp服务器:
 
需要安装xinetd、tftp、tftp-server3软件
 
1、如果能上网,通过yum安装:
 
sudo yum install xinetd
 
sudo yum install tftp
 
sudo yum install tptp-server
 
2、如果不能上网,可以直接安装提供的rpm包:
 
sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
 
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
 
sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm
 
 
 
配置tftp服务器:
 
修改/etc/xinetd.d/tftp文件
 
disable=yes 改为  disable=no
 
server_args=-s /var/lib/tftpboot  改为  server_args=-s /tftpboot/ -c
 
 
 
修改/etc/sysconfig/selinux文件
 
SELINUX=disabled   (系统默认是enforcing)要改成disabled
 
 
 
chmod 777 /tftpboot  修改/tftpboot文件夹的权限
 
 
 
启动  service xinetd restart
 
 
 
查看tftp服务是否开启:
 
netstat -a | grep tftp
 
显示结果为  udp    0   0 *:tftp     *:*  表示服务已经开启,tftp配置成功
 
 
 
把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件复制到目录/tftpboot 下
 
 
 
在目录/home/x(目录名)下:
 
启动tftp服务器 
 
sudo in.tftpd -l /tftpboot
 
tftp 192.168.0.26(本机的IP地址)
 
tftp>get a(文件名)  在服务器上下载文件
 
tftp>put a(文件名)  上传文件到服务器上
 
tftp>q             退出
 
 
 
启动tftp服务器:
 
service tftpd-hpa stop      停止tftp服务器
 
service tftpd-hpa start     开启tftp服务器
 
service tftpd-hpa stutus    查看tftp运行状态
 
service tftpd-hpa restart   重启tftp服务器
 
 
 
(注意:文件传输后文件的权限会发生变化)
 
 
 
进入TFTP操作:
 
connect:连接到远程tftp服务器
 
mode:文件传输模式
 
put:上传文件
 
get:下载文件
 
quit:退出
 
verbose:显示详细的处理信息
 
tarce:显示包路径
 
status:显示当前状态信息
 
binary:二进制传输模式
 
ascii:ascii 传送模式
 
rexmt:设置包传输的超时时间
 
timeout:设置重传的超时时间
 
help:帮助信息
 
? :帮助信息
 
 
 
-g 表示下载文件 (get)
 
-p 表示上传文件 (put)
 
-l 表示本地文件名 (local file)
 
-r 表示远程主机的文件名 (remote file)
 
例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令:
 
tftp -g -r embedexpert 192.168.1.2
 
 
 
出现的一些问题及原因(解决方法):
 
1、Transfer time out.     
 
  tftpd服务没有启动
 
2、Error code 0:Permission denied
 
    可能是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现在要关掉它。
 
    修改文件/etc/sysconfig/selinux,设定SELINUX=disabled,然后重启电脑即可
 
  或者  执行命令system-config-securitylevel打开“安全级别配置”对话框,将SELinux(S)选项中“强制”改为“允许”
 
3、Error code 1:File not found
 
    指定的文件夹不存在;或tftpd启动参数中没有指定-c选项,允许上传文件
 
4、Error code 2:Only absolute filenames allowed
 
  /etc/xinetd.d/tftpd文件的设置没设好,只需要将server_args=  改为你自己设定   的服务器文件夹就行了
 
5、Error code 2:Access violation

Linux下TFTP服务的安装、配置和操作的更多相关文章

  1. Linux下apache+phppgadmin+postgresql安装配置

    Linux下apache+phppgadmin+postgresql安装配置 操作系统:CentOS 安装包:httpd(首选yum), php(包括php以及php-pgsql,php-mbstri ...

  2. memcached的安装和linux下memcached服务自启动的配置

    关于memcached在windows和linux环境的安装,以及在Linux系统系memcached服务自启动的配置,可以参考我在csdn上下的博客, windows和linux环境下memcach ...

  3. Linux下xampp集成环境安装配置方法 、部署bugfree及部署禅道

    XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包.XAMPP 是一个易于安装且包含 MySQL.PHP 和 Perl 的 Apache 发行版.XAMPP 的确非 ...

  4. linux下xampp集成包安装配置方法

    1.查看你linux系统的位数,是32位的还是64位的.使用uname -a命令查看. 显示有 x86_64则说明你是64位内核, 跑的是64位的系统. i386, i686说明你是32位的内核, 跑 ...

  5. Linux下 tftp 服务器的安装与使用

    安装步骤: 1. 安装xinetd, tftp-hpa tftpd-hpa a.  sudo apt-get install xinetd b.  sudo apt-get install tftp- ...

  6. linux下Django Nginx+uwsgi 安装配置

    原文链接 在前面的章节中我们使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, ...

  7. Windows和Linux下apache-artemis-2.10.0安装配置

     window下安装配置 一.官网下载 http://activemq.apache.org/artemis/download.html 二.百度网盘下载 链接:https://pan.baidu.c ...

  8. linux下tigervnc-servere服务的安装与使用

    关于tigervnc-servere的安装,可以直接使用本地yum源进行安装. [root@ ~]# yum install tigervnc-server -y 其中tigervnc的主要配置文件位 ...

  9. Python 虚拟环境 | Mac/Linux下如何避坑安装配置Virtualenv

    1.为什么要使用虚拟环境 在Python中,不同的应用可能需要用到不同版本的第三方包,而这些第三方包被统一存放到目录site-packages中,不同版本的包容易相互覆盖,如安装Django 2.1时 ...

随机推荐

  1. C#设计模式(6)——原型模式(Prototype Pattern)(转)

    一.引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在 ...

  2. 缓存淘汰算法---LRU转

    1. LRU1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. ...

  3. Android项目开发第二天,关于GitHub

    一. 今天在网上学习了如何使用GitHub,了解了GitHub是干什么的. 作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户.随着越来越多的应用程序转移到了云上,Github已经 ...

  4. CSS——对position定位和margin-top的理解

    一.常见定位方式 1.positon:absolute (脱离文档流) 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位 (这里的父元素是指定位方式为relative和abso ...

  5. *(volatile int *)解读

    #def ine reg_gpio_ctrl *(volatile int *)(ToVirtual(GPIO_REG_CTRL)) #define A (*(volatile unsigned lo ...

  6. Yii1自定义 CGridView 中的操作按钮中 CButtonColumn 选项

    Yii可以使用CButtonColumn自定义按钮及列样式. 效果展示 <?php $this->widget('zii.widgets.grid.CGridView', array( ' ...

  7. WIN10下,JAVA安装及环境变量配置(cmd可以运行java,却不能运行javac)

    1.安装JDK 选择安装目录 安装过程中会出现两次 安装提示 . 第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中.(不能都安装在java文件夹的根 ...

  8. ubuntu kylin18 安装NVIDIA驱动

    这几天装系统快被折腾死了,事情的起因是这样的. 这件事情发生之前那两天一直在调试oled屏幕.我自己做转接板,1.3寸30针fpc的接口. 由于没有使用fpc专用转接座子,导致焊接特别困难,索性最后牺 ...

  9. 01:golang开发环境

    1.1 go环境安装 1.go下载安装 官方:https://golang.org/dl 国内: https://golang.google.cn/dl/ https://www.golangtc.c ...

  10. tp剩余未验证内容-8

    模型类的自动验证? 分为自动验证, 和 动态验证(手工验证), 前者的验证规则是定义在模型类中的, 所以要自己创建 扩展的/继承的模型类, 同时用 D方法实例化模型类 而动态验证是 先调用 valid ...