芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 1745|回复: 0

【AC608-7Z010】使用NFS启动Linux并烧录ZYNQ的SDMMC存储器方案

[复制链接]

该用户从未签到

59

主题

73

帖子

764

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
764
发表于 2023-4-7 10:16:11 | 显示全部楼层 |阅读模式

由于论坛限制附件大小为20MB,所以将资料包分卷压缩成了2个分卷,请大家按照下面的指示下载并解压文件
1、先将2个压缩文件全部下载到电脑
2、选中任意一个文件,然后右键使用解压软件解压出来就行
3、只要确认两个文件都完全下载了,就只需要解压一个就行。不用把两个文件各解压一次。
Zynq_NFS_Files.zip.001 (15 MB, 下载次数: 137)
Zynq_NFS_Files.zip.002 (5.66 MB, 下载次数: 124)


使用NFS启动Linux并烧录SDMMC存储器

一、        配置Ubuntu的NFS环境

安装并开启 Ubuntu 中的 NFS 服务,安装nfs-kernel-server,将会自动安装nfs-common和rpcbind等依赖,使用如下命令:

  1. sudo apt-get install nfs-kernel-server
复制代码

输入指令,接着输入密码,开始安装,如果出现“您希望继续执行吗?[Y/n]”则输入 “Y”继续进行安装,没有出现则不必理会,如图所示。

01.png

等待安装完成,在用户根目录下创建一个“NFS_Files”文件夹用于存放文件,创建的文件夹内部为空,如图。

02.png

“NFS_Files”文件夹供NFS服务器使用,通过网络文件系统可以用来访问 NFS文件夹。下面我们进行NFS配置,NFS允许挂载的目录及权限在文件/etc/exports 中进行定义,使用如下命令打开 NFS 配置文件:

  1. sudo vi /etc/exports
复制代码

打开/etc/exports 以后在后面添加如下所示内容,如图 3 34所示。注意这里的用户名为打开的窗口左上角@前面的名称,例如这里的ovo即为我的用户名。

  1. /home/用户名/NFS_Files *(rw,sync,no_root_squash)
复制代码


03.png

“/home/ovo/NFS_Files”是要共享的目录,“*”代表允许所有的网络段访问, “rw”是可读写权限,“sync”是文件同步写入存储器,“no_root_squash”是NFS客户端分享目录使用者的权限。
将上述文件保存并退出后,使用以下命令重启 NFS 服务:

  1. sudo service nfs-kernel-server restart
复制代码

运行以下命令来显示共享的目录:

  1. showmount -e
复制代码

执行之后,如图所示
04.png
在 NFS 运行的过程中,修改了/etc/exports 配置文件,可以使用 exportfs 命令使改动生效,具体命令:

  1. sudo exportfs -rv
复制代码

效果如下:

05.png

二、        准备启动文件和根文件系统

将我们提供的文件夹下的“Zynq_NFS_Files.tar.gz”文件复制到前面创建的NFS_Files文件夹内

06.png

使用以下命令解压该文件

  1. sudo tar -zxvf Zynq_NFS_Files.tar.gz ./
复制代码


07.png

该文件夹内包含了Zynq的启动文件和一个基础的根文件系统。

三、        使用SDK/Vitis给Zynq烧录启动文件

将以下文件“AC608Z_Core_QSPI_Files.zip”烧写到核心板的QSPI Flash中,具体方法请参考http://www.corecourse.cn/forum.php?mod=viewthread&tid=29268

AC608Z_Core_QSPI_Files.zip (415.34 KB, 下载次数: 121)

四、        使用NFS启动linux系统

先按照这个帖子配置好虚拟机的网卡
http://www.corecourse.cn/forum.php?mod=viewthread&tid=28711

然后使用网线连接Zynq的网口和PC端网口,给Zynq上电,会自动进入uboot界面,然后输入以下命令:

  1. setenv bitstream_load_address 0x100000
  2. setenv bitstream_size 0x300000
  3. setenv ipaddr 192.168.1.101
  4. setenv serverip 192.168.1.99
  5. setenv NFS_Path 192.168.1.99:/home/ovo/NFS_Files
  6. setenv nfsboot 'echo Copying Linux from NFS to RAM... && nfs ${bitstream_load_address} ${NFS_Path}/system.bit && fpga loadb 0 ${bitstream_load_address} ${bitstream_size} && nfs ${kernel_load_address} ${NFS_Path}/zImage && nfs ${devicetree_load_address} ${NFS_Path}/system.dtb && bootz ${kernel_load_address} - ${devicetree_load_address}'
  7. setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/nfs rw rootwait nfsroot=192.168.1.99:/home/ovo/NFS_Files/RootFs ip=192.168.1.101:192.168.1.99:192.168.1.1:255.255.255.0::eth0:0ff'setenv bootcmd 'run nfsboot'
  8. saveenv
  9. run nfsboot

复制代码


输入的结果如下图所示:

14.png

在输入最后的boot命令后,uboot会从NFS主机获取bit文件、内核镜像、设备树文件,并加载bit文件,使用NFS挂载了根文件系统,最后启动Linux系统

15.png

最后成功进入了Linux系统的命令行界面

image.png

五、        使用NFS将文件拷贝到SD卡

使用以下命令运行SD卡烧录脚本,该脚本会格式化SD卡并创建两个分区,boot分区存放启动文件和镜像等,rootfs分区存放根文件系统。

  1. ./Format_SDCard.sh
复制代码


17.png

按下核心板上的复位按键来重启开发板,再次进入uboot,输入步骤四中的指令,使用nfs进入Linux系统

image.png

重新进入Linux系统后,使用以下命令将NFS中的启动文件复制到boot分区

  1. ./Update_BootFiles.sh
复制代码

再将根文件系统压缩包解压到SD卡的Rootfs分区

  1. ./Unzip_Rootfs.sh
复制代码

boot分区和rootfs分区的文件都已更新完毕。

六、        使用SDMMC启动Linux系统

按下核心板上的复位按键重启Zynq,进入uboot界面,然后输入以下命令配置启动环境,使Zynq从SDMMC启动Linux系统

  1. env default -a
  2. setenv bitstream_load_address 0x100000
  3. setenv bitstream_image system.bit
  4. setenv bitstream_size 0x300000
  5. setenv kernel_image zImage
  6. setenv devicetree_image system.dtb
  7. setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait'
  8. setenv bootcmd 'run sdboot || run distro_bootcmd'
  9. setenv sdboot 'if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 ${bitstream_load_address} ${bitstream_image} && fpga loadb 0 ${bitstream_load_address} ${bitstream_size} && fatload mmc 0 ${kernel_load_address} ${kernel_image} && fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && bootz ${kernel_load_address} - ${devicetree_load_address}; fi'
  10. saveenv
  11. boot


复制代码

成功进入Linux系统


image.png

更多AC608-7Z010相关资料,请查看下述汇总贴
【AC608-7Z010】Zynq邮票孔核心板产品使用自助服务手册





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-5-4 09:00 , Processed in 0.166698 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表