top of page

ZCU102 Development Using 2018.2 on a Linux VM Running on Windows: Part 2

Updated: May 15, 2023

This post is part 2 of a series that contains everything you need to develop software for the ZCU102 using a Linux VM running on Windows 7.

Part 1 @ [link] Covered:

  • The steps for installing an Ubuntu 16.04.3 ISO on a Oracle VirualBox VM and

  • Installing Xilinx Vivado 2018.2

Part 2 Covers:

  • Installing PetaLinux 2018.2 onto the Ubuntu 16.04.3 VM,

  • Building a custom image for the ZCU102's A53 cores and

  • Running the image on to the board over JTAG

Before you Continue

If you haven't completed part 1, please complete it @ [link].


All of these commands were run in a VM that was running on Windows 7 SP1 running on a T460. See [link] for more details.

Installing PetaLinux

1. Type sudo mkdir -p /opt/pkg/petalinux

2. Type sudo chmod -R a+rwX /opt/pkg/petalinux

3. Type sudo chown -R zpfeffer:zpfeffer /opt/pkg/petalinux

4. Type cd ~/xpkgs

5. Type ./ /opt/pkg/petalinux

Note: Step 5 will display:

INFO: Checking installer checksum... for a few minutes, then display:

INFO: Extracting PetaLinux installer... for a few minutes, then display:

6. Press Enter

7. Press PgDn (or press G to skip to the end) and press q

8. At Do you accept Xilinx End User License Agreement? [y/N] > type y

Note: at this point you should be presented with the WebTalk Terms and Conditions

8. Press q

9. At the Do you accept Webtalk Terms and Conditions? [y/N] > type y

Note: at this point you should be presented with the Third_Party_Software_End_User_License_Agreement

10. Press PgDn (or press G to skip to the end) and press q

11. At the Do you accept Third Party End User License Agreement? [y/N] > type y

Note: at this point you'll see:

...for a few minutes. Then INFO: Checking PetaLinux installer integrity... and INFO: Installing PetaLinux SDK to "/opt/pkg/petalinux/." followed by

You have succeeded if the last line reads INFO: PetaLinux SDK has been installed to /opt/pkg/petalinux/.

Change /bin/sh to bash

PetaLinux Tools 2018.2 requires /bin/sh to point to bash. Ubuntu 2018.2 points /bin/sh points to dash:

To change /bin/sh to bash:

1. Type sudo ln -sf bash /bin/sh

2. Test it by typing ls -l /bin/sh

You should see:


1. You can reverse this by typing sudo ln -sf dash /bin/sh

2. If you don't do this, PetaLinux Tools will output this in the next step:

Run PetaLinux

1. Open a new terminal

2. Type source /opt/pkg/petalinux/

3. You should see:

Changes to the Environment

Here were the environment differences I saw. I also listed how I generated the differences:

Summary of env Changes

Variables Added:



Paths added (listed in order):










Create a PetaLinux Tools Project Based on the 2018.2 ZCU102 BSP

1. Type mkdir ~/plxprjs

2. Type cd ~/plxprjs/

Note: You can create more projects in this directory, i.e. you'll cd into ~/plxprjs/ and type other petalinux-create for other projects.

3. Type petalinux-create -t project -s ~/xpkgs/xilinx-zcu102-v2018.2-final.bsp

You'll see:

How Long?

On my machine the command took a little over 2 min:

Create Another Project

To try out creating another project in the same directory type petalinux-create -t project -s ~/xpkgs/xilinx-zcu102-v2018.2-final.bsp -n alt_xilinx-zcu102-v2018.2-final in ~/plxprjs

You'll see:

Just type rm -rf alt_xilinx-zcu102-v2018.2-final/ to delete it. The other project will not be impacted.

Build the Project

1. Type cd xilinx-zcu102-2018.2/

2. Type petalinux-build

You'll see:

How Long?

On my machine the command took over 6 hours (see previous output)

Build Warning

The build warning warning: %post(sysvinit-inittab-2.88dsf-r10.zcu102_zynqmp) scriptlet failed has been fully explored at [link]. It can be ignored.

Boot the Build

Connect to JTAG

See Connecting Vivado to Digilent's USB-to-JTAG through VirtualBox at [link] to connect to JTAG.

Bring up Minicom

See Arg! Nothing I type shows up in the Minicom console! at [link]


1. Type petalinux-boot --jtag --u-boot -v


  • PetaLinux Tools Documentation: Reference Guide, UG1144 (v2018.2) June 6, 2018 at [link]

  • Xilinx logo found via at [link]

  • Free Online HTML Escape / Unescape Tool - at [link]

  • Effective Linux Development Using PetaLinux Tools 2017.4 at [link]

  • ZCU102 Board User Guide (UG1182) at [link]

  • Many Xilinx Zynq UltraScale+ MPSoC ZCU102 Docs at [link]

  • HTML Table Generator at [link]

  • ZCU102 BOM ( at [link] (sign-in required)

  • ZCU102 Board Schematics ( at [link] (sign-in required)

  • ZCU102 Software Install and Board Setup released June 2018 at [link]


Try to Build Outside a Project

Note: if you type petalinux-build in the ~/plxprjs directory you'll see:

bottom of page