在嵌入式Linux開發過程中經常需要從電腦下載引導程序U-Boot,如果每次都使用燒寫到flash或者SD卡的方式,那是比較低效率的開發方式,導致公司沒有競爭力,開發出來的產品也沒有競爭力,在市場上就會落後挨打了。
這裡就來介紹tftp方式從linux主機下載文件到開發板裡運行,因此需要在主機Linux系統裡安裝tftp服務器。
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
在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是需要下載的文件名稱。