Zynq linux 开发笔记

本文记录了Zynq平台Linux开发过程中的问题及解决方案,包括固件烧写后kernel无法启动(增大bootenv空间)、内核启动时的DMA错误(使用无DMA配置的版本)和boot读取网卡地址错误(但网口功能正常)。通过调整Flash挂载、设置SSH服务和TFTP服务,实现了文件传输和系统通信。

开发环境: 虚拟机:VMware® Workstation 15 Pro Ubuntu:16.04 LTS

Petalinux版本2018.3 SDK 2018.3

开发工具: TFTPD64.exe Xshell

环境搭建:

参考《3_领航者ZYNQ之嵌入式Linux开发指南_V1.5.2.pdf》
《course_s4_ZYNQ那些事儿-Linux实验篇V1.07.pdf》

这里主要记录下载整个环境搭建过程中遇到的问题和解决办法以及一些工具的安装使用。
笔者也是第一次在zyqn平台下搭建linux开发环境,参考《3_领航者ZYNQ之嵌入式Linux开发指南_V1.5.2.pdf》文档,当然这个文档是正点原子领航者zynq开发板文档,但是也适用于我们的板子(zynq7100)。

问题1 :固件烧写后boot可以正常启动kernel无法启动

按照文档的搭建好了开发环境,接下来就时在板子上跑起来我们的linux系统,这里我们的板子默认是从flash启动,所以需要烧写boot.BIN文件和FSBL.ELF文件到flash固定位置,在导入硬件hdf文件时需要对boot boot_commd kernel进行空间划分,目的是在上电时boot能够正常启动加载内核系统正常运行。但是在烧写完成之后板子重启发现boot能够正常起来但是不能获取到kernel
解决办法:增大bootenv空间
在这里插入图片描述

问题2:在解决上述问题之后内核还是无法正常启动

根据串口的打印信息为DMA出错内核被卡挂掉了。
解决办法:是因为硬件在生成hdf文件时配置了DMA,我们petalinux没有配置导致内核在启动时无法读取DMA相关信息,所以无法启动内核,这里只我用之前调试好的没有DMA的版本,在配置编译后内核就可以正常启动。

问题3:boot上电配置读取网卡地址错误,但是网口可正常使用

现象如下
在这里插入图片描述

分析原因:我们自己板子上使用的phy芯片是88E1111 用petalinux配置U-BOOT时没有找到对应的phy芯片型号所以读取PHY地址错误,但是在内核起来之后ping包是ok的,ssh和tftp服务也可以正常运行。
在这里插入图片描述


  • 遗留问题:u-boot是否有配置改网卡的驱动。如果没有后期需手动添加。

Flash挂载:

1. 进入mnt目录创建一个用于挂载flash的文件夹sdisk3

 $mkdir /mnt/sdisk3

2. 擦除用于挂载flash的分区,将其分区格式化为jff2文件格式

$ flash_eraseall -j /dev/mtd3

3. 手动挂载flash到sdisk3

$ mount -t jffs2 /dev/mtdblock3 /mnt/sdisk3

在这里插入图片描述

这里提示下因为之前已经对此区域擦除过,所以直接进行挂载。

SSH服务:

    开启SSH服务以后我们直接可以在PC机上通过终端软件直接操作我们板子上的linux系统

1. 在虚拟机开启SSH服务:

sudo apt-get install openssh-server

上述命令安装 ssh 服务,ssh 的配置文件为/etc/ssh/sshd_config,使用默认配置即可

2. PC端打开Xshell软件
在这里插入图片描述在这里插入图片描述

TFTP服务:

TFTP 作为一种简单的文件传输协议,在嵌入式开发中会经常使用到,开启TFTP服务主要是用于PC机和板子的文件互传。PC机作为服务器 板子作为客户端。
使用场景:
把windows下的文件写入到linux(嵌入式设备中);
下载地址:https://bitbucket.org/phjounin/tftpd64/wiki/D
1、下载安装完成后,运行程序:
  在这里插入图片描述 2、选择windows下文件所在的文件夹: 在这里插入图片描述

在安装目录创建文件夹data,将要发送到Linux中的文件放在这个文件夹中;
3、选择服务器接口:
在这里插入图片描述

这里选择的ip地址是在linux上用到的主机地址:(假设选择的是192.168.1.110这个地址)
4、做好上面的选择就可以使用了:
  在linux系统终端输入:
  a、从windows上传到linux:tftp -r 文件 -g 服务器地址
  b、从linux上传到windows:tftp -l 文件 -p 服务器地址

例如:从windows上传到linu :tftp -r test.txt -g 192.168.1.110

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值