Skip to content

Raspberry Pi Build Targets

Mark Millard edited this page Jan 19, 2024 · 14 revisions

This page provides information about building the Magic Lantern image and artifacts (i.e. executable, libraries, etc.) for the Raspberry Pi platform.

Dependencies

The Magic Lantern SDK uses the Yocto build environment for targeting the Raspberry Pi platform. Instructions for setting up the Yocto environment can be found on the Raspberry Pi Investigation Build Instructions wiki page.

Bitbake

This information assumes that the build environment discussed on the Raspberry Pi Investigation Build Instructions wiki page is being used.

Run Build Environment Script

source poky-dunfell/oe-init-build-env ~/rpi/build

Build Targets

The following targets may be used to build and stage the Magic Lantern components.

libmlutil Library

Bitbake Command Description Notes
bitbake libmlutil Runs all Yocto phases.
bitbake -c cleansstate libmlutil Purges the entire state of libmlutil.
bitbake -c cleanall libmlutil Removes all output files, shared state (sstate) cache, and downloaded source files for libmlutil. Cleans the contents of DL_DIR.
bitbake -c clean libmlutil Clean and remove build artifacts for libmlutil.
bitbake -c fetch libmlutil Download and unpack the libmlutil source code. Downloaded into the downloads/git2/github.com.magic-lantern-studio.mle-core-util.git directory.
bitbake -c configure libmlutil Configure libmlutil build directory. Runs autoconf tools; result is in tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libmlutil/1.0-r0/git/util/linux/build/ directory.
bitbake -c compile libmlutil Compile libmlutil.
bitbake -c install libmlutil Installs libmlutil. Artifacts are installed in ${D}/opt/MagicLantern
bitbake -c package libmlutil Splits the files produced by the recipe into logical components for packaging. ${WORKDIR}/packages-split will contain the FILES that will be installed in each respective ipk package

Logs for the bitbake command execution may be found in the tmp/work/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/libmlutil/1.0-r0/temp directory.

Packages that are built include:

Package Description
tmp/deploy/ipk/cortexa7t2hf-neon-vfpv4/libmlutil-dbg_1.0-r0_cortexa7t2hf-neon-vfpv4.ipk The debug package for libmlutil
tmp/deploy/ipk/cortexa7t2hf-neon-vfpv4/libmlutil-dev_1.0-r0_cortexa7t2hf-neon-vfpv4.ipk The development package for libmlutil
tmp/deploy/ipk/cortexa7t2hf-neon-vfpv4/libmlutil-src_1.0-r0_cortexa7t2hf-neon-vfpv4.ipk The source package for libmlutil
tmp/deploy/ipk/cortexa7t2hf-neon-vfpv4/libmlutil-staticdev_1.0-r0_cortexa7t2hf-neon-vfpv4.ipk The static development package for libmlutil

Note

The default listing of packages is

PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev ${PN}-locale"

The order of packages is important: the packages are processed in the listed order. So if two packages specify the same file then the first package listed in packages will get the file. This is important when packages use wildcards to specify their contents.

List ipk Package Contents

To list the contents of a package, you must first extract the file using "ar -xv <ipk_file>".

For example:

ar -xv libmlutil-staticdev_1.0-r0_cortexa7t2hf-neon-vfpv4.ipk

Then use "tar" on data.tar.xz to list the contents

tar -tvf data.tar.xz

Clone this wiki locally