Jump to content
  • 0

Zybo Z7-10 Using Yocto instead of Petalinux


WyattWilhlem
 Share

Question

Hey everyone,

Let me start off by saying I know nothing of embedded Linux. I recently decided it would be beneficial for me to learn a little more about it and this thing called Yocto. I decided to pull out the ol' Zybo Z7-10 development board I had and get to work.

I followed some tutorials on building Linux with yocto for the Zybo and Zedboards. I assumed that the meta-xilinx layer machine "zybo-zynq7" would work for my Z7-10 board. However I think I was wrong about this as this machine refers to the original zybo board(?). My attempt to boot with the built images on SD yielded no success. Presumably because the bsp built was for that of the Zybo board and not the Zybo Z7-10.

I guess I should say here that I really don't want to use PetaLinux. Mainly because Yocto is more widely used for other devices than Xilinx's Petalinux. The more layers of Xilinx tooling abstraction take me farther away from learning more general embedded Linux "principles".

I've looked around for other yocto layers specifically for the Z7-10 and I found the digilient Zybo Z7-10 Petalinux BSP project on github that appeared to have the meta-user layer in it appropriate for my board.

https://github.com/Digilent/Petalinux-Zybo-Z7-10

I (maybe naively) tried to add this meta-user layer to my existing yocto project and ran into some issues related to specifying a machine name.

I figured that what I was doing was probably really silly and looking around on these forums I found posts that indicated trying to build linux with yocto for the Zybo Z7-10 board was a difficult thing to do. More difficult than simply adding a layer ?

So some questions:

1). Something tells me that the meta-user layer in the digilent petalinux project is/could be useful to me. I know Petalinux uses Yocto somehow on the backend so maybe this layer is still relevant in a standalone yocto project. Is this the case?  What would this layer be "missing" in order to build the kernel?

2). Maybe someone has done this before and is hiding in the depths of the internet? Maybe they did something similar? I would appreciate the links.

3). What general knowledge should I go about acquiring that would be of help? (embedded linux, yocto, or Zynq)

 

Thank you for your help

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Quote

My attempt to boot with the built images on SD yielded no success

what files have you placed on SD from bulid/tmp/deploy/images ?
Did you build a BOOT.BIN using xilinx bootgen?

Link to comment
Share on other sites

  • 0
16 hours ago, Ionel said:

what files have you placed on SD from bulid/tmp/deploy/images ?
Did you build a BOOT.BIN using xilinx bootgen?

I can see that the xilinx boot gen is included in the meta-xilinx layer. But I did not make any changes related to this.

A BOOT.bin was built and I included it on the SD card.

I included the kernel image, the file system, the zynq-zybo.dtb (device tree), u-boot.img, uEnv.txt

Edited by WyattWilhlem
Link to comment
Share on other sites

  • 0

There is a heavy work that petalinux handles for you. If you use yocto you may have to do it manually.
Going step by step should help example : enable fsbl debug in your layer then watch on serial port
`meta-user` and `meta-plnx-generated` are generated by petaliunx based on VIVADO project(hdf or xsa) and some assumptions DISTRO == "petaliunx", MACHINE == "plnx-zynq" or MACHINE == "plnx-zynqmp", etc.
Starting with petalinux 2020.1 things were simplified example no more `meta-plnx-generated`.

Edited by Ionel
Link to comment
Share on other sites

  • 0
7 hours ago, Ionel said:

There is a heavy work that petalinux handles for you. If you use yocto you may have to do it manually.
Going step by step should help example : enable fsbl debug in your layer then watch on serial port
`meta-user` and `meta-plnx-generated` are generated by petaliunx based on VIVADO project(hdf or xsa) and some assumptions DISTRO == "petaliunx", MACHINE == "plnx-zynq" or MACHINE == "plnx-zynqmp", etc.
Starting with petalinux 2020.1 things were simplified example no more `meta-plnx-generated`.

The FSBL debug is definitely something I'll have to go back and try for yocto.

I've began to follow a Xilinx tutorial they have on their wiki for building the Linux kernel from scratch without yocto/petalinux. This actually appears the best way for me to learn what's necessary. Here's the build steps wiki: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842481/Build+kernel

Do you think this guide is sufficient and applicable to the Zybo Z7-10?

Link to comment
Share on other sites

  • 0

This one is yocto specific.

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841883/Yocto

And this one:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841862/Install+and+Build+with+Xilinx+Yocto
 

In meta-xilinx/meta-xilinx-bsp/conf/machine/ you can find zybo-zynq7.conf to use as a machine/starting point
 

Also add the hdf/xsa
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/59605045/Adding+an+HDF+to+a+Xilinx+Yocto+Layer

Edited by Ionel
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...