2017年10月11日 星期三

Troubleshooting | 問題排除 TFTP 沒反應

發生狀況:
想要從 U-boot 透過 tftpboot 來上傳韌體到板子上,先在 PC 上執行 TFTPD32 做為 TFTP server,然後在 U-boot 下執行 tftpboot 指令,但是卻不成功。

偵錯步驟:
1. 確認板子有送出 TFTP 的封包給 PC,執行 PC 上的 Wireshark  抓取封包,在 display filter 中輸入 "tftp" 來過濾出 TFTP 的封包,有看到板子送出的 TFTP 封包,但是 PC 上的 TFTPD32 並沒有回應。


















2. 執行 PC 上的命令提示字元,輸入 "netstat -p UDP -ano" 可以看到 PC 開啟的 UDP port 有哪些,找 Port 為 69 的那行,因為有用 -o 參數,所以最後一個數字是開啟此 Port 程式的 PID。

















3. 啟動 PC 上的工作管理員,選"處理程序"頁籤,再選下拉選單 "檢視" -> "選取欄位",勾選 PID (處理程序識別碼) 後按確定,可以看到新增的欄位 PID,用上一步驟找到的 PID (例: 1068) 去搜尋,找到後確認此 PID 是否對應到 TFTPD32 這個程式。




























































































4. 發現此 PID 竟然對應到另一個 TFTP server 程式,原來是在 TFTPD32 執行前已經有另一個 TFTP server 在執行,UDP Port 69 已經被佔用,找到問題。

備註
1. Wireshark: https://www.wireshark.org/download.html
2. TFTP port number: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

沒有留言:

張貼留言