You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

source oe-init-build-env

create: bitbake-layers create-layer meta-<layer_name>

add: bitbake-layers add-layer ../meta-<layer_name>

show: bitbake-layers show-layers


It is possible to customize existing meta layers by creating an own meta layer with bitbake append files. In this description the meta layer meta-altera for Intel FPGA devices is used as reference.

For more informations about the operating system used and the sources and versions of yocto project or meta-altera layer, see Yocto KICKstart#Used source files.

Initialize the environment


Before starting to create a custom meta layer, navigate to the yocto poky directory and initialize the environment with the following commands:

cd <path_to_yocto>/poky
source oe-init-build-env
cd ..

Download required sources


Since the created meta-custom layer should depend on meta-altera, these sources files must be downloaded and added to the yocto project.

  1. Navigate to yocto poky directory and download meta-altera layer:

    cd <path_to_yocto>/poky
    git clone -b dunfell https://github.com/kraj/meta-altera.git
  2. Add meta-altera to yocto project with:

    bitbake-layers add-layer ./meta-altera

Create custom meta layer


In this example, the created layer is named meta-custom.

  1. Create own layer "meta-<custom_name>" with:

    bitbake-layers create-layer ./meta-custom
  2. The created layer contains a sample recipes folder, that can be removed:

    rm -rf ./meta-custom/recipes-example
  3. Make meta-custom dependent on meta-altera:

    sed -i '/LAYERDEPENDS_meta-custom/s/core/meta-altera/g' meta-custom/conf/layer.conf 
  4. Add the meta-custom layer to the yocto project with:

    bitbake-layers add-layer ./meta-custom

Add required parameters


  1. First the variable "MACHINE" must be redefined in the local.conf file. Several machines are defined in the meta-altera layer (see meta-altera/conf/machine for more information). In this example, the machine 'cyclone5' is used.
    Remove the default value and add 'cyclone5':

    sed -i '/^MACHINE/s/MACHINE/#MACHINE/g' conf/local.conf
    echo -e '\nMACHINE = "cyclone5"' >> conf/local.conf
  2. For the linux kernel in the meta-altera layer it's required to define a the preferred provider and version in local.conf (see meta-altera/recipes-kernel/linux for other linux kernel versions):

    echo -e '\nPREFERRED_PROVIDER_virtual/kernel = "linux-altera-lts"' >> conf/local.conf
    echo -e 'PREFERRED_VERSION_linux-altera-lts = "5.4%"' >> conf/local.conf
    
  3. Set the preferred u-boot version for meta-altera in local.conf (see meta-altera/recipes-bsp/u-boot for other u-boot versions):

    echo -e '\nPREFERRED_VERSION_u-boot-socfpga = "v2021.04%"' >> conf/local.conf

Modify custom meta layer


Configure linux kernel

###with devtool

Set up the build environment to modify the source for an existing recipe:

devtool modify linux-altera-lts -O -s

Launch menuconfig, make changes to configuration and exit and save your config:

devtool menuconfig linux-altera-lts


devtool update-recipe linux-altera-lts -a ${PWD}/../meta-custom -O


create .bbappend file → file name must be the same as original .bb recipe file but with with .bbappend ending

gedit /meta-custom/recipes-kernel/linux/linux-altera-lts_5.4.bbappend

add following content to this file:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://fragment.cfg "


Configure u-boot

###with devtool

für meta-altera müssen folgende variablen in build/conf/local.conf eingefügt werden (wird nur für die konfiguration via menuconfig gebraucht, muss danach entfernt werden):

UBOOT_MACHINE=" socfpga_cyclone5_defconfig" → welche für die ausgewählte MACHINE benutzt wird steht in meta-altera/recipes-bsp/u-boot/u-boot-socfpga.inc

UBOOT_CONFIG = ""

Set up the build environment to modify the source for an existing recipe:

devtool modify u-boot-socfpga -O -s

Launch menuconfig, make changes to configuration and exit and save your config:

devtool menuconfig u-boot-socfpga


devtool update-recipe u-boot-socfpga -a ${PWD}/../meta-custom -O

folgende variablen können wieder entfernt werden, nachdem beenden der konfigration von u-boot:

UBOOT_MACHINE=" socfpga_cyclone5_defconfig" → welche für die ausgewählte MACHINE benutzt wird steht in meta-altera/recipes-bsp/u-boot/u-boot-socfpga.inc unter UBOOT_CONFIG[...]=...

UBOOT_CONFIG = ""
















checkout other branch


git checkout mybranch
git reset --hard origin/mybranch

  • No labels