我是这样做的,请大侠们帮看看我哪里做的不对:
1,u-boot的环境变量如下:
QQ2440 # printenv
bootargs=root=/dev/nfs rw nfsroot=172.16.1.248:/home/yf/project nfsaddrs=172.16.
1.255:172.16.1.248:172.16.1.1:255.255.255.0 console=ttySAC0,115200 mem=64M
bootcmd=tftp;go 0x30008000
bootdelay=3
baudrate=115200
ethaddr=08:00:3e:26:0a:5b
ipaddr=192.168.1.17
serverip=192.168.1.11
netmask=255.255.255.0
bootfile="zImage"
stdin=serial
stdout=serial
stderr=serial
Environment size: 359/65532 bytes
2,板子的ip是192.168.1.17,设置虚拟机上的linux的ip是192.168.1.11。 板子上的uboot已经可以ping通虚拟机上的linux了。
3,在虚拟机上的linux上开通tftp服务:
(1),在虚拟机上安装linux的时候,我选择的是完全安装,所以etc/xinetd.d/tftp文件已经存在了。
(2),修改etc/xinetd.d/tftp文件如下:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = yes
per_source = 11
cps = 100 2
flags = IPv4
}
(3),修改/tftpboot文件夹的权限:chmod o+w /tftpboot
(4),在/tftpboot目录下创建一个空的zImage文件(只是想实验这个文件能不能下载到板子上,所以我只在这里放了
个空zImage):touch zImage
(5)启动tftp-server: #/sbin/service xinetd restart
4,在开发板连接的超级终端上输入tftp命令:
QQ2440 # tftp
5,超级终端上打印出来的出错信息如下:
TFTP from server 192.168.1.11; our IP address is 192.168.1.17
Filename 'zImage'.
Load address: 0x30008000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
6,上面就是我操作的详细步骤,为什么连接不上虚拟机linux上的tftp服务器呢?请大侠们指教!不胜感激!!!
显示TTT说明是没有连接上。
进虚拟机的驱动,查看两个服务
① iptables服务,这个是防火墙要关闭。
② network服务,检查是否已开启。根据你说的能够ping通看来是已经开启了。
如果还不行的话,你可以看看你的虚拟机Linux上是否安装了SELinux,安了的话把这个也关了。
关闭SELinux的方法可以在网上搜一下,有的是。
可能根据Linux的种类SELinux的设置文件存放地点有点差异。
引用: 引用 1 楼 zhaozhe83210 的回复:
显示TTT说明是没有连接上。
进虚拟机的驱动,查看两个服务
① iptables服务,这个是防火墙要关闭。
② network服务,检查是否已开启。根据你说的能够ping通看来是已经开启了。
如果还不行的话,你可以看看你的虚拟机Linux上是否安装了SELinux,安了的话把这个也关了。
关闭SELinux的方法可以在网上搜一下,有的是。
可能根据Linux的种类SELinux的设置文件存放地点有点差异。
不好意思写错了,是 进虚拟机Linux的服务管理,查看两个服务。
老大,感谢!
原因找到了!它就是:我把disable = yes 这一句注释掉之后,忘记保存了!