Skip to content

Latest commit

 

History

History
281 lines (223 loc) · 10.2 KB

README.adoc

File metadata and controls

281 lines (223 loc) · 10.2 KB

LPN Central Yocto BSP

This is the Li-Pro.Net Central Yocto BSP Manifest.

Quick Start

To get the BSP 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

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

Freescale Community Yocto BSP

Warning
Derived Work
This BSP is a special fork of the official Freescale Community Yocto BSP.
Use the issue tracker on GitHub. Do not ask on any mailing list.

Download the BSP source:

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

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

Yocto Core Components

Download the BSP source:

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

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

Build Stage

To start a simple image build:

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

You can use any directory to host your build.

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

Yocto Core Images

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

$: find . -name core-image*.bb
./poky/meta-skeleton/recipes-multilib/images/core-image-multilib-example.bb
./poky/meta/recipes-graphics/images/core-image-clutter.bb
./poky/meta/recipes-graphics/images/core-image-directfb.bb
./poky/meta/recipes-graphics/images/core-image-x11.bb
./poky/meta/recipes-graphics/images/core-image-weston.bb
./poky/meta/recipes-extended/images/core-image-testmaster-initramfs.bb
./poky/meta/recipes-extended/images/core-image-lsb.bb
./poky/meta/recipes-extended/images/core-image-full-cmdline.bb
./poky/meta/recipes-extended/images/core-image-lsb-dev.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-lsb-sdk.bb
./poky/meta/recipes-core/images/core-image-minimal-dev.bb
./poky/meta/recipes-core/images/core-image-minimal-mtdutils.bb
./poky/meta/recipes-core/images/core-image-base.bb
./poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
./poky/meta/recipes-core/images/core-image-minimal.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-sdk.bb
./poky/meta/recipes-sato/images/core-image-sato.bb
./poky/meta/recipes-sato/images/core-image-sato-dev.bb
./meta-openembedded/meta-xfce/recipes-core/images/core-image-minimal-xfce.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-directfb

An image that uses DirectFB instead of X11.

  • debug directfb GPU support

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.

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.

Yocto Toolchain Support

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

$: find . -name meta-toolchain*.bb
./poky/meta/recipes-qt/meta/meta-toolchain-qte.bb
./poky/meta/recipes-qt/meta/meta-toolchain-qt.bb
./poky/meta/recipes-core/meta/meta-toolchain.bb
./meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb
./meta-openembedded/meta-efl/recipes-core/meta/meta-toolchain-efl.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-qt

Meta package for building a installable Qt4 toolchain and SDK.

meta-toolchain-qte

Meta package for building a installable Qt4/Embedded toolchain and SDK.

meta-toolchain-qt5

Meta package for building a installable Qt5 toolchain and SDK.

meta-toolchain-efl

Meta package for building a installable Enlightenment UI 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

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-bsp-platform][PATCH' origin

When sending patches, please use something like:

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

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-bsp-platform -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-bsp-platform -b master-next