主機端編譯的Linux內核影像必須有至少一種方式下載到目標板上執行。通常是目標板的引導程序負責把主機端的影像文件下載到內存中。根據不同的連接方式,可以有多種文件傳輸方式,每一種方式都需要相應的傳輸軟件和協議。
在linux開發中最常用的傳輸方式為網絡傳輸方式,及tftp。TFTP協議是一種簡單的網絡傳輸協議,是基于UDP傳輸的,沒有傳輸控制,所以對于大文件的傳輸是不可靠的。不過正好適合目標板的引導程序,因為協議簡單,功能容易實現。當然,使用TFTP傳輸之前,需要驅動目標板以太網接口并且配置IP地址。
TFTP服務配置的詳細過程:
<1> 檢查是否安裝tftp server
$ sudo dpkg -s tftpd-hpa
如果已安裝會顯示:
Status: install ok installed
<2> 如果未安裝,則安裝tftp-server
$ sudo apt-get install tftpd-hpa
<3> 修改tftp服務器配置文件(可選)
tftp 默認的配置文件是/etc/default/tftpd-hpa 可通過它配置tftp服務器,如指定文件存放的目錄,默認是/var/lib/tftpboot下。這里我們不修改跳過。
如果要修改,見下面。
$ sudo vi /etc/default/tftpd-hpa
修改內容為
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-c -s -l"
$ mkdir /tftpboot
$ sudo chmod a+w /tftpboot
注:
TFTP_DIRECTORY=/tftpboot 表示指定待傳輸文件的存放目錄為/tftpboot。如果想通過tftp服務傳輸某文件,需要把文件放在該目錄下。
重啟tftp服務,使得修改的配置生效
$ sudo service tftpd-hpa restart
<4> 自環測試tftp服務是否安裝成功
$ cd /var/lib/tftpboot
$ vi test 并在里面添加一些字符后,保存退出
$ cd /tmp
$ tftp 127.0.0.1
$ tftp> get test
$ tftp> q
$ cat test 如果看到test里字符和前面輸入字符一致,表示該tftp服務是OK的