让U-Boot通过tftp的方式加载Linux内核文件
在嵌入式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是需要下载的文件名称。