Skip to content
forked from OFS/meta-ofs

Open FPGA Stack (OFS) software layer for Yocto

License

Notifications You must be signed in to change notification settings

sophimao/meta-ofs

 
 

Repository files navigation

Open FPGA Stack (OFS) software layer for Yocto

This layer provides the Linux DFL kernel and the OPAE SDK for the Yocto Project*.

Getting started with Yocto

If you are new to the Yocto Project*, start with the overview and concepts manual, with more detailed information available in the reference manual and the Linux kernel development manual. To prepare a machine for building Yocto images, see the system requirements, in particular the required packages for the build host. The variables glossary explains the common variables used in the build system.

Building the IOTG Yocto-based ESE example

This example takes the IOTG Yocto-based ESE BSP as a basis and substitutes the Linux DFL kernel including the latest DFL drivers for FPGA devices along with the OPAE SDK user space. The image targets x86_64 SoC FPGA devices but should boot on most UEFI-based machines.

The build needs more than 100 GiB of disk space. As a reference point, on a system with two Intel(R) Xeon(R) E5-2699 v4 for a total of 44 CPU cores, the initial, non-incremental build takes less than an hour of wall time.

The repo tool is needed to clone the various Yocto layer repositories used in this example.

Create and initialize the source directory:

mkdir ofs-yocto && cd ofs-yocto
repo init -m examples/iotg-yocto-ese/manifest.xml https://github.com/OFS/meta-ofs

Fetch repositories and update the working tree:

repo sync -j 16

Build packages and create an image:

cd build
. ../intel-embedded-system-enabling/oe-init-build-env .
bitbake mc:x86-2021-minimal:core-image-full-cmdline

The resulting GPT disk image is available in uncompressed (.wic) and compressed form (.wic.gz) in build/tmp-x86-2021-minimal-glibc/deploy/images/intel-corei7-64/.

The image type core-image-full-cmdline includes the familiar GNU core utilities, as opposed to core-image-minimal which uses BusyBox instead.

The example build configuration files under build/conf/ are symlinked from examples/iotg-yocto-ese/. To customise the image, start by modifying local.conf and bblayers.conf.

Writing a Yocto image

If you downloaded a release image, verify its checksum:

sha256sum -c core-image-full-cmdline-intel-corei7-64-20230415005443.rootfs.wic.gz.sha256

On the target system, write the image to the storage, e.g., NVMe device:

zcat core-image-full-cmdline-intel-corei7-64-20230415005443.rootfs.wic.gz | dd of=/dev/nvme0n1 bs=1M status=progress

Relocate the GPT backup header to the end of the storage device:

sgdisk -e /dev/nvme0n1

reboot and select the storage device in the UEFI boot device menu.

Downloading test images

For each push of a branch or tag to the OFS/meta-ofs repository, a test image is built and attached as an artifact to the build job. While the test images may be downloaded using the web browser when logged into GitHub, this may be inconvenient if the web browser runs on your local laptop while the target system resides in remote location.

The GitHub command-line client provides a convenient way of browsing and downloading test images on a remote machine. Follow the GitHub CLI installation instructions for your OS and authenticate to GitHub:

gh auth login

(This stores an OATH token in $HOME/.config/gh/hosts.yml.)

Browse the available test images, sorted newest to oldest:

gh run download --repo OFS/meta-ofs

Follow the instructions to select one or multiple test images, then press Enter to download into the current directory.

License

All metadata files (including, but not limited to .bb, .bbappend, .bbclass, .inc and .conf files) are MIT licensed unless otherwise stated. Source code included in tree for individual recipes is under the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.

About

Open FPGA Stack (OFS) software layer for Yocto

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • BitBake 65.7%
  • Dockerfile 34.3%