Skip to content

lipro-yocto/lpn-central-repo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Li-Pro.Net Central repo manifest

This is the Git repo manifest for Li-Pro.Net Central embedded environment.

1. Quick Start

To get the Li-Pro.Net build environment you need to have repo installed and use it as:

Install the repo utility:

$: mkdir -p ~/.local/bin
$: curl https://raw.githubusercontent.com/lipro-yocto/git-repo/lpn-launcher/repo > ~/.local/bin/repo
$: chmod a+x ~/.local/bin/repo
$: sha1sum ~/.local/bin/repo

For repo launcher version 2.12.2.2021.2.20, the SHA-1 checksum for repo is 93cab6406f072e78874dac1d891427c84189f0b6

For repo launcher version 2.8.2020.10.4, the SHA-1 checksum for repo is 1c5afd4164e7b9dd7939334291ededc54ef280f2

1.1. Default Manifest

Download default build environment:

$: PATH=${PATH}:~/.local/bin
$: mkdir lpn-central-workspace
$: cd lpn-central-workspace
$: repo init -u https://github.com/lipro-yocto/lpn-central-repo \
             -b master -m default.xml
$: repo sync

At the end of the commands you have every metadata you need to start work with.

1.2. Build Stage

To start a simple image build:

$: source ./setup-environment
$: bitbake core-image-minimal

You can use any directory to host your build.

The source code is checked out at lpn-central-workspace/sources.

1.2.1. Yocto Core Images

To see available images, run inside the checked out source path lpn-central-workspace/sources:

$: find . -name core-image*.bb | sort -ub
./poky/meta/recipes-core/images/core-image-base.bb
./poky/meta/recipes-core/images/core-image-minimal.bb
./poky/meta/recipes-core/images/core-image-minimal-dev.bb
./poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
./poky/meta/recipes-core/images/core-image-minimal-mtdutils.bb
./poky/meta/recipes-core/images/core-image-tiny-initramfs.bb
./poky/meta/recipes-extended/images/core-image-full-cmdline.bb
./poky/meta/recipes-extended/images/core-image-kernel-dev.bb
./poky/meta/recipes-extended/images/core-image-testmaster.bb
./poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
./poky/meta/recipes-graphics/images/core-image-clutter.bb
./poky/meta/recipes-graphics/images/core-image-weston.bb
./poky/meta/recipes-graphics/images/core-image-x11.bb
./poky/meta/recipes-rt/images/core-image-rt.bb
./poky/meta/recipes-rt/images/core-image-rt-sdk.bb
./poky/meta/recipes-sato/images/core-image-sato.bb
./poky/meta/recipes-sato/images/core-image-sato-dev.bb
./poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
./poky/meta/recipes-sato/images/core-image-sato-sdk.bb
./poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
./openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
./meta-mingw/recipes-core/images/core-image-mingw-sdktest.bb

Those are all available images. And note that, available core images from poky and meta-openembedded only. As you may imagine, several other layers can be included, and any new layer can provide new images.

Yocto Project provides some "pre baked" images. In my point of view, those images are not to be used on your product. They are examples and quick starting points.

An handy example: When you desire a pie, you can go to supermarket and buy a frozen chocolate pie. But when you’re developing a pie to be the Apple Salted Caramel with Dark Chocolate Cinnamon Topping you need to decide every piece of this pie. What is the base, which type of apple to use. How much salt on caramel. This is your product, your pie, not a frozen standard pie.

I know the analogy is kind of dumb. But it’s important to understand that the "pre baked" images provided by Yocto Project are not supposed to become a product image! You can (and maybe should) base your image on some of those images, but they are not good enough to your product.

I highly recommend you to have your own image file.

Table 1. Core Images Overview
Image Name Formal Description Use it when/for

core-image-minimal

A small image just capable of allowing a device to boot.

  • testing machine support

  • boot loader support/upgrade

  • kernel support/upgrade

core-image-minimal-initramfs

Small image capable of booting a device. The kernel includes the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the first 'init' program more efficiently.

core-image-minimal-mtdutils

Small image capable of booting a device with support for the Minimal MTD Utilities, which let the user interact with the MTD subsystem in the kernel to perform operations on flash devices.

core-image-base

A console-only image that fully supports the target device hardware.

  • need to add something like ssh/dropbear or evtest or usb utils

  • always configure this on local.conf to add the desired package

core-image-full-cmdline

A console-only image with more full-featured Linux system functionality installed.

core-image-lsb

An image containing packages that are required to conform to the Linux Standard Base (LSB) specification.

core-image-rt

A small image just capable of allowing a device to boot plus a real-time test suite and tools appropriate for real-time use.

  • testing real-time support

core-image-weston

A very basic Wayland image with a terminal.

  • debug Wayland GPU support

core-image-x11

A very basic X11 image with a terminal

  • need to test X11 accelerated by GPU

  • need to have X11 for any test

core-image-clutter

An image with support for the Open GL-based toolkit Clutter, which enables development of rich and animated graphical user interfaces.

core-image-sato

Image with Sato, a mobile environment and visual style for mobile devices. The image supports X11 with a Sato theme, Pimlico applications, and contains terminal, editor, and file manager.

core-image-minimal-xfce

A XFCE minimal demo image.

core-image-mingw-sdktest

A specific image that can be used to build MinGW SDKs. This image includes extra recipes that are know to build for MinGW so that they can be tested on the autobuilder.

All those images DO NOT include -dev packages or native build. If you want it you MUST configure your local.conf. Although, you can find special images that provides the header files or the native compiler.

The images with -dev sufix include the header files (and development files) from all packages. For example: core-image-minimal-dev (A small image just capable of allowing a device to boot and is suitable for development work.)

The images with -sdk sufix include the native build tools. For example core-image-sato-sdk (Image with Sato support that includes everything within core-image-sato plus meta-toolchain, development headers and libraries to form a standalone SDK.)

Read more on Yocto Training provided by the Freescale community, Daiane Angolini.

1.2.2. Yocto Toolchain Support

To see available toolchains, run inside the checked out source path lpn-central-workspace/sources:

$: find . -name meta-toolchain*.bb | sort -u
./poky/meta/recipes-core/meta/meta-toolchain.bb
./meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb

Those are all available toolchains. And note that, available toolchains from poky, meta-openembedded and meta-qt5 only. As you may imagine, several other layers can be included, and any new layer can provide new toolchains.

Table 2. Toolchains Overview
Meta Name Formal Description Use it when/for

meta-toolchain

Meta package for building a installable toolchain.

  • to have the crosscompiler installed on the developer machine

  • to manually build boot loader and kernel

meta-toolchain-qt5

Meta package for building a installable Qt5 toolchain and SDK.

To build a cross toolchain for the current build machine:

$: bitbake meta-toolchain

To build a cross toolchain for a Windows 32 bit machine:

$: SDKMACHINE=i686-mingw32
$: bitbake meta-toolchain

To build a cross toolchain for a Windows 64 bit machine:

$: SDKMACHINE=x86_64-mingw32
$: bitbake meta-toolchain

2. Contributing

To contribute to the manifest you should send a pull request to this GitHub project or send the patches for review to the authors mailing address.

When creating patches, please use something like:

$: git format-patch -s --subject-prefix='lpn-central][PATCH' origin

When sending patches, please use something like:

$: git send-email --to [email protected] <generated patch>

3. Using Development and Testing Branches

Replace the repo init command above with one of the following:

master

For developers

$: repo init -u https://github.com/lipro-yocto/lpn-central -b master
master-next

For intrepid developers and testers

Patches are typically merged into master-next and then are merged into master after a testing and comment period. It’s possible that master-next has something you want or need. But it’s also possible that using master-next breaks something that was working before. Use with caution.

$: repo init -u https://github.com/lipro-yocto/lpn-central -b master-next

About

Li-Pro.Net Central repo manifest

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published