首页 > 其他分享 >[I.MX6UL] U-Boot 命令使用(四) 网络操作命令

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令

时间:2022-10-31 22:00:22浏览次数:54  
标签:操作命令 Boot 开发板 命令 tftpboot nfs MX6UL zImage tftp


uboot支持大量的网络相关命令, 比如 dhcp、ping、nfs 和 tftpboot。

在使用 uboot 的网络功能之前先用网线将开发板的 ENET2 接口和电脑或者路由器连接起来,I.MX6U-ALPHA 开发板有两个网口:ENET1 和 ENET2,一定要连接 ENET2,不能连接错了。

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_u-boot

setenv ipaddr 192.168.1.50 
setenv ethaddr 00:04:9f:04:d2:35
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.250
saveenv

注意,网络地址环境变量的设置要根据自己的实际情况,确保 Ubuntu 主机和开发板的 IP地址在同一个网段内,比如我现在的开发板和电脑都在 192.168.1.0 这个网段内,所以设置开发板的 IP 地址为192.168.1.50,我的 Ubuntu 主机的地址为 192.168.1.250,因此 serverip 就是192.168.1.250。ethaddr 为网络 MAC 地址,是一个 48bit 的地址,如果在同一个网段内有多个开发板的话一定要保证每个开发板的 ethaddr 是不同的,否则通信会有问题!设置好网络相关的环境变量以后就可以使用网络相关命令了。

1、ping 命令

ping 192.168.1.250

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_uboot_02

2、dhcp 命令

dhcp 用于从路由器获取 IP 地址,前提得开发连接到路由器上的,如果开发板是和电脑直连的, 那么 dhcp 命令就会失效。 直接输入 dhcp 命令即可通过路由器获取到 IP 地址, 如图所示:

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_linux_03

3、nfs 命令

nfs(Network File System)网络文件系统,通过 nfs 可以在计算机之间通过网络来分享资源,比如我们将 linux 镜像和设备树文件放到 Ubuntu 中, 然后在 uboot 中使用 nfs 命令将 Ubuntu 中的 linux 镜像和设备树下载到开发板的 DRAM 中。
我们一般使用 uboot 中的 nfs 命令将 Ubuntu 中的文件下载到开发板的 DRAM 中,在使用之前需要开启 Ubuntu 主机的 NFS 服务,并且要新建一个 NFS 使用的目录,以后所有要通过NFS 访问的文件都需要放到这个 NFS 目录中。


我设置的/home/xue1995/linux/nfs 这个目录为我的 NFS 文件目录。uboot 中的 nfs 命令格式如下所示:

nfs [loadAddress] [[hostIPaddr:]bootfilename]

  1. loadAddress 是要保存的 DRAM 地址
  2. [[hostIPaddr:]bootfilename] 是要下载的文件地址

测试zImage下载地址:https://cloud.189.cn/t/VF7Bfu2E3Mrq

将zImage复制到/home/xue1995/linux/nfs中,如下图

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_uboot_04

准备好以后就可以使用 nfs 命令来将 zImage 下载到开发板 DRAM 的 0X80800000 地址处,SecureCRT中的输入如下命令:

nfs 80800000 192.168.1.250:/home/xue1995/linux/nfs/zImage

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_linux_05

下载完成以后会提示下载的数据大小,这里下载的 6071136 字节,而 zImage 的大小就是 6071136 字节。

4、tftp 命令

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令使用的 TFTP 协议,Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpa 和 tftpd-hpa,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

和 NFS 一样,TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下:

mkdir tftpboot
chmod 777 tftpboot/

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_ubuntu_06


终端输入:sudo gedit /etc/xinetd.d/tftp

提示:如果错误,则先创建xinetd.d文件夹。
mkdit /etc/xinetd.d/
chmod 777 /etc/xinetd.d/

输入如下内容:

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

完了以后启动 tftp 服务,命令如下:

sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

sudo gedit /etc/default/tftpd-hpa

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_u-boot_07

# /etc/default/tftpd-hpa 

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/xue1995/linux/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。

最后输入如下命令, 重启 tftp 服务器:

sudo service tftpd-hpa restart

测试zImage下载地址:https://cloud.189.cn/t/VF7Bfu2E3Mrq
将zImage复制到/home/xue1995/linux/tftpboot 中,如下图

tftp 服务器已经搭建好了,接下来就是使用了。将 zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:

cp nfs/zImage tftpboot/
chmod 777 tftpboot/zImage

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_linux_08

uboot 中的 tftp 命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]

  1. loadAddress 是文件在 DRAM 中的存放地址
  2. [[hostIPaddr:]bootfilename]是要从 Ubuntu 中下载的文件

现在将 tftpboot 文件夹里面的 zImage 文件下载到开发板 DRAM 的 0X80800000 地址处,SecureCRT中的输入如下:

tftp 80800000 zImage

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_linux_09

有时候使用 tftp 命令从 Ubuntu 中下载文件的时候会出现如图 30.4.4.11 所示的错误提示:

[I.MX6UL] U-Boot 命令使用(四) 网络操作命令_ubuntu_10

在图中可以看到“TFTP error: ‘Permission denied’ (0)”这样的错误提示,提示没有权限,出现这个错误一般有两个原因:

①、在 Ubuntu 中创建 tftpboot 目录的时候没有给予 tftboot 相应的权限。
②、tftpboot 目录中要下载的文件没有给予相应的权限。


标签:操作命令,Boot,开发板,命令,tftpboot,nfs,MX6UL,zImage,tftp
From: https://blog.51cto.com/xuejianqiang/5811326

相关文章

  • [I.MX6UL] 用STM32的方式来写I.MX6UL程序
    /**************************************************************Copyright©zuozhongkaiCo.,Ltd.1998-2019.Allrightsreserved.文件名:mian.c作者:左......
  • 模板注入--Spring boot Thymeleaf 模板注入
    Thymeleaf模板安全分析1、Thymeleaf简介Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。类似与pythonweb开发中的jinja模板引擎。顺便说一句,Thymeleaf是spr......
  • [nrf52][SDK17] 如何使用官方BootLoader
    所需文件已经编译完毕,直接放入指定目录。**\nRF5_SDK_17.0.2_d674dde\external\micro-ecc​​micro-ecc.rar​​BootLoader工程位置xx\nRF5_SDK_17.0.2_d674dde\examples\d......
  • Springboot导出word,动态填充表格数据
    原文链接:https://blog.csdn.net/qq_23126581/article/details/125446459背景本文将给大家带来如何导入数据到word文档中,固定传值和动态制作表格传值等。依赖:<!-......
  • Spring Boot中使用拦截器
    简介拦截器的原理很简单,是AOP的一种实现,专门拦截对动态资源的后台请求,即拦截对控制层的请求。使用场景比较多的是判断用户是否有权限请求后台,更拔高一层的使用场景也有,比......
  • bootstrap5 网格
      <linkhref="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.css"rel="stylesheet"><scriptsrc="https://cdn.staticfile.org/tw......
  • kafka服务端设置用户和密码登录及springboot访问实现
    1、先安装zookeeper,不会的可以去查一下。2、解压并放到目录下,改名tarzxvfkafka_2.12-2.4.0.tgz-C/datamvkafka_2.12-2.4.0kafka3、修改kafka配置文件server.......
  • uboot命令
    uboot中从u盘升级usbstartUSB设备初始化,若未执行,不能操作usb设备内容fatlsusb0列举U盘中所有文件fatinfousb0U盘属性等信息fatloadusb0:11080000......
  • Springboot整合mybatis-plus-2增删改查
    文章目录​​一、插入​​​​1.主键id配置自增的​​​​2.时间等自动填充​​​​1.直接在数据字段设置即可​​​​2.使用ioc反射原理​​​​二、改(update)​​​​三、......
  • Springboot 整合 thymeleaf-1
    文章目录​​thymeleaf百叶香​​​​一、添加依赖​​​​1.创建项目的时候引入依赖​​​​2.直接在pom里面添加依赖​​​​二、建立页面html并添加命名空间​​​​三......