I'm trying to create and configure a Petalinux project for the ZCU106 development board. The creation of the project is successful. The general configuration also doesn't prompt any warnings. But, when I run the kernel configuration, it prompts an error stating that the machine name I've provided is invalid. The steps are as below:
1-> Creating the project
petalinux-create --type project --template zynqMP --name project_zcu_106
2-> Configuring the project with the XSA file
petalinux-config --get-hw-description /path/to/file.xsa
3-> Then I set the DTG Settings → (template) MACHINE_NAME and Yocto Settings → YOCTO_MACHINE_NAME as zcu106-reva
and exit the configuration
4-> Lastly, I try to run the configuration for the Linux kernel and it fails.
petalinux-config -c kernel
MACHINE=zcu106-reva is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.
I was doing the same steps on Petalinux 2018.3 and 2020.2. There was no problem. What could be the problem this time? How should I advance?
Alright, I've found the problem.
The DTG Settings → (template) MACHINE_NAME
and Yocto Settings → YOCTO_MACHINE_NAME
are two different things.
The DTG Settings → (template) MACHINE_NAME
stands for the BSP files that you adjust for different devices.
On the other hand, the Yocto Settings → YOCTO_MACHINE_NAME
represents the configuration file (<machine name>.conf)
that the Yocto will use to configure the system. Here is an explanation that describes it from the Yocto Project's mailing list:
The MACHINE is simply a pointer to a machine-specific configuration file. So if you set your
MACHINE=foo
, then somewhere in your bblayer path(s) you need to make sure that aconf/machine/foo.conf
is available. Then it will use that.
So, I only changed it to zynqmp-generic
and it works.