Benefits of Kirkstone:
- There are 93 Security Fixes
https://docs.yoctoproject.org/migration-guides/release-notes-4.0.html#security-fixes-in-4-0
- Components where security fixes are added :- binutils, curl, epiphany, expat, ffmpeg, gcc, glibc, gmp, go, grub2, gzip, libarchive, libxml2, libxslt, lighttpd, linux-yocto, amdgpu, lua, openssl, qemu , rpm , seatd , speex , squashfs-tools , systemd , tiff , unzip , vim , virglrenderer , webkitgtk , xz , zlib
- There are 318 opensource component version upgrades
https://docs.yoctoproject.org/migration-guides/release-notes-4.0.html#recipe-upgrades-in-4-0
- Major opensource upgrades (Dunfell → Kirkstone) are :- GCC (9.3 → 11.3) , glibc (2.31 → 2.35) , glib-2.0 (2.62.4 → 2.72.3), systemd (244.3 → 250.5) , busybox (1.31.1 → 1.35.0)
- Netflix upgrade, youtube
- GCC compiler
- Maintainability - Dunfell 4 years ; Kirkstone 2 years ; CVE Dunfell is sill open (Refer Yocto mailing list), Upstream dunfell 3.1.24 has open CVE
- Build time - reduce number of default dependency (make build faster in first/second time)
- meta-rust is in core
- software bill of material (security infrastructure)
- share state - c standard. faster sstsate performance due to decompression standard cstd (twice faster than xz)
- license management tool improvement (more accurate license compliance)
- Kirkstone need minimum 4.x kernel (refer systemd)
- linux_kernel_header does not mandate
Kirkstone build instructions for RPI4-32
The following commands fetches the source code of Rpi4-32 using repo tool
repo init -u https://code.rdkcentral.com/r/manifests -b feature-kirkstone -m rdkb-extsrc.xml
repo sync --no-tag
MACHINE=raspberrypi4-rdk-broadband source meta-cmf-raspberrypi/setup-environment
bitbake core-image-minimal |
Kirkstone build instructions for RPI4-64
The following commands fetches the source code of Rpi4-64 using repo tool
repo init -u https://code.rdkcentral.com/r/manifests -b feature-kirkstone -m rdkb-extsrc.xml
repo sync --no-tag
MACHINE=raspberrypi4-64-rdk-broadband source meta-cmf-raspberrypi/setup-environment
bitbake rdkb-generic-broadband-image |
RDK-B RPI4 64 bit:
US Number | title |
---|
| Migrate RPI4 64 bit to Yocto 4.0 |
| Manifest changes to support kirkstone |
| Build Yocto 4 core-image-minimal for RPI 64bit target |
| Build Yocto 4 rdk-generic-broadband-image for RPI 64bit target |
RDK-B RPI4 32 bit:
US Number | title |
---|
| Migrate RPI4 32 bit to Yocto 4.0 |
Migration Efforts:
Kirkstone (Yocto 4.0) can be built using Ubuntu 18.04, 20.04 or 22.04 VMs. All these variants need additional packages to be installed over the vanilla version.
To tackle the build issues from moving one version to another, we have decided to split the problem into different subtasks. So instead of building a complete image at one go, we have planned for the generation of the following images:
- core-minimal-image
- rdk-generic-broadband-image
These images need to be tested in cmf, to ensure that nothing has broken the existing system.
In order to provide a smooth transition without disturbing the existing branch, we have created a branch called `feature-kirkstone` for non-OE layers and another branch called `rdk/kirkstone` for OE layers and bitbake.
The Kirkstone specific OE layers:
- Openembedded-core
- Bitbake
- Meta-openembedded
- Meta-virtualization
- Meta-java
- Meta-clang
- Meta-python2
- Meta-gplv2
The machine configuration shall have a distro defined “Kirkstone”
Note: A detailed migration steps will be update before March 02,2023
Kirkstone migration steps
- Enter into yocto4 workspace
- Raise CMF support ticket to create topic branch for all repos
→ feature-kirkstone for all CMF repositories
→ rdk/kirkstone for oe layer repositories - Execute generic repo init command
- Update manifest XML files as follows
→ in oe-layers.xml, rdk/kirkstone should be the revision for meta-openembedded, openembedded-core,bitbake and meta-virtualization
→ feature-kirkstone should be the revision for all other meta layers - Execute repo sync command
- Setup the environment for target
- Execute bitbake command to resolve parsing, compilation and other errors
Additional information for building a project:
Will be update before March 02,2023.Docker file will also be provided