imx6使用tftp下载kernel

xiaoxiao2021-02-27  239

由于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)

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

转载请注明原文地址: https://www.6miu.com/read-12314.html

最新回复(0)