第1步:
安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,
在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。
然后还需要安装xinetd,在终端下输入 sudo apt-getinstall xinetd,安装好xinetd
第2步:
配置相关服务文件。进入根目录下的etc文件夹(cd /etc/),首先看目录中有没有一个xinetd.conf文件,
如果没有则新建一个,有的话查看内容,看是否与下面的一致,若不一致则修改,内容如下:
- # Simple configuration file for xinetd
- #
- # Some defaults, and include /etc/xinetd.d/
- defaults
- {
- # Please note that you need a log_type line to be able to use log_on_success
- # and log_on_failure. The default is the following :
- # log_type = SYSLOG daemon info
- }
- includedir /etc/xinetd.d
然后进入xinetd.d文件夹(cd xinetd.d),查看是否有一个tftp文件,如果没有就新建一个,如果有的话
就查看内容是否与下面的一致,不一致则修改,内容如下:
- service tftp
- {
- disable = no
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = -s //home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot -c
- source = 11
- cps = 100 2
- gs =IPv4
- }
其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的
第4步:
更改配置文件/etc/default/tftpd-hpa
sudo gedit /etc/default/tftpd-hpa
- # /etc/default/tftpd-hpa
- TFTP_USERNAME="tftp"
- TFTP_DIRECTORY="/home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot"
- TFTP_ADDRESS="0.0.0.0:69"
- TFTP_OPTIONS="--secure"
第5步:
修改所需文件夹的权限。需要修改的文件夹也就是上一步提到的那个服务器文件存放的文件夹,
以我的配置文件为例,我直接设置/home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot为服务器文件夹,然后把它可以设置成访问权(sudo chmod –R 777 /home/pillar/WORK/kernel/linux-3.5.4/arch/arm/boot),一定要设定,-R是递归把文件下所有文件都改掉。
第5步:
重新启动服务。这也是我经常疏忽的一步,当配置好tftp的配置文件后,需要重新启动一下xinetd,
在终端中输入 sudo /etc/init.d/xinetd reload,重新加载一下进程,再输入 sudo /etc/init.d/xinetd restart,sudo service tftpd-hpa restart
重启服务。记住,每次修改完配置文件后,都需要重新启动一下服务
重启电脑!
第6步:主机测试
- root@Pillar:/home/pillar/WORK# tftp localhost
- tftp> get uImage
- tftp> q
- root@Pillar:/home/pillar/WORK# ls
- kernel u-boot uImage
开发板测试
- SMDK6410 # tftp c0008000 uImage
- Found DM9000 ID:90000a46 at address 18000300 !
- DM9000 work in 16 bus width
- bd->bi_entaddr: 00:40:5c:26:0a:5b
- [eth_init]MAC:0:40:5c:26:a:5b:
- TFTP from server 192.168.1.103; our IP address is 192.168.1.101
- Filename 'uImage'.
- Load address: 0xc0008000
- Loading: T #################################################################
- #################################################################
- #################################################################
- #################################################################
- ###################################################
- done
- Bytes transferred = 1590256 (1843f0 hex)
- SMDK6410 # bootm c0008000
- ## Booting image at c0008000 ...
- Image Name: Linux-3.5.4
- Created: 2012-09-17 10:55:54 UTC
- Image Type: ARM Linux Kernel Image (uncompressed)
- Data Size: 1590192 Bytes = 1.5 MB
- Load Address: 50008000
- Entry Point: 50008000
- Verifying Checksum ... OK
- OK