背景

使用 Vivado配置好网络,并在PetaLinux中构建了完整的uboot、kernel、rootfs以后,发现网络有问题。

> ping 192.168.168.1
ethernet@e000b000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
ping failed; host 192.168.168.1 is not alive
Zynq> ping 192.168.168.1
Using ethernet@e000b000 device
ARP Retry count exceeded; starting again
ping failed; host 192.168.168.1 is not alive

一直ping不通,检查了一遍以后发现配置很正常。

pri打印了一下环境变量以后发现问题。

ipaddr=192.168.168.168
...
serverip=192.168.168.1

细心的读者肯定也发现哪里不对劲了。

是的,缺少了gateway(网关)。

Zynq> set gateway 255.255.255.0
Zynq> ping 192.168.168.1
Using ethernet@e000b000 device
host 192.168.168.1 is alive

附录:常见调试命令

ZYNQ(QSPI 不保存 env)

从网络加载image.ub(内含内核、设备树、文件系统,但无法修改)

set serverip 192.168.168.1; set ipaddr 192.168.168.16; set gateway 192.168.168.1; set bootargs 'root=/dev/nfs nfsroot=192.168.168.106:/home/schips/nfs/rootfs_16c,tcp rw ip=192.168.168.16:192.168.168.211:192.168.168.1:255.255.255.0 ::eth0:on consloe=ttyAMA0,115200'; tftpboot 10000 image.ub_ext4_16c_todo;bootm 10000

从网络加载内核、设备树、文件系统

set serverip 192.168.168.1; set ipaddr 192.168.168.16; set gateway 192.168.168.1; set bootargs 'root=/dev/nfs nfsroot=192.168.168.106:/home/schips/nfs/rootfs_16c_ext4,tcp rw ip=192.168.168.16:192.168.168.211:192.168.168.1:255.255.255.0 ::eth0:on consloe=ttyAMA0,115200'; tftpboot 8000 zImage; tftpboot 103cdd00 system.dtb; bootz 8000 - 103cdd00

从emmc加载内核、设备树、文件系统

set bootargs 'root=/dev/mmcblk1p2  rootfstype=ext4 rootwait rw' ; mmc dev 1; fatload mmc 1 8000 zImage ; fatload mmc 1 103cdd00 system.dtb ; bootz 8000 - 103cdd00

从sd卡启动系统

set bootargs 'root=/dev/mmcblk0p2  rootfstype=ext4 rootwait rw' ; mmc dev 0; fatload mmc 0 8000 zImage ; fatload mmc 0 103cdd00 system.dtb ; bootz 8000 - 103cdd00
fatload mmc 0 8000 emmc/BOOT.bin ; sf probe ; sf erase 0x0 0x800000 ; sf write 0x8000 0x0 0x800000 ;set bootargs 'root=/dev/mmcblk0p2  rootfstype=ext4 rootwait rw' ; mmc dev 0; fatload mmc 0 8000 zImage ; fatload mmc 0 103cdd00 system.dtb ; bootz 8000 - 103cdd00

其他

## 网络调试 + 本地文件系统
### 一次性命令
tftpboot 8000 zImage.intr; tftpboot 103cdda8 system.dtb.intr; set bootargs 'root=/dev/mmcblk1p2 rw rootwait consloe=ttyAMA0,115200'; bootz 8000 - 103cdda8 ### 每次启动都可以
set debugboot "tftpboot 8000 zImage.intr; tftpboot 103cdda8 system.dtb.intr; set bootargs 'root=/dev/mmcblk1p2 rw rootwait consloe=ttyAMA0,115200'; bootz 8000 - 103cdda8" ; set bootcmd "run debugboot" ;saveenv ; reset #################命令片段################### # 下载内核,设备树, 以 xx 文件系统 启动
tftpboot 8000 zImage; tftpboot 103cdda8 system.dtb; set 'xxx'; bootz 8000 - 103cdda8 # 下载内核+设备树,文件系统由image.ub 指定
tftpboot ${netstart} image.ub; bootm ${netstart} # 从EMMC读取文件,启动
fatload mmc 0 ${netstart} image.ub; bootm ${netstart}
fatload mmc 0 8000 zImage;fatload mmc 0 103cdda8 system.dtb; set 'xxx'; bootz 8000 - 103cdda8 uio_pdrv_genirq.of_id="generic-uio" # 指定文件系统路径
## nfs
set bootargs 'root=/dev/nfs nfsroot=192.168.168.106:/home/schips/nfs/rootfs,tcp rw ip=192.168.168.168:192.168.168.211:192.168.168.1:255.255.255.0 ::eth0:on consloe=ttyAMA0,115200';
## 0 for sd-card
set bootargs 'root=/dev/mmcblk0p2 rw rootwait consloe=ttyAMA0,115200';
## 1 for emmc
set bootargs 'root=/dev/mmcblk1p2 rw rootwait consloe=ttyAMA0,115200'; set serverip 192.168.168.16; set ipaddr 192.168.168.168; set gateway 192.168.168.1; ## 带UIO,NFS,TFTP
set bootargs 'root=/dev/nfs nfsroot=192.168.168.106:/home/schips/nfs/rootfs,tcp rw ip=192.168.168.168:192.168.168.211:192.168.168.1:255.255.255.0 ::eth0:on consloe=ttyAMA0,115200 uio_pdrv_genirq.of_id="generic-uio"'; set bootargs 'root=/dev/nfs nfsroot=192.168.168.106:/home/schips/nfs/rootfs,tcp rw ip=192.168.168.168:192.168.168.211:192.168.168.1:255.255.255.0 ::eth0:on consloe=ttyAMA0,115200'; sete nb "tftpboot 8000 zImage; tftpboot 103cdda8 system.dtb; bootz 8000 - 103cdda8"; sete bootcmd "run nb" savee run nb

ZYNQ uboot 网络调试的更多相关文章

  1. 利用ZYNQ SOC快速打开算法验证通路(2)——数据传输最简方案:网络调试助手+W5500协议栈芯片

    在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台.之前了解过Xilinx公司面向DSP开发的System Genera ...

  2. 下载uboot的调试版本到开发板的sdram中运行

    开发环境:开发板:FriendlyARM Tiny6410 主机:CentOS release 6.4 (Final) 开发板与主机通过串口线连接 调试用的uboot源码为开发板光盘提供的u-boot ...

  3. Putty以及adb网络调试

    1.什么是SSH? SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传 ...

  4. tiny210 u-boot 网络ping不通主机解决方案

    站在巨人的肩膀上: http://blog.csdn.net/liukun321/article/details/7438880 http://www.arm9home.net/read.php?ti ...

  5. [Android] [putty连接Android设备] [Android设备网络调试]

    file: system/core/adb/adb.c line: 921 /* for the device, start the usb transport if the ** android u ...

  6. 网络调试 adb connect

    $su #stop adbd #setprop service.adb.tcp.port 5555 #start adbd 然后在电脑端打开cmd,输入adb命令: #adb connect < ...

  7. adb无线网络调试

    1.如果已经可以用usb连接adb,那么可以通过以下命令切换到无线连接方式. adb tcpip 5555 adb connect 192.168.0.101:5555      通过下面的命令可以切 ...

  8. Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源

    时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...

  9. 【转】Android开启网络调试的方法

    方法是偶然看到的: Android 终端adbd服务需要开启5555号端口来建立于adb的连接,如果未开启5555端口,则不能通过网络调试 查看是否可以网络调试: # netstat Android ...

  10. 网络调试助手的使用 调试TCP,UDP

    网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计.开发.测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发的速度,是TCP/UDP应用开发助手. 集成TCP/ ...

随机推荐

  1. Linux中的cp命令

    Linux中cp命令用来赋值文件或者目录,其常用的命令选项如下: 下面是cp命令的一些使用示例: 默认情况下,cp命令赋值出来的权限或者属性通常来源自操作者本身.比如上面在root身份在执行cp命令, ...

  2. VForm

    VForm是一款基于Vue 2/Vue 3的低代码表单,支持Element UI.iView两种UI库,定位为前端开发人员提供快速搭建表单.实现表单交互和数据收集的功能. VForm全称为Varian ...

  3. CentOS7部署ES(单机)

    一.创建路径,解压 ## 创建路径 [root@localhost /]# cd /data [root@localhost data]# mkdir ES ## 解压 [root@localhost ...

  4. Django视图的请求与响应

    1.请求对象 (1)请求方式 print(request.method) (2)请求数据 (3)请求路径 # HttpRequest.path: 表示请求的路径(不含get参数) # HttpRequ ...

  5. 通过 InnoSetup 美化安装界面

    InnoSetup 的美化相应的帖子也比较多,但是代码不是很全...所以我专门出了这篇文章来记录下这个美化过程.废话不多说,先上个成果: 前端er们可以直接下载 vue-nw-seed 这个分支,一键 ...

  6. AI 画图真刺激,手把手教你如何用 ComfyUI 来画出刺激的图

    目前 AI 绘画领域的产品非常多,比如 Midjourney.Dalle3.Stability AI 等等,这些产品大体上可以分为两类: 模型与产品深度融合:比如 Midjourney.Dalle3 ...

  7. 在kubernetes里使用seccomp限制容器的系统调用

    目录 一.系统环境 二.前言 三.系统调用简介 四.使用seccomp限制docker容器系统调用 五.在kubernetes里使用seccomp限制容器的系统调用 5.1 配置seccomp允许po ...

  8. mysql binlog查看指定数据库

    1.mysql binlog查看指定数据库的方法 MySQL 的 binlog(二进制日志)主要记录了数据库上执行的所有更改数据的 SQL 语句,包括数据的插入.更新和删除等操作.但直接查看 binl ...

  9. openstack neutron 报错

    openstack neutron /etc/neutron下面没有dhcp文件 查错发现安装时候打错

  10. JavaSE print printf println 区别

    *print与println,printf区别 System.out.print();括号内必须含有参数 System.out.println();括号内可以不含参数,此时代表newline即换行; ...