嵌入式开发环境搭建:开发板tftp下载环境搭建

(注:本文参考资料:朱有鹏嵌入式课程。本文为个人学习记录,如有错误,欢迎指正。)

1. 设置网络

设置开发板与虚拟主机Ubuntu的网络连接。

(1)将开发板与Windows主机用网线相连;

(2)开发板进入uboot命令行,设置开发板的IP地址和子网掩码,即环境变量ipaddr、netmask的值。注意确保开发板与虚拟主机Ubuntu处于同一网段。此处设为:

netmask  =  255.255.255.0
ipaddr  =  192.168.1.200

(3)在虚拟主机Ubuntu设置选项中,将网络适配器配置为“桥接模式”;

P.S.:VMware的网络模式:桥接模式、NAT模式、仅主机模式详解

        

(4)进入VMware的“编辑”菜单,进入“虚拟网络编辑器”界面,将虚拟机桥接至有线网卡。因为开发板与虚拟主机Ubuntu是通过网线连接的,故它们之间的通信只能通过有线网卡进行。

                      

(5)设置Ubuntu的静态IP地址。默认情况下,Ubuntu的IP地址动态分配的,但动态IP地址不便于tftp下载操作,故将其IP地址设置为静态IP地址。设置方法:vim  /etc/network/interfaces,填充以下内容。(若该路径下无该文件,则创建该文件)

 

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1

填充后,保存该文件,重启网卡,即可生效。Ubuntu重新网卡命令如下(不同版本可能会有差异):

ifdown    eth0        //关闭网卡0
ifup    eth0            //开启网卡0
Ubuntu下运行“ifconfig”命令,确认IP地址是否设置正确。
(6)在开发板uboot命令下,执行ping命令,确认开发板与Ubuntu是否成功建立网络连接。
 

P.S.:若设置无误,但ping失败,可尝试关闭Ubuntu和Windows下的防火墙。

2. 搭建tftp服务器

在虚拟主机Ubuntu下,搭建tftp服务器。

(1)安装tftp所需软件,tftp-hpa、tftpd-hpa、xinetd。在Ubuntu终端在运行如下命令进行安装:

sudo apt-get install tftp-hpa tftpd-hpa

sudo apt-get install xinetd

(2)配置/etc/xinetd.conf

若该路径下没有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

(3)配置/etc/default/tftpd-hpa

在该文件中填充如下内容:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/tftpboot"        #tftp服务器在路径,可以根据需要修改

TFTP_ADDRESS="0.0.0.0:69" 
TFTP_OPTIONS="-l -c -s"

(4)配置/etc/xinetd.d/tftp

若该路径下没有tftp文件,则创建。在该文件中填充如下内容:

service tftp
{
  socket_type = dgram
  wait = yes
  disable = no
  user = root
  protocol = udp
  server = /usr/sbin/in.tftpd
  server_args = -s /tftpboot      #配置服务器的文件的存放位置
  #log_on_success += PID HOST DURATION
  #log_on_failure += HOST
  per_source = 11
  cps =100 2
  flags =IPv4
}

(5)修改文件夹权限

修改存放服务器文件的文件夹的权限,一般设置为最宽松的权限。运行如下命令:

sudo mkdir /tftpboot            //创建tftpboot文件夹,用于存放服务器文件

sudo chmod 777 /tftpboot   //修改文件夹权限

(6)重启服务

重新启动服务,上述配置即可生效。运行如下命令:

sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart

3. 测试

(1)本地测试

在Ubuntu本地环境下,测试tftp服务器能否工作。

  1)在/tftpboot目录下创建一个file.c文件;

  2)在另外的目录下,在Ubuntu终端下运行“ sudo tftp localhost”命令,进入到tftp命令符下;

  3)在tftp命令符下,运行命令“get  file.c”,若无错误提示,则成功从tftp服务器获取file.c文件;

  4)在tftp命令符下,运行命令“put  file”,即可将该文件上传至tftp服务器中。

(2)下载测试

在开发板的uboot终端下,从Ubuntu的tftp服务器获取内核镜像。

1)在uboot终端,运行tftpboot命令,从tftp服务器下载内核镜像。
tftpboot命令格式:tftpboot 30008000 192.168.1.100:zImage。不同版本其命令格式可能会有差异,可以通过help命令查看。

tftpboot 30008000 192.168.1.100:zImage   //从tftp服务器下载zImage到DDR中的0x30008000地址处

2)运行“bootm  30008000”,即可成功启动内核。

猜你喜欢

转载自www.cnblogs.com/linfeng-learning/p/9284402.html