2013年8月1日 星期四

[Embedded] TFTP 使用舉例

今天因為手殘,結果更新ipcam韌體失敗,一開機就出現了 kernal panic。只好複習一下使用 uboot 更新韌體的方法。以下將今天的作法作一記錄。

TFTP Server (使用 ubuntu v12.04)

1. 用apt-get直接裝TFTP server套件。
sudo apt-get install tftpd-hpa

2. 視需要修改設定值
視需要修改/etc/init/tftpd-hpa.conf, /etc/init.d/tftpd-hpa, /etc/default/tftpd-hpa
可使用 "ps -A|grep tftp" 檢視是否服務有正確啟動
若沒有正確啟動,執行下列命令 sudo service tftpd-hpa restart
3. 將要傳輸的檔案放置到 /var/lib/tftpboot
例如: cp uImage_ipnc_DM365 /var/lib/tftpboot
註:若在Windows環境,可使用這個 tftp server http://tftpd32.jounin.net/


TFTP Client

此處使用 uboot v1.3.4_r466,這邊我以手上的 TI DM365 平台為例說明

1. 一開始在開機時,可以從console 畫面看到 uboot 倒數,此時立刻按下任何鍵,進入 uboot

2. 先設定 TFTP 對應的機器位址,並儲存
setenv serverip 192.168.0.169
setenv ipaddr 192.168.0.10
setenv ethaddr 00:0B:67:00:F0:35
saveenv

3. 接著開始傳送所需要的image,傳送時需指定要擺放的記憶體位置。
tftpboot 0x80700000 uImage_ipnc_DM365
tftpboot 0x82000000 5150.cramfs
tftpboot 0x82000000 mini5150.cramfs
 
4. 將傳送好的 image,燒錄至對應的位置
nand erase 0x200000 0x200000
nand write 0x80700000 0x200000 0x200000
nand write 0x82000000 0x400000 0x400000
 
5. 重新啟動機器
reset


參考資料:
1. 開機流程簡介
2. TFTPD 安裝
3. Windows TFTPD 程式