Running Petalinux based linux system on Zedboard via jtag and SD card

Summary: This short tutorial demonstrates how to run and test the first petalinux based customized linux system on Zedboard via jtag and SD card.

Implementation: This tutorial is the continuation of the first lecture. It thus assumes that the reader has already created, configured and built a petalinux based customized linux system by using petalinux-create, petalinux-config, and petalinux-build commands, respectively. After building the linux system, it can be run and tested on Zedboard via JTAG. To this end, turn on and set the configuration jumpers of the zedboard into JTAG boot mode (see the figure given below).

Then, run the following command from the project directory of petalinux:

  • petalinux-boot –jtag –prebuilt 3   

The command downloads the newly built linux solution into zedboard. Lastly, connect the serial  port of zedboard with the PC and configure its baud rate to 115200. The serial port allows us to do further actions after the linux system is up.

Second part of the tutorial explains the steps necessary to run the linux system on zedboard via SD card as follows.

  • Generate Boot Image which usually contains a first stage bootloader image, FPGA bitstream (optional) and U-Boot. The syntax of the command used to generate the boot image is following:
    • petalinux-package –boot –fsbl <FSBL image> –fpga <FPGA bitstream> –u-boot
  • Prepare SD card for the linux system
    • Insert and unmount all the partitions of the SD card of size 8 Ghz by using umout command:
      • sudo umount /media/<location of mount>
    • Delete the existing partitions and create two new partitions with the first partition of size 1GHz and remaining size for the other partition.
      • sudo fdisk /dev/<name of the directory>
    • After having two partitions, Format the former by using FAT and the later by using ext4. The syntax of the commands is following
      • mkfs.vfat -F 32 -n BOOT /dev/<first partition>
      • mkfs.ext4 -L rootfs /dev/<second partition>  
  • Copy the the necessary files into first partition of SD card
    • cp images/linux/BOOT.BIN /media/<first partition>
    • cp images/linux/image.ub /media/<first partition>
  • Copy the the necessary files into second partition of SD card
      • cp images/linux/rootfs.cpio /media/<second partion>
  • Insert the SD card into SD card slot of zedboard and Configure it into  SD card boot mode (see figure given below).

Lastly, connect the serial  port of zedboard with the PC and configure its baud rate to 115200. The serial port allows us to do further actions after the linux system is up.

The video given below also explains all the steps needed to run and test first Petalinux based linux solution on Zedboard via jtag and SDcard.

 

 

Installation of Petalinux and running the first Petalinux based linux system on QEMU

Summary: This short tutorial, first, defines the petalinux, board support packages (BSP) and quick emulator (QEMU) used in zynq 7000 linux programming. It, secondly, describes the steps necessary to install petalinux on Ubuntu PC. Finally, an example on how to run and test the petalinux based linux system in QEMU is demonstrated.

1.  Definitions of Petalinux, BSP and QEMU: Petalinux, which is based on the yocto project, is a  Xilinx development toolchain which provides us everything necessary to build, test, customize and deploy an embedded linux system. Furthermore, it is an embedded linux distro maintained by Xilinx and targets Xilinx System on Chip (SoC) designs. It also has an integrated full system quick emulator (QEMU).  Developers can test and verify the customized linux solution on QEMU before deploying it on the actual hardware. Additionally, Xilnix also provides Board Support packages (BSP) for various Xilinx evaluation boards. A BSP describes the various hardware features supported by the corresponding evaluation board. Petalinux uses these BSPs to configure the kernel as per specification defined in them.  

2. Installation of Petalinux: The steps used to install the petalinux on Ubuntu 18.04.4 LTS are summarized as follow:

  • Download the petalinux version of your choice from the link (click here for the link). For example, I am using petalinux v2017.4.
  • Change the access permission of the download files by executing the following command. sudo chmod +x <download path>/petalinux-v2017.4-final-installer.run
  • Petalinux tool requires a number of standard development tools and libraries. For your convenience, I have listed all these dependencies here. sudo apt install tofrodo,  iproute, gawk, gcc, git-core, make, net-tools, ncurses-dev, libncurses5-dev, zlib1g-dev, flex, bison, lib32z1, lib32ncurses5, lib32bz2-1.0, ia32gcc1, lib32stdc++6, libselinux1,  libssl-dev,  libssl1.0-dev.
  •  Change the access permission of the location where you want to install the petalinux with this command. sudo chmod 755 <installing location for petalinux>
  • Run sudo chmod 755 /tmp command to change the access permission of tmp folder.
  • Install the petalinux with the command. <download path>/petalinux-v2017.4-final-installer.run <installing location for petalinux>
  • Run the command source <installing location for petalinux>/settings.sh
  • If you get the WARNING: /bin/sh is not bash! After running this command, please run the following subset of commands.
    • chsh -s /bin/bash.
    • Log out and then run these commands.
    • sudo rm /bin/sh.
    • sudo ln -s /bin/bash /bin/sh.
  • Lastly, upon running echo $PETALINUX command, it will give you the installed path of the petalinux.3. Running the first Petalinux based linux system on Qemu: In this tutorial, Zedboard is chosen as a Xilinx evaluation board. The steps involved in testing first petalinux based linux system on QEMU are listed below:
  • Download the corresponding BSP for Zedboard from Xilinx official website (click here for the link).
  • create a basic project template by using petalinux-create command.  petalinux-create -t project -s <location of BSP>/Avnet-Digilent-ZedBoard-v2016.2-final.bsp
  • The project can be customized by using The petalinux-config command. For our special case, we don’t need to do any customization. Run petalinux-config and select exit.
  • Builds either the entire embedded Linux system or a specified component of the Linux system by using petalinux-build command. for our example, please run petalinux-build.

After petalinux-build command, the linux solution is ready to deploy into hardware. We however first run the solution on QEMU to verify the functionality of the newly built linux system. petalinux-boot –qemu command is used to run the linux system on QEMU. after running the petalinux-boot –qemu –kernel, you need to login with following credential: username: root, password: root. The video given below explains all the steps needed to install and run first Petalinux based linux solution on QEMU.