- LORIX One product / sama5d4-lorix-one (256 and 512MB NAND versions)
- meta-wifx URI: git://github.com/Wifx/meta-wifx.git
URI: https://github.com/Wifx/meta-wifx.git
Branch: krogoth
This Layer depends on :
-
meta-openembedded URI: git://git.openembedded.org/meta-openembedded
URI: http://cgit.openembedded.org/meta-openembedded/
Branch: krogoth -
meta-golang URI: git://github.com/Wifx/meta-golang.git
URI: https://github.com/Wifx/meta-golang.git
Branch: master -
meta-maker URI: git://git.yoctoproject.org/meta-maker
URI: https://git.yoctoproject.org/git/meta-maker
Branch: master
-
Install the required packages to use Yocto as described on the Yocto required packages page
-
Ubuntu
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo \ gcc-multilib build-essential chrpath socat
-
Fedora (not tested)
$ sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ findutils which
-
-
Create a directory
mkdir my_dir cd my_dir
-
Clone yocto/poky git repository with the proper branch ready
git clone git://git.yoctoproject.org/poky -b krogoth
-
Clone meta-openembedded git repository with the proper branch ready
git clone git://git.openembedded.org/meta-openembedded -b krogoth
-
Clone meta-wifx layer with the proper branch ready
git clone git://github.com/Wifx/meta-wifx.git -b krogoth
-
Clone meta-golang layer with the proper branch into "golang" directory
git clone git://github.com/Wifx/meta-golang.git golang/meta-golang -b master
-
Clone meta-maker layer with the proper branch ready
git clone git://git.yoctoproject.org/meta-maker cd meta-maker git reset --hard c039fafa7a0276769d0928d16bdacd2012f2aff6 cd ..
-
Enter the poky directory to configure the build system and start the build process
cd poky
-
Initialize build directory
source oe-init-build-env build-wifx
In case of using the SD Card version next to the NAND one, an advice is to use two build directories, for example build-wifx and buils-wifx-sd to avoid recompiling every machine specific packages when swithing from one version to the other.
-
Add meta-atmel layer to bblayer configuration file
vim conf/bblayers.conf
With the following content:
# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly POKY_BBLAYERS_CONF_VERSION = "2" BBPATH = "${TOPDIR}" BBFILES ?= "" BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../../..')}" BBLAYERS ?= " \ ${BSPDIR}/meta-wifx \ ${BSPDIR}/poky/meta \ ${BSPDIR}/poky/meta-poky \ ${BSPDIR}/poky/meta-yocto-bsp \ ${BSPDIR}/meta-openembedded/meta-oe \ ${BSPDIR}/meta-openembedded/meta-networking \ ${BSPDIR}/meta-openembedded/meta-webserver \ ${BSPDIR}/meta-openembedded/meta-perl \ ${BSPDIR}/meta-openembedded/meta-python \ ${BSPDIR}/meta-openembedded/meta-ruby \ ${BSPDIR}/meta-openembedded/meta-multimedia \ ${BSPDIR}/golang/meta-golang \ ${BSPDIR}/meta-maker \ " BBLAYERS_NON_REMOVABLE ?= " \ ${BSPDIR}/poky/meta \ ${BSPDIR}/poky/meta-poky \ "
Note: meta-webserver is only used for the wifx-extended image which contains optional web servers and can be omitted if not needed.
-
Edit local.conf to specify the machine, location of source archived, package type (rpm, deb or ipk).
Pick one MACHINE name from the "Supported SoCs / MACHINE names" chapter above and edit the "local.conf" file.
Here is an example:vim conf/local.conf
And the content:
[...] # LORIX One NAND memory based (256MB NAND version) MACHINE ??= "sama5d4-lorix-one" or # LORIX One NAND memory based (512MB NAND version) MACHINE ??= "sama5d4-lorix-one-512" or # LORIX One SD-Card memory based (256MB NAND version) MACHINE ??= "sama5d4-lorix-one-sd" or # LORIX One SD-Card memory based (512MB NAND version) MACHINE ??= "sama5d4-lorix-one-512-sd" [...] DL_DIR ?= "your_download_directory_path" [...] PACKAGE_CLASSES ?= "package_ipk" [...] EXTRA_IMAGE_FEATURES ?= "" [...] USER_CLASSES ?= "buildstats image-mklibs"
Note: You can find more information about versions on the dedicated page of the LORIX One's wiki
To get better performance, use the "poky-wifx" distribution by also adding that line:
DISTRO = "poky-wifx"
To get build history (use more space on disk), activate the option with this line in end of file:
INHERIT += "buildhistory" BUILDHISTORY_COMMIT = "1"
To remove work files after the build system has finished and reduce the overall system size, activate the option with this line in end of file:
INHERIT += "rm_work"
-
Build Wifx standard image
$ bitbake wifx-base
Typical bitbake output
Build Configuration: BB_VERSION = "1.30.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "universal" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "sama5d4-lorix-one" DISTRO = "poky-wifx" DISTRO_VERSION = "2.1.2" TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard cortexa5" TARGET_FPU = "hard" meta-wifx = "krogoth:f5e1a500096c1a4ffa8b77657ad553f102bfa986" meta meta-poky meta-yocto-bsp = "krogoth:ae9b341ecfcc60e970f29cfe04306411ad26c0cf" meta-oe meta-networking meta-perl meta-python meta-ruby meta-multimedia = "krogoth:55c8a76da5dc099a7bc3838495c672140cedb78e" meta-golang = "master:72e26c77e91311e79f38863424adca9536a2bde6" meta-maker = "master:c039fafa7a0276769d0928d16bdacd2012f2aff6"
-
Or build the more complete image include for example OpenVPN and other network features
bitbake wifx-extended
-
Or build the debug image which allow you for example to use the root user without password (don't use it in production)
bitbake wifx-base-dbg
-
Or build the devel image which contains also the toolchain and app headers
bitbake wifx-base-dev
-
Or build the SDK image which contains in addition the kernel headers and debug utilities
bitbake wifx-base-sdk
-
In all cases, the toolchain installer is located in build-wifx/tmp/deploy/sdk
Maintainers: Yannick Lanz [email protected]
When creating patches insert the [meta-wifx] tag in the subject, for example use something like: git format-patch -s --subject-prefix='meta-wifx][PATCH'