手把手教你在Windows下用WSL运行Vitis/Vivado/Petalinux

FPGA开发圈 2022-02-10 12:07
想在Windows下完成Xilinx基于Linux的整套开发编译链?觉得虚拟机还是有各种不便?使用WSL2的时候遇到了各种问题?
欢迎联系科通,科通Xilinx技术Team帮您踩坑。

  1. 为什么现在是开始利用WSL运行Xilinx设计链的好时机?

    Windows Subsystem for Linux(简称WSL)是一个在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
    如果使用Windows 10 2004以上,可以通过WSL 2来窗口化运行桌面应用,也不需要另外安装其他的X 服务器。
    由于Zynq/MPSoC应用的普及,尤其是Linux的软硬件结合应用越来越多, 对Linux的裁剪和编译也成为了嵌入式工程师的必修课,而Linux 编译链(尤其基于Yocto 和 GCC) ,基本都在在Linux下调试和运行。
    尽管理论上可以用全脚本全文本的形式来进行Vivado全流程设计,但是不管是基于Block Design设计的灵活性,还是在Block中配置参数的方便性,基于图像GUI会非常方便。之前WSL 一代对GUI支持不是很好,在WSL2加强了对图形GUI的支持之后,既满足了Linux下嵌入式系统编译链的需求,又满足了图像化开发的需求,真是两全其美!


  2. 软件与硬件的准备工作

    硬件: 
    硬件主要是三大件 CPU内存硬盘啦。
    CPU和内存丰俭由人,主要会影响WSL的速度,当然是越高配越好,实测7、,8代i7与16G及更多的内存跑起来还是很流畅的。
    硬盘就很重要了,众所周知Vitis / Vivado 比较新的版本安装文件需要约60G, 解压安装文件需要约80G, 安装软件需要约80G,一个嵌入式工程(含临时Download / Sstate)约300~500G,再加上其他软件等,一个1T左右的硬盘是必须的。
    如果你的系统所在盘没有1T是没有问题的!我们稍后会解决这个问题。
    软件:
    软件方面主要需要考虑Windows版本,WSL2 需要Windows 10 20H4以上版本或者Windows 11较新版本。我们推荐Windows 10 升级到最新版本,实测没有问题。


  3. 到底用哪个Linux版本?

    因为支持期已过,Canonical已经停止为Ubuntu 16.04 LTS的技术支持,Windows Store当前主要提供18.04 LTS / 20.04 LTS版本,这里我们推荐比较新的20.04 LTS:


    我们来看比较新的2021.1 版本Vivado / Vitis Release note:


    可以看到最新版本的18.04/20.04 LTS都已经支持。本文就是WSL2 / Ubuntu 20.04 LTS / Vitis 2021.1 版本为例。
    当然, Windows商店中还提供了Linux其他发行版,欢迎各位有兴趣有余力可以去尝试下。

  4. 让我们开始安装

    1. 既然是虚拟机,首先要在BIOS中开启虚拟化相关选项(如Intel 的 VT-x,或者AMD AMD-V), 请参考您的主板和CPU说明书
    2. 使能“程序与功能”-“启用或关闭Windows功能”下两个功能:
    “虚拟机平台” 与 “适用于Linux的Windows子系统” (其他语言版本大致类似)。


    以上两步一定要先确保哦! 不然后续会有一些莫名其妙的bug。
    这里要特别说明一句,因为本文是基于WSL2,如果之前您已经安装过WSL1,后续可能碰到下面类似报警:


    造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级,前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。

    下载链接:https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

    如果是直接安装不会有这个问题。
    好,一切准备妥当,从Windows Store中安装Ubuntu 20.04 LTS吧!安装后运行,按指示设置用户名和密码就可以了。


  5. 让我们准备足够的空间

    微软对WSL2设定的初始虚拟硬盘空间是256G,虽然安装后可以在/mnt下直接访问Windows其他文件夹,但是EDA工具基本都要求工程在/home 下运行,所以我们要给虚拟硬盘进行扩容。
    首先我们进入我们刚刚装完的WSL, 用df查一下容量:


    可以看到只有256GB。
    而以我们实验的机器为例:


    可以看到C系统盘确实没有更大空间了,想要更大空间,我们需要做两个步骤
    1. 修改安装目录,把虚拟机移动到另一个盘符下(这里是D盘)
    2. 在新盘符中虚拟硬盘扩容。
    Windows10子系统(WSL)修改安装目录

    修改安装目录的方法如下(例子是一个18.04版本的,20.04把下面指令中的 ‘18.04’ 换成‘20.04’即可):

    1. 第一步,首先查看所有分发版本:

    wsl-l -v
    结果类似下面:


    2. 第二步,导出分发版为tar文件到D盘:

    wsl--export Ubuntu-18.04 d:\ubuntu18.04.tar
    结果类似下面


    3. 第三步,注销当前分发版:

    wsl--unregister Ubuntu-18.04
    4. 重新导入并安装分发版在d:\ubuntu (注意我们这里都是WSL2啦);
    5. wsl--import Ubuntu-18.04 d:\ubuntu2004 d:\ubuntu18.04.tar
    6. 设置默认登录用户为安装时用户名 (这里的Username替换成您之前的用户名);
    Ubuntu1804config --default-user Username
    7. 删除tar文件(可选):
    deld:\ubuntu18.04.tar
    再强调下哈,上面例子是一个18.04版本的,20.04把下面指令中的 ‘18.04’ 换成‘20.04’即可😊, 以后的新版本Ubuntu同理


    好了,我们搬完家啦!在搬家目录下应该就可以看到ext4.vhdx了,之前玩过虚拟机的小伙伴应该对这个文件格式很熟悉,下面我们要对这个vhdx扩容啦


    我们强烈推荐小伙伴们在安装前修改硬盘尺寸,毕竟到了Vitis/Vivado安装界面被提示安装空间不够回头再来扩容还挺麻烦的。
    对于修改虚拟硬盘尺寸,微软已经给出了解决方案,参见
    https://docs.microsoft.com/en-us/windows/wsl/vhd-size
    A. 首先是关闭当前WSL
    wsl --shutdown
    B. 如果没有移动过安装位置,可以按上面微软文档寻找ext4.vhdx文件的问题,不过我们是非常清楚的,比如我们当前就是”d:\ubuntu1804\ext4.vhdx ”
    C. 然后管理员模式打开Windows下命令行工具,用DISKPART工具扩大分区:
    首先输入diskpart , 回车;
    随后在DISKPART 下,“Select vdisk file="”;
    比如当前就是 “Select vdisk file=”d:\ubuntu1804\ext4.vhdx ”;
    选择后,可以先用detail vdisk确认当前尺寸:


    然后用 “expand vdisk maximum=<以MB为单位的目标尺寸> ”来设定大小
    比如我们设一个接近1.2T的,那就输入1200000 :
    expand vdisk maximum=1200000
    随后输入exit退出diskpart
    D. 这时候重新进入WSL, 虽然虚拟硬盘已经修改为1.2T了,但是Linux的分区其实还没修改,我们还要在Linux下扩容下分区:
    首先来确认一下分区名称,输入以下两句指令:
    sudo mount -t devtmpfs none /dev
    mount | grep ext4
    (此时你可能会看到如下警告:“mount command:"/dev: none already mounted on /dev." This message can safely beignored. ”这个警告可以不管)。
    记录下/dev/sdX 的名字(X可能为不同字母,本例为/dev/sdb )。
    随后用resize2fs在逻辑上扩容
    sudo resize2fs /dev/sdb <以MB为单位的目标>M
    比如本例是:
    sudo resize2fs /dev/sdb 1200000M
    结果如下,可以看到修改成功。



  6. 和Windows 交换文件

    WSL最方便的地方之一当然就是和Windows交换各种文件啦,这是以共享文件夹形式存在的,直接在运行中输入”\\wsl$ ” 即可。如下图所示



  7. 安装桌面环境

    终于到了重点啦,我们全面的一通操作,就是为了使用WSL2的图像界面嘛。
    Ubuntu 常用可选的图像环境有Gnome, KDE, Xfce4等等,这里推荐Gnome 或者 Xfce4Windows下终端工具我们推荐流行的MobaXterm:
    如果是Gnome:
    在Ubuntu登录后,运行:
    sudoapt-get install ubuntu-gnome-desktop
    然后我们可以使用Gnome的文件管理器,Nautilus
    运行:
    nautilus&
    效果如下图, 后面的操作各位就很熟悉啦:



    如果是Xfce4:
    在Ubuntu登录后,运行:
    sudoapt-get install xfce4
    运行:
    startxfce4&
    效果如下图:



  8. 安装Xilinx工具

    后续的Vitis / Vivado / Petalinux 的安装和Windows下都比较类似了:




    关于Petalinux ,当然要在安装前先安装各支持库:
    sudoapt-get install gcc


    然后在安装过程中按照提示查缺补漏即可:
    sudoapt-get install xterm autoconf libtool texinfo zlib1g* gcc-multilibbuild-essential ncurses* zlibc
    唯一说明的是zlib1g需要加i386库:
    sudodpkg --add-architecture i386
    sudoapt-get update
    sudoapt-get install zlib1g:i386
    最后,按老习惯,安装后编译一个官方板卡的BSP庆祝一下吧😊!




如果您在WSL运行Vitis/Vivado/Petalinux方面有问题,欢迎联系:

simonyang@comtech.com.cn

charlesxu@comtech.com.cn


FPGA开发圈 这里介绍、交流、有关FPGA开发资料(文档下载,技术解答等),提升FPGA应用能力。
评论
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 123浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 172浏览
  • 本文介绍编译Android13 ROOT权限固件的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。关闭selinux修改此文件("+"号为修改内容)device/rockchip/common/BoardConfig.mkBOARD_BOOT_HEADER_VERSION ?= 2BOARD_MKBOOTIMG_ARGS :=BOARD_PREBUILT_DTB
    Industio_触觉智能 2025-01-08 00:06 100浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 147浏览
  • 「他明明跟我同梯进来,为什么就是升得比我快?」许多人都有这样的疑问:明明就战绩也不比隔壁同事差,升迁之路却比别人苦。其实,之间的差异就在于「领导力」。並非必须当管理者才需要「领导力」,而是散发领导力特质的人,才更容易被晓明。许多领导力和特质,都可以通过努力和学习获得,因此就算不是天生的领导者,也能成为一个具备领导魅力的人,进而被老板看见,向你伸出升迁的橘子枝。领导力是什么?领导力是一种能力或特质,甚至可以说是一种「影响力」。好的领导者通常具备影响和鼓励他人的能力,并导引他们朝着共同的目标和愿景前
    优思学院 2025-01-08 14:54 82浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 238浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 92浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 128浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 161浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 113浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 211浏览
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 80浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦