本次是参考 Valiantwinds 大侠的基础上针对OK6410修改了开发板和虚拟机之间如何建立起tftp连接的描述.
一、Ubuntu 11.10搭建tftp服务器
(1) $ sudo apt-get install tftpd tftp openbsd-inetd
(2) $ sudo gedit /etc/inetd.conf
在这个配置文件里面找到下面的位置:
#:BOOT: TFTP service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."
#tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
#我把上面的默认的配置文件用井号注释掉了,自己配置了tftp的主工作目录为/tftp
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftp
(3)创建TFTP服务器的文件目录。
$cd /
$sudo mkdir tftp
$sudo chmod 777 /tftp
如果有需要下载的文件这时可以拷贝进去,也用chmod 777命令把所有权限打开。
(4)启动(或重启)xinetd服务
$sudo /etc/init.d/openbsd-inetd restart
(5)查看69端口是否有打开,使用下面命令
netstat -an | more
打印出的东西中找到如下即可:
udp 0 0 0.0.0.0:69 0.0.0.0:*
(6)在本机测试一下:
a.在/tftp目下新建一个文件,并写入数据:
@linuxidc:/tftp$ echo helloworld > zhang.txt
@linuxidc:/tftp$ cat zhang.txt
helloworld
b. 到/home目录下
@linuxidc:/home$ sudo tftp 221.204.110.99[注:这是本机的IP地址]
[sudo] password for yishugao:
tftp> get zhang.txt
Received 12 bytes in 0.0 seconds
tftp> quit
@linuxidc:/home$ cat zhang.txt
helloworld
@linuxidc:/home$
行了,本地测试成功!
二、在开发板上使用tftp
首先,保证虚拟机的网络是Bridged模式,并且,本地连接属性中 VMware Bridge Protocol 打钩
使用命令 "tftp c0800000 Helloword"
Helloword 是你虚拟机中 tftp 目录里的一个文件,记住最好把所有文件的权限改为 777
下面是tftp传输成功时,串口上的打印信息
SMDK6410 # tftp c0800000 Helloword
Found DM9000 ID:90000a46 at address 18000300 !
DM9000 work in 16 bus width
bd->bi_entaddr: 00:40:5c:26:0a:5b
[eth_init]MAC:0:40:5c:26:a:5b:
TFTP from server 192.168.0.101; our IP address is 192.168.0.232
Filename 'Helloword'.
Load address: 0xc0800000
Loading: T T ####
done
Bytes transferred = 19774 (4d3e hex)
SMDK6410 #