tftp 在ubuntu12.04, busyBox上的配置和使用


tftp服务器最简单安装配置

  1.安装tftp-server

  sudo apt-get install tftpd-hpa

  sudo apt-get install tftp-hpa(如果不需要客户端可以不安装)

  tftp-hpa是客户端

  tftpd-hpa是服务器端

  2.配置TFTP服务器

  sudo vim /etc/default/tftpd-hpa

  将原来的内容改为:

  TFTP_USERNAME=”tftp”

  TFTP_ADDRESS=”0.0.0.0:69″

  TFTP_DIRECTORY=”tftp根目录” #服务器目录,需要设置权限为777,chomd 777

  TFTP_OPTIONS=”-l -c -s”

我的文件内容如下:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_DIRECTORY="/slq/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"
TFTP_OPTIONS="-l -c -s"


服务器目录,需要设置权限为777,chomd 777 /slq/tftpboot

  3.重新启动TFTP服务

  sudo service tftpd-hpa restart

  4.验证一下TFTP是否开启69端口起来了:

$ netstat -nlp |grep 69
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::60769                :::*                    LISTEN      -               
udp        0      0 0.0.0.0:35169           0.0.0.0:*                           -               
udp        0      0 0.0.0.0:69              0.0.0.0:*                           -               
unix  2      [ ACC ]     SEQPACKET  LISTENING     6961     -                   /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     6769     -                   @/com/ubuntu/upstart

5. 验证ubuntu上tftp是否可用


我的ubuntu上IP地址是192.168.0.233  ,在 /slq/tftpboot 目录下放置文件 testget.txt,进入测试目录/slq/test,取得文件testget.txt,将testput.txt放入/slq/tftpboot

ls@ubuntu:/slq/test$ tftp 192.168.0.233
tftp> get testget.txt
tftp> put testput.txt

tftp> q


6.Busyboxtftp命令的用法

命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。

-g 表示下载文件 (get)
-p 
表示上传文件 (put)
-l 
表示本地文件名 (local file)
-r 
表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令

tftp -g  -r embedexpert 192.168.1.2

7. /****Hi3531 16M flash的u-boot配置***/
setenv ipaddr 192.168.4.85;setenv serverip 192.168.4.46;setenv ethaddr 00:16:17:30:C9:17;setenv netmask 255.255.255.0;setenv gatewayip 192.168.4.1


setenv bootcmd 'sf probe 0; sf read 0x82000000 0xC0000 0x4A0000; bootm 0x82000000'
setenv bootcmd 'showlogo; sf probe 0; sf read 0x82000000 0xC0000 0x4A0000; bootm 0x82000000'


setenv bootcmd='showlogo; sf probe 0; sf read 0x82000000 0xc0000 0x4a0000; bootm 0x82000000'


setenv bootargs 'mem=128M console=ttyAMA0,115200 root=1f04 rootfstype=cramfs mtdparts=hi_sfc:384K(uboot),128K(uboot_logo),256K(config),4736K(kernel),9856K(rootfs),1024K(custom)'


setenv bootargs 'mem=128M console=ttyAMA0,115200 root=1f04 rootfstype=jffs2 mtdparts=hi_sfc:384K(uboot),128K(uboot_logo),256K(config),4736K(kernel),9856K(rootfs),1024K(custom)'


手动升级命令:
mw.b 0x82000000 0xff 0x60000; tftp 0x82000000 hi3531/u-boot2.bin; sf probe 0; sf erase 0 0x60000; sf write 0x82000000 0 0x60000


mw.b 0x82000000 0xff 0x4A0000; tftp 0x82000000 hi3531/uImage_3531.jsp; sf probe 0; sf erase 0xc0000 0x4A0000; sf write 0x82000000 0xc0000 $(filesize)


mw.b 0x82000000 0xff 0x500000; tftp 0x82000000 hi3531/rootfs_64k.jffs2; sf probe 0; sf erase 0x560000 0x500000; sf write 0x82000000 0x560000 $(filesize); save;reset


mw.b 0x82000000 0xff 0x500000; tftp 0x82000000 hi3531/rootfs_uclibc_64k.jffs2; sf probe 0; sf erase 0x560000 0x500000; sf write 0x82000000 0x560000 $(filesize); save;reset


图片
mw.b 0x82000000 0xff 0x20000; tftp 0x82000000 logo.jpg; sf probe 0; sf erase 0x60000 0x20000; sf write 0x82000000 0x60000 $(filesize)




调试内核:
setenv bootcmd 'mw.b 0x82000000 0xff 0x4A0000; tftp 0x82000000 hi3531/wh/uImage_3531; bootm 0x82000000'


/***************************************** Hi3531 16M flash的u-boot配置  ***********************************************/


启动后,需要手动使能网口:
ifconfig lo up
ifconfig eth0 hw ether 00:12:24:36:45:58 
ifconfig eth0 192.168.0.117 netmask 255.255.255.0


setenv ipaddr 192.168.4.117; setenv serverip 192.168.4.46; setenv gatewayip 192.168.4.1


mount -t nfs -o nolock 192.168.4.43:/home/vc/hi3531_mount  /mnt/hi3531
mount -t nfs -o nolock 192.168.4.43:/home/vc/sigma_mount  /mnt/sigma
mount -t nfs -o nolock 192.168.0.43:/home/vc/nfs  /mnt/hi3531
mount -t nfs -o nolock 192.168.0.76:/home/flyfish/nfs  /mnt/hi3531
mount -t nfs -o nolock 192.168.0.76:/home/flyfish/nfs  /mnt/ls
mount -t nfs -o nolock 192.168.80.32:/home/flyfish/nfs  /mnt/ls


//备份
混双卡
mw.b 0x81000000 0xff 0x1000000; sf probe 0; sf read 0x81000000 0 0x1000000;tftp 0x81000000 hi3531/hi3531.bin 0x1000000
mw.b 0x81000000 0xff 0x1000000; sf probe 0; sf read 0x81000000 0 0x1000000;tftp 0x81000000 hi3531.bin 0x1000000
mw.b 0x81000000 0xff 0x1000000; sf probe 0; sf read 0x81000000 0 0x1000000;tftp 0x81000000 tongli3531nvr.bin 0x1000000


编码卡
mw.b 0x81000000 0xff 0x1000000; sf probe 0; sf read 0x81000000 0 0x1000000;tftp 0x81000000 hi3531/hi3531_enc.bin 0x1000000


//恢复
mw.b 0x81000000 0xff 0x1000000; tftp 0x81000000 hi3531/hi3531.bin; sf probe 0; sf erase 0 0x1000000; sf write 0x81000000 0 0x1000000
mw.b 0x81000000 0xff 0x1000000; tftp 0x81000000 hi3531.bin; sf probe 0; sf erase 0 0x1000000; sf write 0x81000000 0 0x1000000
mw.b 0x81000000 0xff 0x1000000; tftp 0x81000000 flash_image_16M; sf probe 0; sf erase 0 0x1000000; sf write 0x81000000 0 0x1000000


//logo
mw.b 0x81000000 0xff 0x20000; tftp 0x81000000 hi3531/oem/logo.jpg; sf probe 0; sf erase 0x60000 0x20000; sf write 0x81000000 0x60000 0x20000
mw.b 0x82000000 0xff 0x20000; tftp 0x82000000 logo.jpg;   sf probe 0; sf erase 0x60000 0x20000; sf write 0x82000000 0x60000 0x20000
reset


tftp 0x82000000 custom-x.cramfs.img;sf probe 0;sf write 0x82000000 0xb80000 0x300000
mw.b 0x81000000 0xff 0x20000; tftp 0x81000000 hi3531/logo.jpg; sf probe 0; sf erase 0x60000 0x20000; sf write 0x81000000 0x60000 0x20000
bootcmd 'mw.b 0x82000000 0xff 0x400000; sf probe 0; sf read 0x82000000 0x80000 0x400000; bootm 0x82000000'


别人写的,应该适合 redhat系列



TFTP协议简介
TFTP
是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linuxtftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。

1、安装tftp服务器
需要安装xinetdtftptftp-server 3个软件
1
)如果能上网,通过yum安装:
 sudo yum install xinetd
 sudo yum install tftp
 sudo yum install tftp-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 -ivh tftp-server-0.48-3.fc9.i386.rpm

2、配置tftp服务器
修改/etc/xinetd.d/tftp文件,将其中的disable=yes改为disable=no
主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:
service tftp
{     socket_type            =dgram
       protocol                  =udp
       wait                        =yes
       user                        =root
       server                     =/usr/sbin/in.tftpd
       server_args             =-s  /home/mike/tftpboot -c
       disable                    =no
       per_source             =11
       cps                         =100 2
       flags                       =IPv4
}

说明:修改项server_args= -s     <path>    -c,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot-c指定了可以创建文件。

3、启动tftp服务器并关闭防火墙
/etc/init.d/iptables stop        //关闭防火墙
sudo /sbin/service xinetd start 
 service xinetd restart
/etc/init.d/xinetd start
看到启动[OK]就可以了

4、查看tftp服务是否开启
netstat -a | grep tftp
显示结果为
udp 0 0 *:tftp *:*
表明服务已经开启,就表明tftp配置成功了。

5tftp使用

复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。
tftp 192.168.1.2
tftp>get <download file> 

tftp>put <upload file>
tftp>q

6tftp命令用法如下
 tftp     your-ip-address

【进入TFTP操作】
connect
:连接到远程tftp服务器
mode
:文件传输模式
put
:上传文件
get
:下载文件
quit
:退出
verbose
:显示详细的处理信息
tarce
:显示包路径
status
:显示当前状态信息
binary
:二进制传输模式
ascii
ascii 传送模式
rexmt
:设置包传输的超时时间
timeout
:设置重传的超时时间
help
:帮助信息
:帮助信息

7、如果老是出现“AVC Denial, click icon to view”的错误,并不能传输文件,需要作如下修改
修改/etc/sysconfig/selinux,SELINUX设定为disable
使用命令setenforce 0selinux配置文件生效

8Busyboxtftp命令的用法
命令格式为:

tftp [option] ... host [port]

如果要下载或上传文件的话是一定要用这些option的。成都明诚科技。

-g 表示下载文件 (get)
-p 
表示上传文件 (put)
-l 
表示本地文件名 (local file)
-r 
表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令

tftp -g  -r embedexpert 192.168.1.2


你可能感兴趣的:(tftp 在ubuntu12.04, busyBox上的配置和使用)