Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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

      Reference :- https://docs.yoctoproject.org/migration-guides/release-notes-4.0.html 
      Reference :-https://code.rdkcentral.com/r/plugins/gitiles/manifests/+/refs/heads/kirkstone/oe-layers.xml (Kirkstone specific OE layers )
 

...

Kirkstone build instructions for RPI4-32

...

    

RPI4 Kirkstone build instructions

RPI4 32-bit build

Code Block
languagebash
themeDJango
repo init -u https://code.rdkcentral.com/r/manifests -b feature-kirkstone -m rdkb-extsrc.xml  
repo sync --no-tag-clone-bundle --no-tags  

#Need to Choose below configuration for Rpi4-32 bit
MACHINE=raspberrypi4-rdk-broadband source meta-cmf-raspberrypi/setup-environment

bitbake rdkbrdk-generic-broadband-image

...

RPI4

...

64

...

-bit build

Code Block
languagebash
themeDJango
repo init -u https://code.rdkcentral.com/r/manifests -b feature-kirkstone -m rdkb-extsrc.xml 
repo sync --no-clone-bundle --no-tagtags

#Need to Choose below configuration for Rpi4-64 bit
MACHINE=raspberrypi4-64-rdk-broadband source meta-cmf-raspberrypi/setup-environment
bitbake rdkb-generic-broadband-image

Kirkstone (Yocto 4.0) - User Stories :

RDK-B RPI4 64 bit:

...

Jira
serverJIRA
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1805

...

 

Migrate RPI4 64 bit to Yocto 4.0

...

Jira
serverJIRA
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1883

...

Jira
serverJIRA - 2
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1902

...

Build Yocto 4 core-image-minimal for RPI 64bit target

...

Jira
serverJIRA - 2
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1977

...



bitbake rdk-generic-broadband-image

...

RDK-B RPI4 32 bit:

...

...

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”

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:

   Docker file for ubuntu 20.04 and 18.04

...

View file
nameubuntu_18.04.txt.zip
height250


Sanity

...

Test cases :

    Test Summary

  

S.No

Sanity tested on

Status

1

erouter0 interface got Wan IP

Pass

2

brlan0 interface got default LAN IP

Pass

3

Able to take SSH Connection

Pass

4

All CCSP process are running

Pass

5

Able to Ping www.google.com

Pass

6

All systemd services are running

Pass

7

Able to connect LAN client

Pass

8

LAN client got IP from default pool range

Pass

9

LAN client should open with CaptivePortal Page

Pass

10

Able to connect wireless client

Pass

11

Wireless client got IP from default pool range

Pass

12

Wireless client can access the CaptivePortal Page

Pass

13

Internet should work on Connected clients after changing the default credentials

Pass

14

RdkWanManager systemd service should be in running state

Pass

15

Using dmcli to check

the 

the CCSP TR-181

DataModels 

DataModels

Pass

16

15

WebUI page should be loaded on Connected clients after changing the default credentials

Pass

17

16

WebUI page should be loaded through erouter0IP via RM

Pass

18

hostapd systemd service should be in running

Pass

19

17

wlan0 and wlan1 interfaces should be UP and RUNNING

Pass

20

18

All ccsp logs files should be generated in /rdklogs/logs folder

Pass
19dmcli eRT getv Device.Pass



References :

We captured all the kirkstone build errors and its fixes in this link RDK-B RPI4 64 bit and RDK-B RPI4 32 bit .


Code Commits

https://code.rdkcentral.com/r/q/topic:RPI_kirkstone_migration


Kirkstone (Yocto 4.0) - Epic Story:

RDK-B RPI4 64 bit:

Jira
serverJIRA - 2
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1805
 

RDK-B RPI4 32 bit:

Jira
serverJIRA - 2
serverId11deff04-0380-3a3d-a916-0849d4e573f7
keyREFPLTB-1806

Jira Tickets :

Jira
serverJIRA - 2
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQueryproject = REFPLTB AND labels = RPI_kirkstone_migration ORDER BY priority DESC, updated DESC
serverId11deff04-0380-3a3d-a916-0849d4e573f7
View file
nameKirkstone-Build-Sanity-TestResults.docx
height250


Technical support:

support@rdkcentral.com

...