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
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
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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