Lab 1: Hello World on the PYNQ-Z2 Board


In this lab you will learn how to use Linux, how to access the PYNQ board, and how to build programs on the PYNQ board.


To fully pass off this lab, you will need to perform all of the required setup activities listed below, including tutorials on Linux and Git. Once you have done these you can complete the Lab 1 quiz in learning suite.

The last setup step involves compiling and running a Hello, World! application on the PYNQ board. You need modify this program as described below, and submit your code.


This page describes how to set up your computer and PYNQ board for the labs in this class. This takes some time, but it is essential that you get all of these things working before moving on the later labs.

If you run into issues, post on Slack. Do not skip any setup steps. For convenience, these setup steps are also shown in the sidebar.

After you have completed these steps, do the following:

  • Modify the Hello, World application so that it prints Hello, World from <your name>!
  • Complete the Lab 1 Learning Suite quiz, titled Linux/Git Tutorial.
  • Submit your code.


We need to know your Github repository URL. Complete the Learning Suite “quiz” titled “Github URL”. Don’t forget to do this!

Follow the instructions on the Submission page.


Study Questions

These study questions are provided as a guide but are not a complete test of your knowledge. You are responsible for completely learning the tutorial on your own. If there is something in the tutorial that you do not initially understand, search out the internet to try and understand it. Only ask the TAs as a last resort.

  • How are files organized?
  • How do you list the contents of a directory?
  • How do you ‘move’ to another directory?
  • How do you print out the name of your current directory?
  • What is the difference between a relative and absolute path?
  • What is tab completion?
  • How does Linux treat file extensions differently than Windows or MacOS?
  • Is Linux case sensitive?
  • How do we list all of the hidden files in a directory?
  • How can you find out everything about a Linux command?
  • How do you make a new directory?
  • How do you delete a directory? Note that Linux can be unforgiving when deleting files. Almost nothing in Linux is ‘undoable’.
  • What command do you use to find out more about a file?
  • How do we make a copy of a file? How do we make a copy of a directory?
  • How do we move a file or directory?
  • How do we rename a file or directory?
  • Learn how to use a command line text editor. You may demonstrate the use of either to the TAs. You must know how to use the editor sufficient to create and edit files.
  • Understand how to use wildcards in Linux commands.
  • Understand file permissions and how to view and modify them.
  • Understand how to use all of filters described in the tutorial (you don’t need to worry about awk/diff/sed for now).
  • Understand grep/egrep and basic regular expressions. You should be able to understand how small modifications to the tutorial examples will change the output. You can use the section directly under the Regular Expression Overview as a cheat-sheet during pass off.
  • Understand the three basic streams associated with each process and understand how to pipe the output from one stream to another.
  • Know how to list and kill currently running processes.
  • Also be familiar with basic Git commands.