Skip to content

EvoLogics/yodobuss

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

== Yocto/Docker Build System Setup ==
This project helps make build system for embedded platform by using
docker (https://www.docker.com) and yocto (https://www.yoctoproject.org/)

=== Preparations ===

$ sudo apt install git make docker.io tzdata
$ sudo adduser $USER docker

If you will not build docker image by own, but pull it from registry, then:

$ sudo apt-get install golang-docker-credential-helpers xauth dbus-x11
$ mkdir -p ~/.docker
$ echo '{ "credsStore": "secretservice" }' >  ~/.docker/config.json

=== Quick Start ===
This will ask what machine config to apply, setup docker image 'evologics/yocto', download yocto and meta layers,
setup local config and run building image and sdk.

$ make all

Result binaries and images can be found in directory build/tmp/deploy/

Build binaries and images for another machine
$ make MACHINE=qemux86 all

Build binaries and images for RoadRunner on BertaD2 baseboard in separate build directory
$ make MACHINE=sama5d2-roadrunner-bertad2-qspi BUILD_DIR=build-bertad2-qspi IMAGE_NAME=acme-minimal-image all

Reconfigure current directory for another machine
$ make clean-bbconfigs
$ make MACHINE=imx6-tx6s-8035-evobb configure
After that given MACHINE and MACHINE_CONFIG will be saved to .config.mk file,
so no need to pass them again after a 'configure' target

You can also use ./lazyconf.sh to choose machine config.

=== Separating machine configs ===
There are 'MACHINE' and 'MACHINE_CONFIG' parameters to change for different build configurations.
For every run 'make' will load contents of machine/$(MACHINE)/$(MACHINE_CONFIG).mk file.
'MACHINE' then will be passed to bitbake into the container.
'MACHINE_CONFIG' is used only locally to separate different sets of options.
'make list-machine' displays the contents of 'machine' folder except *common* files.
'make list-config' shows the current machine and available .mk files for it.

=== Binding home directory ===
One can create a 'home' folder which will be passed to the container as a user home folder
in order to:
 a. pass shell parameters with .bashrc and save history throughout the sessions,
 b. pass ssh configuration and keys to access private repositories,
 and so on.

To activate this binding, create a file named '.use_home' in the 'home' folder and
just delete if the binding is not needed anymore.
Contents of the 'home' folder are intentionally excluded from git to prevent accidentally pushing
sensitive information to git.

=== Useful commands ===
Show help with useful targets and tips
$ make help

Invoke shell with inside docker container.
$ make devshell

Build image 'core-image-minimal' inside developer shell
devshell$ bitbake core-image-minimal

Build package 'at91bootstrap' inside developer shell
devshell$ bitbake at91bootstrap

Rebuld kernel inside developer shell
devshell$ bitbake virtual/kernel -fc clean
devshell$ bitbake virtual/kernel

Rebuld .dts (device tree) inside developer shell
devshell$ bitbake virtual/kernel -fc deploy

Rebuild only ubi image
devshell$ bitbake evologics-base-image -fc image_ubi && bitbake evologics-base-image
devshell$ bitbake acme-minimal-image -fc image_ubi && bitbake acme-minimal-image
devshell$ bitbake acme-minimal-image -fc clean && bitbake acme-minimal-image

Useful bitbake commands: https://github.com/gumstix/yocto-manifest/wiki#useful-bitbake-commands

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published