让U-Boot通过tftp的方式加载Linux内核文件

linuxunix 2011-10-28

在嵌入式Linux开发过程中经常需要从电脑下载引导程序U-Boot,如果每次都使用烧写到flash或者SD卡的方式,那是比较低效率的开发方式,导致公司没有竞争力,开发出来的产品也没有竞争力,在市场上就会落后挨打了。

这里就来介绍tftp方式从linux主机下载文件到开发板里运行,因此需要在主机Linux系统里安装tftp服务器。

在Ubuntu中安装tftp服务器的方法如下:

1) 下载并安装程序

通过软件管理可以安装相应的程序tftp/tftpd,tftp是客户端程序,tftpd是服务器程序。在ubuntu系统的终端里输入下面的命令:

sudo apt-get install tftp tftpd

通过上面的命令,就可以安装相应的软件。

2) 建立tftp服务器目录

建立一个tftp客户端访问服务器的目录,如下:

先进入到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

 

3) 重新启动服务

sudo /etc/init.d/openbsd-inetd restart

sudo in.tftpd –l /tftpboot

 

4) 测试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是需要下载的文件名称。

相关推荐