The instructions for setting up and building Linux in the Yocto Project were adopted to our products.
A list of helpful bitbake commands can be found here:
For Yocto a Linux host machine is needed.
The supported distributions for Yocto Zeus are listed at the official Yocto documentation.
If you’re already running a machine, you should be fine, otherwise we recommend to use VirtualBox to run a virtual machine. Use an Ubuntu 16.04 or 18.04 instance. Get a working-ready virtual machine images from osboxes.org.
See their guide @ osboxes.org to run the virtual machine image.
An important consideration is the hard disk space required for the virtual appliance. It is recommended that at least 120 GiB is provided, 500 GiB would be better.
The Yocto framework requires (build) dependencies that need to be available on the host system for the builds.
To meet minimal version requirements you should have the following installed:
- Git 22.214.171.124 or greater
- tar 1.27 or greater
- Python 3.4.0 or greater
If your system does not meet these requirements see this.
To get the right packages for your build host, have a look at the official Yocto project documentation.
To install essential host packages for Yocto run:
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev \ pylint3 xterm
Setting up Git¶
If not already done, setup git with the commands below:
git config --global user.name "Your Name" git config --global user.email "Your Email" git config --list
Setting up the Repo Utility¶
Repo is a tool built on top of Git that makes it easier to manage projects that contain multiple repositories, which do not need to be on the same server. Repo complements very well the layered nature of the Yocto Project, making it easier for users to add their own layers to the BSP.
To install the
repo utility, perform these steps:
- Create a bin folder in the home directory:
bin folder already exists skip the
mkdir ~/bin step.
mkdir ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
- Add the following line to the
~/.bashrcfile to ensure that the
~/binfolder is in your PATH variable:
bin folder is already in your path skip this step in it’s entirety.
The Repo tool checks out different layers for you, which are defined in our XML-manifest. Their source code can be found
layers directory, which contains the recipes and machine configurations used to build the images.
|Branch||Kernel Version||Supported Machines|
karo-bsp is just an example and can be chosen freely.
mkdir karo-bsp cd karo-bsp repo init --no-clone-bundle -u https://github.com/karo-electronics/karo-bsp -b zeus repo sync
A more generalised repo command would be, e.g.:
repo init --no-clone-bundle -u <repository-url> -b <branch>
repo init --help:
--no-clone-bundle: disable use of /clone.bundle on HTTP/HTTPS
Not using this option can lead to errors when calling
If errors occur during repo initialization, try deleting the
.repo directory and running the repo initialization command again.
You can check for updates of the codebase anytime via command:
If there are updates available it will automatically download and apply them.
Be aware that should you have made changes to files in the BSP,
repo will give errors or (in the worst case) throw those away.
You will only be able to update sources according to the current
manifest.xml you have. If the Manifest changed, you will have to re-init the repo again.