Zybo – Embedded Linux Hands-On Tutorial

Do you think Linux is great? Did you love our Embedded Linux Tutorial for the Zedboard? Or do you have a Zybo board and need a project?

Zybo board.

Then check out my Embedded Linux Hands-On Tutorial  for the Zybo Board. An official copy hasn’t been released on our website yet, but we didn’t want you to have to wait, so we created a fully functional draft via Instructables.


In this tutorial you will learn about the hardware in the Zybo Board, Linux Kernel, bootloaders, pre-built file-images, drivers, and device trees.


If you don’t have a Zybo board, you can purchase one here.

Be the 1st to vote.

9 Comments on “Zybo – Embedded Linux Hands-On Tutorial”

  1. The kernel pointed to by the tutorial is lacking the zynq-zybo.dts file.
    git clone https://github.com/DigilentInc/Linux-Digilent-Dev.git
    After a lot of frustrations I found that this master-next kernel has the required
    zynq-zybo.dts file present.
    git clone -b master-next https://github.com/DigilentInc/Linux-Digilent-Dev.git
    I could not find the zynq_ZYBO_config file when compiling the u-boot from
    git clone https://github.com/DigilentInc/u-boot-Digilent-Dev.git but I found
    zynq_zybo_config present in
    git clone -b master-next https://github.com/DigilentInc/u-boot-Digilent-Dev.git

  2. When experimenting with ZYBO linux I had debian arm root filing system (leftover from BeagleBoneBlack experiments) on the second partition of the SD card. I was able to run the full debian on ZYBO board by doing following: mount /dev/mmcblk0p2 /mnt
    mount –bind /dev/ /mnt/dev
    mount –bind /proc /mnt/proc
    mount –bind /dev/pts /mnt/dev/pts
    mount –bind /sys /mnt/sys
    chroot /mnt
    I could then take advantage of all the debian vast repositories.
    Going back to Digilent’s busybox You do following:
    umount /mnt/sys
    umount /mnt/proc
    umount /mnt/dev/pts
    umount /mnt/dev
    umount /mnt
    The debian comes from
    wget -c https://rcn-ee.net/deb/barefs/wheezy/debian-7.5-bare-armhf-2014-07-07.tar.xz

  3. Thanks for your comment! I apologize for any confusion I may have caused by being unclear.

    I had a small note in the beginning of the instructable to use the master-next branch, but I have added it to each step that requires it and have also made it more obvious on the official document.

    Let me know if there is any more confusion.

  4. The ramdisk8M.gz from digilent web site and also the busybox that comes preinstalled on ZYBO is not setting up the internet.
    You have to issue following commands (assuming you plug the ZYBO into a router at to make it work:
    ifconfig eth0 192.168.1 up
    route add default gw eth0
    Then you have to specify nameserver by creating file
    /etc/resolv.conf containing:
    After this you should be able to do ping.google.com
    and chroot to the debian full linux to be able to compile
    and develop natively on ZYBO itself.

Leave a Reply

Your email address will not be published. Required fields are marked *