Yocto project has layers, what are those layers

Source Code

Yocto is a way for big corps to make embedded linux easier for the industry

first project organized under the Linux Foundation
besides the linux kernel. Split governance, between the member companies and the technical leadership team and advisory board.

Advisory bvoard made up of funding companies

image

click to edit

YP builds packages then from them builds bootable images

Releases on a 6 month cadence

Yocto is based on OpenEmbedded-core

OpenEmbedded- Project: Community Project driven and maintained by it.

Provides central metadata

Open Embedded layer

Core build Tool

BitBake

Python

Reads Metadata; Determines Dependencies; Schedules tasks

Metadata Definition

Structured collection of data which tells Bitbake what to build, organized in layers

Poky

Reference Distrubition

oe-core (poky/meta);
meta-poky ( poky/meta-poky) [Distribuition layer];
meta-yocto-bsp;

Layers

image

Screenshot 2023-10-01 180526

Local Directories;
Tar balls; ( a type of archive file)

Quilt: patching tool

QA: is to make sure convection is followed and that no leftover files that haven't been packed or that wrong things haven't been packed

Image/SDK builder from package feeds

Four different kinds:

.bb:
Usually describes build instructions for a SINGLE package

special *.bb:
Often used to group packages together for a FS image

*.bbclass:
Inheritancen mechanism for common functionality

*.conf:
Drives the overall behavior of the build process.

BB class inherit from BB class

Other 2 files but not Metadata

.bbappend
Define additional metadata for a similarly named .bb file;
Can add or override previous values.

.inc
Files used with the include directive;
Can be included in the require;
Included files are found in the BBPATH var.
Like a header file

Typecally per package.

files needs to start with: recipes-

Task scheduler and executor

$ bitbake myrecipe ; is used to build the specified build and it's the HIGHEST version that's built

To choose which task to run:
$bitbake -c clean myrecipe
OR
$bitbake -c cleanall myrecipe

To list all tasks: $bitbake -clisttaks myrecipe

If you want a specific version

$ bitbake myrecipe-1.0

Or revision

$ bitbake myrecipe-1.0-r0

Operators

?= (dafault Value)

= (Late Assignment)

?? = (late default)

:= (Immediate Assignment)

click to edit

=. (prepend)

+= (append with space)

.= (append)

=+ (prepend with space)

Why do we need Yocto?

Chatgpt answer

Customization: Yocto allows developers to create highly customized Linux distributions tailored to the specific requirements of their embedded devices. This flexibility is crucial because embedded systems often have unique hardware and software requirements that cannot be met by a one-size-fits-all approach.

Cross-Platform Development: Yocto provides tools and mechanisms for cross-compilation, which is essential for embedded development. It allows developers to build software on a development machine for a target architecture different from the build machine's architecture, making it easier to develop for various embedded platforms.

Reusability: Yocto promotes the reuse of components and recipes, making it efficient to maintain and update embedded Linux distributions. Developers can leverage a vast and growing repository of existing Yocto layers, recipes, and components.

License Compliance: Yocto Project assists in managing open-source licenses, ensuring that you comply with the licenses of the software components used in your embedded system. This is important for legal and ethical reasons.

Security: Yocto supports security best practices by allowing developers to configure and build Linux distributions with security features in mind. This is especially important for embedded systems, as they can be vulnerable to security threats.

Scalability: Yocto is suitable for a wide range of embedded systems, from small, resource-constrained devices to more powerful ones. Its flexibility allows developers to scale their Linux distributions accordingly.

Community and Ecosystem: Yocto has a vibrant community and ecosystem of users, contributors, and resources. This community support can be invaluable when facing challenges or seeking advice in embedded Linux development.

Version Control and Reproducibility: Yocto allows for version control and reproducibility of builds, ensuring that development teams can track changes and reliably recreate specific system configurations.

Hardware Abstraction: Yocto abstracts hardware details, allowing developers to focus on building software and defining the system's behavior rather than dealing with low-level hardware intricacies.

Industry Standards: Yocto Project is used in various industries, such as automotive, industrial automation, and IoT, where customized embedded Linux distributions are common. Using Yocto can help align your development practices with industry standards.

In summary, Yocto Project is a valuable tool for creating customized Linux distributions for embedded systems, offering flexibility, reusability, cross-platform development, and a supportive community. It streamlines the development process and ensures that embedded systems meet specific requirements, making it an essential tool in the embedded systems development ecosystem.

Yocto Project is a set of tools and metadata that allows developers to create custom Linux distributions for embedded systems. It is not a standalone product, but rather a framework that assists in building and maintaining customized Linux distributions for a wide range of embedded devices. Here are some of the key reasons why Yocto Project is needed:

How can ACA-py be used in blockchain of personal digital Twin edge gateway

click to edit

  1. Understanding the Components:
  • Aries Framework: Aries provides a set of protocols for secure communication and interactions between different parties in a decentralized identity ecosystem.
  • Hyperledger Indy (or other blockchain platforms): Indy is often used as the underlying blockchain technology for decentralized identity systems.
  1. Set Up ACA-py:
  • Start by installing and configuring ACA-py on your edge gateway device. ACA-py can run on various platforms, including cloud servers, edge devices, and IoT devices.
  1. Identity Creation and Management:
  • Using ACA-py, you can create and manage decentralized identities. This involves generating and managing keys and DID (Decentralized Identifier) documents.
  1. Verifiable Credentials:
  • ACA-py allows you to issue and verify verifiable credentials. These credentials can represent various attributes, such as personal information, academic degrees, or professional certifications.
  1. Interactions with Blockchain:
  • ACA-py typically interacts with a blockchain, such as Hyperledger Indy, to anchor DID documents and transactions for verifiable credentials. Blockchain provides the immutability and trust needed for decentralized identity systems.
  1. Edge Gateway Integration:
  • The personal digital twin edge gateway serves as a point of control and data access for the individual. It can integrate with ACA-py to securely manage and share identity and credential information.
  1. Data Privacy and Consent:
  • Use ACA-py to implement consent management and data privacy features. Individuals should have control over who accesses their data and under what conditions.
  1. Secure Communication:
  • ACA-py ensures secure and private communication between the edge gateway and other parties in the ecosystem, including relying parties and other digital twins.
  1. Scalability and Performance:
  • Depending on the scale of your system, consider the scalability and performance aspects of ACA-py to handle a large number of identity interactions.
  1. Monitoring and Management:
  • Implement monitoring and management tools to keep track of the performance and security of your system. ACA-py provides APIs and tools for this purpose.
  1. Customization and Extensions:
  • Depending on your specific use case, you may need to customize ACA-py or extend it with additional features to meet your requirements.
  1. Compliance and Standards:
  • Ensure that your implementation complies with relevant standards and regulations, such as GDPR for data privacy.

ACA.py

JSON-LD (JavaScript Object Notation for Linked Data )

JSON-LD credentials

Several Credential Types

AnonCreds

JWT

JWP

LDP-VC

Can be heald and presented by anyone

If the holder is the subject, they must provide proof that they are the subject

Cryptography can be simpler

Verifiable Credential

Signed by issuer

Velue issues to holder

Verifiable Presentation

Value presented to verifier

Derived from verifiable credential

build process

lots of tries

using docker as a basic to try to build an image of yocto

realising, I need a dockerfile with specific commands to build a docker for yocto

note the changes for ISTAR server, such as updated docker-composer, crete docker file with settings from VM, upgrade storage to 128