This repository contains repo manifest files for the DISTRO Core distribution. The distribution is based on Yocto tools to create a specialized Linux distro.
The development tasks manual is a invaluable resource to understanding the intricacies of using the project for creation of specialized Linux distributions.
Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. Git projects are captured into XML files for use by the repo tool. This allows for many different configurations and revisions to be captured into one location.
Copyright (c) 2024 brainhoard.com
For all original content supplied with this layer, unless otherwise specified, is licensed as LICENSE.
Editorial discretion is asserted on specific inclusion of layers that may referenced. All upstream packages and their source code come with their respective licenses. Individual packages license terms are to be respected.
Audit of GPLv3 supplies warning messages about packages used in a generated image. Primary use case is for appropriate risk management with respect to any policy decisions about GPLv3 utilization. GPLv3 carries specific clauses that potentially have implications of intellectual property rights reassignment.
Specialized DISTRO defined and used with layer scripting
| DISTRO | Description |
|---|---|
| conf/distro/distro-core.conf | Full System, CLI + GUI, C/C++ Runtime glibc |
| conf/distro/distro-core-no-gui.conf | Core System, CLI Only, C/C++ Runtime glibc |
| conf/distro/distro-musl.conf | Full System, CLI + GUI, C/C++ Runtime musl |
| conf/distro/distro-core-no-gui.conf | Core System, CLI Only, C/C++ Runtime musl |
| conf/distro/distro-tiny.conf | Tiny System, CLI Only, C/C++ Runtime musl, No systemd |
| conf/distro/include/*.conf | Shared configuration items for a specific feature, included by 'require' |
Specialized MACHINE defined and used with layer scripting
| MACHINE | BSP | Type | Description |
|---|---|---|---|
| conf/machine/com-cexpress-bt.conf | meta-intel | COM | Intel Baytrail, Core i5/i7 Adlink cExpress-bt Type 6 Compact |
| conf/machine/com-cexpress-sl.conf | meta-intel | COM | Intel SkyLake, Core i5/i7 Adlink cExpress-sl Type 6 Compact |
| conf/machine/sbc-gene-bt05.conf | meta-intel | SBC | Intel Baytrail, Atom E3845 Aaeon GENE-BT05 |
| conf/machine/sbc-raspberrypi5.conf | meta-raspberrypi | SBC | Raspberry Pi 5 |
| conf/machine/sbc-xavier-nx-devkit.conf | meta-tegra | SBC | NVIDIA Jetson Xavier-NX DevKit |
| conf/machine/include/*.conf | Shared configuration items for a specific feature, included by 'require' |
One time host initialization
# initialization of proxy
# cat <<EOF >>~/.bashrc
# export http_proxy=http://localhost:3128
# EOF
# initialization of WSL2 instance soft links to USERPROFILE
.repo/manifests/scripts/setup-home-links.sh
# initialization of yocto host dependency
.repo/manifests/scripts/setup-host-deps.shPrerequsite dependency is the creation of ~/.config/s3cmd/config
mkdir -p ~/.config/s3cmd
s3cmd --config ~/.config/s3cmd/config --configureGeneration of build artifacts can be performed by use of the wrapper script to bitbake. The following table indicates artifacts that have been generated at some point successfully. See .repo/manifests/scripts/images-build.sh for additional parameters.
-
downloads: all distro, all machine
distros="distro-core" # distro-core-no-gui distro-musl distro-core-no-gui machines="com-cexpress-bt com-cexpress-sl sbc-gene-bt05 sbc-raspberrypi5 sbc-xavier-nx-devkit" targets="distro-image" # distro-sdk-image export BB_NO_NETWORK="0" .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}" --target-flags="--continue" --fetch-downloads --clean-sstate
-
downloads: update s3://distro-core-downloads
bucket=distro-core-downloads s3cmd --config ~/.config/s3cmd/config setacl s3://$bucket --acl-private s3cmd --config ~/.config/s3cmd/config expire s3://$bucket --expiry-days 365 # s3cmd --config ~/.config/s3cmd/config del --recursive --force s3://$bucket s3cmd --config ~/.config/s3cmd/config sync --recursive --acl-public --delete-removed --progress \ --exclude 'git2/*' --exclude '*.done' --exclude '*.lock' --exclude 'tmp*' --exclude '*tmp' \ build/downloads/ s3://$bucket/
-
build: all distro, all machine
distros="distro-core" # distro-core-no-gui distro-musl distro-core-no-gui machines="com-cexpress-bt com-cexpress-sl sbc-gene-bt05 sbc-raspberrypi5 sbc-xavier-nx-devkit" targets="distro-image" # distro-sdk-image export BB_NO_NETWORK="1" .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}"
-
build: update s3://distro-core-sstate-cache
bucket=distro-core-sstate-cache s3cmd --config ~/.config/s3cmd/config setacl s3://$bucket --acl-private s3cmd --config ~/.config/s3cmd/config expire s3://$bucket --expiry-days 365 # s3cmd --config ~/.config/s3cmd/config del --recursive --force s3://$bucket s3cmd --config ~/.config/s3cmd/config sync --recursive --acl-public --delete-removed --progress \ build/sstate-cache/ s3://$bucket/
-
ostree: update s3://distro-core-artifacts
distros="distro-core" # distro-core-no-gui distro-musl distro-core-no-gui machines="com-cexpress-bt com-cexpress-sl sbc-gene-bt05 sbc-raspberrypi5 sbc-xavier-nx-devkit" targets="distro-image" # distro-sdk-image bucket=distro-core-artifacts s3cmd --config ~/.config/s3cmd/config expire s3://$bucket s3cmd --config ~/.config/s3cmd/config setacl s3://$bucket --acl-private for distro in ${distros} ; do for machine in ${machines} ; do deploy_dir=build/${distro}/${machine}-tmp/deploy for dir in ostree_repo ; do if [[ -d ${deploy_dir}/${dir} ]]; then # s3cmd --config ~/.config/s3cmd/config del --recursive --force s3://$bucket/${distro}/${machine}/${dir} s3cmd --config ~/.config/s3cmd/config sync --recursive --acl-public --delete-removed --progress \ ${deploy_dir}/${dir} s3://$bucket/${distro}/${machine}/${dir}/ fi done done done
-
build: distro-core
distros="distro-core" machines="sbc-gene-bt05" targets="distro-image" # distro-sdk-image .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}"
-
build: distro-core-no-gui
distros="distro-core-no-gui" machines="sbc-gene-bt05" targets="distro-image" # distro-sdk-image .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}"
-
build: distro-musl
distros="distro-musl" machines="sbc-gene-bt05" targets="distro-image" # distro-sdk-image .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}"
-
build: distro-core-no-gui
distros="distro-core-no-gui" machines="sbc-gene-bt05" targets="distro-image" # distro-sdk-image .repo/manifests/scripts/images-build.sh --distro="${distros}" --machine="${machines}" --target="${targets}"