在嵌入式linux開發過程中經常需要從電腦下載引導程式uboot,如果每次都使用燒寫到flash或者SD卡的方式,那是比較低效率的開發方式,導致公司沒有競爭力,開發出來的產品也沒有競爭力,在市場上就會落後挨打了。
這裡就來介紹tftp方式從linux主機下載檔案到開發板裡運行,因此需要在主機linux系統裡安裝tftp伺服器。
在Ubuntu中安裝tftp伺服器的方法如下:
<!--[if !supportLists]-->1) <!--[endif]-->下載並安裝程式
通過軟體管理可以安裝相應的程式tftp/tftpd,tftp是用戶端程式,tftpd是伺服器程式。在ubuntu系統的終端裡輸入下面的命令:
sudo apt-get install tftp tftpd
通過上面的命令,就可以安裝相應的軟體。
<!--[if !supportLists]-->2) <!--[endif]-->建立tftp伺服器目錄
建立一個tftpClient Access Server的目錄,如下:
先進入到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
<!--[if !supportLists]-->3) <!--[endif]-->重新啟動服務
sudo /etc/init.d/openbsd-inetd restart
sudo in.tftpd –l /tftpboot
<!--[if !supportLists]-->4) <!--[endif]-->測試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是需要下載的檔案名稱