QEMU for Xilinx安装教程--最新测试成功

环境

ubuntu16.04

vivado2017.04和这个应该没关系。

前言

QEMU类似于VMware的和VirtualBox的,也是在一个平台里虚拟另一个平台的虚拟机之类的东东。但是QEMU可以虚拟出一个架构完全不一样的平台,举个栗子,可以在x86的架构的Linux的下虚拟出现ARM架构的嵌入式Linux,这也就是接下来要做的。Xilinx  的FPGA这些年很喜欢嵌入一个个软核或者硬核处理器,低端一点的产品可以用MicroBlaze软核,高端一点的例如ZYNQ则直接在里面加入两个的Cortex-A9硬核。  所以现在的FPGA基本都能跑操作系统的。那问题来了,FPGA开发板很贵,上万块钱一个,很多人买不起(例如我),那在缺少板子的情况下,怎么验证我这个设计能不能用呢?赛灵思在Github的上了QEMU,并且进行了修改,用于虚拟出一个ZYNQ或者MicroBlaze,大家可以直接看http://www.wiki.xilinx.com/QEMU

但是确实有点区别,有坑


步骤

  • 首先要有一个的Linux平台的主机(主机),比如Ubuntu的什么的。我用的是VMware的虚拟机。
  • 安装git。 $ sudo apt-get install git 
    • 如果报错说找不到git的,那就是源没有升级到最新,只需$ sudo apt-get update然后在安装即可。
  • 选一个安装路径,在该路径下 $ git clone git://github.com/Xilinx/qemu.git
  • $ cd qemu 注意,接下来所有操作都是在此路径下的。
  • 安装各种支持包 
    • $ sudo apt install libglib2.0-dev libgcrypt20-dev autoconf automake libtool
    • $ sudo apt-get install gawk openssl libssl-dev libncurses5-dev 这一行官方教程没有,但是如果不装,会报错说缺这三个东西。这三个分别对应GAWK,OpenSSL的,ncurses的。
  • 下载子模块 $ git submodule update --init  dtc
  • 官网是这样讲,但是这里差一个东西,pixman,有人说 $git submodule update pixman 其实报错的,需要如下:
  • sudo apt-get安装libpixman-1-dev
  • 配置QEMU 
    • $ ./configure --target-list="aarch64-softmmu,microblazeel-softmmu" --enable-fdt --disable-kvm
  • make
  • 到这,QEMU就装好了,我们试一下将它跑起来吧。
  • 我们都知道,要运行一个虚拟平台,需要一个镜像文件(image file),举个栗子,我们跑一下Zynq7000试下吧。
  • http://www.wiki.xilinx.com/Zynq+2016.2+Release  ,在下载处下载对应型号的板子的压缩包。举个栗子,下载2016.2-zc706-release.tar.xz,并放到某个路径,例如qemu文件夹下。
  • 解压  $ tar xf 2016.2-zc706-release.tar.xz 注意这里不同板子添加新库存型号需要替换掉“zc706”,反正名字就是下载下来的那个压缩包
  • 解压之后应该会产生一个叫“zc706”的文件夹。
  • $ ./aarch64-softmmu/qemu-system-aarch64 \ 
    -M arm-generic-fdt-plnx -machine linux=on \ 
    -serial /dev/null -serial mon:stdio -display none \ 
    -kernel zc706/uImage -dtb zc706/devicetree.dtb --initrd zc706/uramdisk.image.gz
     启动QEMU,内核镜像用的是的uImage,设备树文件是devicetree.dtb
  • 到这里你应该能看见: 
    zc706-zynq7 login: 
    用户名root,没有密码,登陆后应该能看见: 
    root@zc706-zynq:~# 
    也就是,在Linux终端里出现了另一个Linux终端...这就是基于ARM架构的,ZYNQ特有的Cortex-A9内核上,跑着的嵌入式Linux的操作系统。安装成功。 
    要退出QEMU,需要先按Ctrl + A键,然后按X


你可能感兴趣的:(zynq,qemu)