在u-boot上运行“run netboot”下载程序时,也就是从电脑的tftp服务器往ARM开发板下载程序时,出现了”TFTP error: 'Access violation' (2)”。
为了确认是tftp服务器的配置问题还是ARM开发板的问题。先运行了一下命令:
$ tftp 127.0.0.1
>get test
在tftp文件夹下有test文件的情况下,仍然出现”TFTP error: 'Access violation' (2)”,确认是tftp服务器配置问题。
$ service tftp-hpa restart
重启tftp服务,问题依旧。
上网查找资料后,怀疑是自己设置的tftp文件夹“/tftpboot”或者内部下载文件的权限问题:
$ sudo chmod 777 /tftpboot
$ sudo chmod 777 /tftpboot/test
但是问题依旧。感觉就比较棘手了。
于是重新上网查询,发现tftp的安装方式有很多种,而且会用到一个网络管理的包 xinetd,但如果我运行:
$ sudo apt-get install xinetd
显示的是没有这个包。没有办法只得另辟蹊径,安装了另一个包:
<pre name="code" class="html">$ sudo apt-get install netkit-inetd
以及其依赖包
$ sudo apt-get install openbsd-inetd
检查"/etc/inetd.conf"文件后,发现应该设置tftp目录为"/srv/tftp",之后重启:
$ sudo /etc/init.d/openbsd-inetd restart
OK,问题解决,之前可能是这个网络管理服务根本没运行导致找不到tftp文件夹的问题吧。
参考文章:
http://blog.csdn.net/CommShare/article/details/6212825
http://blog.163.com/denny_shen/blog/static/188466170201161004932821/
http://blog.csdn.net/david_xtd/article/details/7881347