在嵌入式linux開發過程中經常需要從電腦下載引導程序uboot,如果每次都使用燒寫到flash或者SD卡的方式,那是比較低效率的開發方式,導致公司沒有競爭力,開發出來的產品也沒有競爭力,在市場上就會落後捱打了。
這裏就來介紹tftp方式從linux主機下載文件到開發板裏運行,因此需要在主機linux系統裏安裝tftp服務器。
在Ubuntu中安裝tftp服務器的方法如下:
1) 下載並安裝程序
通過軟件管理可以安裝相應的程序tftp/tftpd,tftp是客戶端程序,tftpd是服務器程序。在ubuntu系統的終端裏輸入下面的命令:
sudo apt-get install tftp tftpd
通過上面的命令,就可以安裝相應的軟件。
2) 建立tftp服務器目錄
建立一個tftp客戶端訪問服務器的目錄,如下:
先進入到ubuntu系統的根目錄,然後再建立一個目錄,並修改目錄屬性;
cd /
sudo mkdir tftpboot
sudo chmod 777 tftpboot
接着修改tftp服務器配置的目錄:
sudo gedit /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
3) 重新啓動服務
sudo /etc/init.d/openbsd-inetd restart
sudo in.tftpd –l /tftpboot
4) 測試tftp服務器
在/tftpboot目錄下面建立一個文件:
cd /tftpboot
touch testfile
在進入另外一個目錄裏面:
tftp 127.0.0.1
tftp>get testfile
如果在這個目錄下面看到testfile文件,就說明安裝服務器,否則就是安裝失敗了。
在開發板裏設置uboot的tftp下載參數,先來設置開發板上的IP地址:
setenv ipaddr 192.168.1.20
這裏設置IP地址爲192.168.1.20。
設置tftp服務器的IP地址:
setenv serverip 192.168.1.103
這裏的IP地址192.168.1.103是電腦ubuntu的IP地址,也就是tftp服務所在的IP地址。
在開發板裏運行uboot之後,就可以輸入下面的命令來測試是否可以從tftp服務器里加載linux內核文件zImage,當然是需要把這個文件放到/tftpboot目錄下面。如下命令:
tftp c0008000 zImage
這裏c0008000是下載開發板裏內存起始地址,zImage是需要下載的文件名稱。