imx6使用tftp下载kernel

由于kernel制作的不同,需要在uboot上烧写kernel,这里可以采用tftp的方式进行烧写。

tftp的搭建

1. 安装软件包

    sudo apt-get install tftpd tftp xinetd

2. 建立配置文件
在/etc/xinetd.d/下建立一个配置文件tftp

    sudo vi /etc/xinetd.d/tftp

在里面写入如下内容

service tftp  
{  
socket_type = dgram  
protocol = udp  
wait = yes  
user = root  
server = /usr/sbin/in.tftpd  
server_args = -s /tftpboot  
disable = no  
per_source = 11  
cps = 100 2  
flags = IPv4  
} 

3. 建立tftp服务文件目录
在上一步配置中有server_args = -s /tftpboot,其中/tftpboot这个目录就是上传文件与下载文件的位置。我们现在创建这个目录,并设置权限。

    sudo mkdir /tftpboot
    sudo chmod 777 /tftpboot -R 

4. 重新启动tftp服务

    sudo /etc/init.d/xinetd restart

5. 测试

    sudo netstat -a | grep tftp

如果启动成功,则可以查看到

    upd     0 0 *:tftp      *:*

再运行

    tftp 192.168.0.200 -g -r xxx

即可设置主机地址。

6. 本机测试
在/tftpboot目录下创建一个ky文件,启动另外一个终端,输入:

tftp 127.0.0.1
tftp> get ky     #获取ky文件
tftp> q                        #退出tftp

在终端输入ls命令,可以看到当前目录下看到ftp获取到的ky文件。
这样我们的主机上tftp就已经搭建好了

连接开发板

在虚拟机选择网络为桥接模式,并且在编辑菜单网络参数中,选择已桥接到Relteck…(表示本地有线网卡)
如果不成功,检查防火墙是否已经关闭。

主机设置IP地址 192.168.1.100

sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0

这里的ens33为网卡名称,通过ifconfig查看
uboot里设置开发板地址 192.168.1.11

setenv ipaddr 192.168.1.11
setenv serverip 192.168.1.100
saveenv

这里只要保证网段相同即可
然后测试是否可以ping通

ping 192.168.1.100

若成功,则显示以下内容:

host 192.168.1.100 is alive

继而启动开发板,进入U-Boot命令行,用tftp命令加载tftp服务器中的文件,(注意,服务器为/tftpboot文件夹,保证文件夹内有该文件)如:

U-Boot$ tftp 10800000 uImage

注意:用网线连接开发板与主机的时候,有时候连接不稳定 ,可以在主机上重新运行sudo ifconfig ens33 192.168.1.100 netmask 255.255.255.0, 保证连接。
结果显示:

TFTP from server 192.168.1.100; our IP address is 192.168.1.11
Filename 'uImage'.
Load address: 0x10800000
Loading: #################################
done
Bytes transferred = 479927 (752b7 hex)

这样就下载到内存成功
继而可以开始运行

你可能感兴趣的:(imx6)