在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