Skip to content

Build Yocto for Intel Based Platform

AdlinkCCoE edited this page Aug 28, 2024 · 10 revisions

1. Set up a build host environment

1.1 Recommended Hardware for the host

  • Intel Core-i7 Processor (>= 4 cores)
  • at least 8GB of Memory
  • at least 500GB Disk sapce
  • Ubuntu 20.04 LTS 64-bit version for Yocto Project Build
  • High-speed network connectivity

1.2 Essential host Packages are required to be installed on your host

sudo apt-get install gawk wget git diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm zstd liblz4-tool curl git python-is-python3 autoconf nfs-common xutils-dev xsltproc docbook-utils fop dblatex xmlto git-lfs

Note: Don't use the root account to build Yocto. it might cause unpredictable errors.

1.3 "Google repo" packages is required to be installed on your host

mkdir ~/bin (this step may not be needed if the bin folder already exists)
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin

1.4 Before star to build the source, please make sure that git is set up properly with the commands below

git config --global user.name "Your Name"
git config --global user.email "Your Email"
git config --list

2. Fetch the source from the git location as below

2.1 Create a working directory. we're creating "intel-yocto-bsp".

mkdir intel-yocto-bsp 
cd intel-yocto-bsp

2.2 Download the required meta-layers.

It's recommended to use the latest branch and manifest file to build the Yocto image. Here you can find the available branches and manifest files.

kirkstone branch

repo init -u https://github.com/ADLINK/adlink-manifest -b intel-yocto-kirkstone -m adlink-x86-bit_v1.0.xml
repo sync
CONF=adlink source adlink-intel-setup-release.sh -b build

scarthgap branch

repo init -u https://github.com/ADLINK/adlink-manifest -b intel-yocto-scarthgap -m adlink-x86-bit_v1.0.xml
repo sync
CONF=adlink source adlink-intel-setup-release.sh -b build

Please check the SEMA controller in your board, please check below details

SEMA® - EC controller SEMA® - TivaBMC controller
- cExpress-TL , cExpress-EL, cExpress-AR
- Express-ID7, Express-ADP, Express-TL
- COM-HPC-cADP, COM-HPC-sIDH
- LEC-EL
- NanoX-EL
- Express-CF/CFE, Express-KL/KLE, Express-SL/SLE, Express-DN7, Express-BD7
- cExpress-WL, cExpress-KL, cExpress-SL, cExpress-AL
- nanoX-AL
- LEC-AL
- Q7-AL
- LEC-PX30

Modify the local.conf file as per SEMA controller in your board

Edit the local.conf as below

gedit conf/local.conf

SEMA - EC Controller

# Add the Below line in local.conf and save it 
IMAGE_INSTALL:append = " semaec4.0 "

SEMA - TIVA BMC Controller

# Add the Below line in local.conf and save it 
IMAGE_INSTALL:append = " sema "

Due to change in openvino github, please refer link Here to do modification in openvino recipe.

2.3 Build the image

bitbake core-image-xfce

Note: Sometimes the build may fail due to the traffic/server try again after sometime

2.5 Image is generated as core-image-xfce.wic in <build_dir>/tmp/deploy/image/.

3. Flashing the Yocto image

Please refer to here