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
我的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.Busybox中tftp命令的用法
命令格式为:
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协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的配置。
1、安装tftp服务器
需要安装xinetd、tftp和tftp-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配置成功了。
5、tftp使用
复制一个文件到tftp服务器目录,然后在主机启动tftp软件,进行简单测试。
tftp 192.168.1.2
tftp>get <download file>
tftp>put <upload file>
tftp>q
6、tftp命令用法如下
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 0让selinux配置文件生效
8、Busybox中tftp命令的用法
命令格式为:
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