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].
Machine
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 ./petalinux-v2018.2-final-installer.run /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:
Notes
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/settings.sh
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:
PETALINUX_VER=2018.2
PETALINUX=/opt/pkg/petalinux
Paths added (listed in order):
/opt/pkg/petalinux/tools/linux-i386/petalinux/bin
/opt/pkg/petalinux/tools/common/petalinux/bin
/opt/pkg/petalinux/tools/linux-i386/gcc-arm-none-eabi-r5/bin
/opt/pkg/petalinux/tools/linux-i386/microblaze-xilinx-elf/bin
/opt/pkg/petalinux/tools/linux-i386/microblazeel-xilinx-linux-gnu/bin
/opt/pkg/petalinux/tools/linux-i386/gcc-arm-none-eabi/bin
/opt/pkg/petalinux/tools/linux-i386/gcc-arm-linux-gnueabi/bin
/opt/pkg/petalinux/tools/linux-i386/aarch64-none-elf/bin
/opt/pkg/petalinux/tools/linux-i386/aarch64-linux-gnu/bin
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]
Boot
1. Type petalinux-boot --jtag --u-boot -v
References
PetaLinux Tools Documentation: Reference Guide, UG1144 (v2018.2) June 6, 2018 at [link]
Xilinx logo found via https://twitter.com/xilinxinc at [link]
Free Online HTML Escape / Unescape Tool - FreeFormatter.com 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 (zcu102-bom-rdf0404.zip) at [link] (sign-in required)
ZCU102 Board Schematics (zcu102-schematic-source-rdf0403.zip) at [link] (sign-in required)
ZCU102 Software Install and Board Setup released June 2018 at [link]
Other
Try to Build Outside a Project
Note: if you type petalinux-build in the ~/plxprjs directory you'll see: