主机端编译的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的