Skip to content

Latest commit

 

History

History
111 lines (93 loc) · 4.82 KB

README.building.md

File metadata and controls

111 lines (93 loc) · 4.82 KB

Build Instructions

This section describes how to get your build host ready to work with meta-xilinx layers.

The following instructions require OE-Core meta and BitBake. Poky provides these components, however they can be acquired separately.

Pre-requisites: Refer Preparing Build Host documentation.

  1. Create a project directory.
$ mkdir sources
$ cd sources
  1. Clone the poky, openembedded and amd xilinx repository.

Note:

  • release_branch: refers to upstream stable release branch.
  • rel-version: refers to amd xilinx release version.
$ mkdir sources
$ git clone -b <release-branch> https://git.yoctoproject.org/poky.git
$ git clone -b <release-branch> https://git.openembedded.org/meta-openembedded.git
$ git clone -b <release-branch> https://git.yoctoproject.org/git/meta-virtualization
$ git clone -b <rel-version> https://github.com/Xilinx/meta-xilinx.git --recurse-submodules
$ git clone -b <rel-version> https://github.com/Xilinx/meta-xilinx-tools.git

Note:

  • When meta-xilinx layer is cloned using git tool by default it will clone gen-machine-conf repo as submodules, If you don't need to clone gen-machine-conf repo then remove --recurse-submodules option.
  • Skip this step if you are using yocto-manifests https://github.com/Xilinx/yocto-manifests
  1. Initialize a build environment using the oe-init-build-env script.
$ source poky/oe-init-build-env
  1. Once initialized configure bblayers.conf by adding dependency layers as shown below using bitbake-layers command.

Note: From step 3 by default meta-yocto-bsp will be included in bblayers.conf file and this can be removed using $ bitbake-layers remove-layer meta-yocto-bsp command.

$ bitbake-layers add-layer ./<path-to-layer>/meta-openembedded/meta-oe
$ bitbake-layers add-layer ./<path-to-layer>/meta-openembedded/meta-python
$ bitbake-layers add-layer ./<path-to-layer>/meta-openembedded/meta-filesystems
$ bitbake-layers add-layer ./<path-to-layer>/meta-openembedded/meta-networking
$ bitbake-layers add-layer ./<path-to-layer>/meta-virtualization
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-microblaze
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-xilinx-core
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-xilinx-standalone
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-xilinx-bsp
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-xilinx-vendor
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx/meta-xilinx-contrib
$ bitbake-layers add-layer ./<path-to-layer>/meta-xilinx-tools

Note: We recommend using meta-xilinx-tools, the version that is built as standalone may not work on many boards as it does not know the board configuration.

  1. Set hardware MACHINE configuration variable in /build/conf/local.conf file for a specific target which can boot and run the in the board or QEMU.
MACHINE = "<target_machine_name>"
  1. For NFS build host system modify the build/conf/local.conf and add TMPDIR path as shown below. On local storage $TMPDIR will be set to build/tmp
TMPDIR = "/tmp/$USER/yocto/release_version/build"
  1. Modify the build/conf/local.conf file to add wic image to default target image as shown below.
IMAGE_FSTYPES += "wic"
WKS_FILES = "xilinx-default-sd.wks"
  1. Build the qemu-helper-native package to setup QEMU network tap devices.
$ bitbake qemu-helper-native
  1. Manually configure a tap interface for your build system. As root run /sources/poky/scripts/runqemu-gen-tapdevs, which should generate a list of tap devices. Once tap interfaces are successfully create you should be able to see all the interfaces by running ifconfig command.
$ sudo ./<path-to-layer>/poky/scripts/runqemu-gen-tapdevs $(id -u $USER) $(id -g $USER) 4 tmp/sysroots-components/x86_64/qemu-helper-native/usr/bin
  1. Build an OS image for the target using bitbake command.

Note: Refer .//conf/templates/default/conf-notes.txt for available target image-name. e.g. core-image-minimal or petalinux-image-minimal

$ bitbake <target-image>
  1. Once complete the images for the target machine will be available in the output directory ${TMPDIR}/deploy/images/${MACHINE}/.

  2. Follow Booting Instructions