Laird Linux Reference
Laird Linux is Laird Connectivity's board support package specifically tailored for our IG60-SERIAL and customer's connectivity driven use cases. Laird Connectivity regularly updates Laird Linux by merging in the upstream Linux kernel and Buildroot. We merge in major long-term support kernel releases which allow our IG60-SERIAL to utilize the latest in drivers and kernel space functionality, performance enhancements, security, and bug fixes. Also, we merge in major long-term support Buildroot releases which provide for the latest in over 2200 user space applications and libraries. Laird Linux takes this solid upstream heritage and integrates our custom platform enhancements for connectivity, security, and power consumption.
The core piece of Laird Linux is Buildroot. Buildroot is a from source build system designed to allow the customer to create a customized Linux image for a target embedded computing module. Buildroot is capable of configuring and building the bootloader, kernel, and rootfs for Laird Connectivity's IG60-SERIAL. Buildroot's core build system technologies are the well-known and easy to understand make build tool and kconfig configuration tool. This enables easy build customization through the user interface tools menuconfig or xconfig and Buildroot make commands. The Linux kernel, U-Boot bootloader, and Busybox core userspace ulilities toolkit all use make, Kconfig, and menuconfig. Build and configuration concepts found in one translate nicely to another. Buildroot has easy to read and extensive documentation available at (https://buildroot.org/docs.html) in pdf, html, and ascii form. If time permits, Laird Connectivity highly recommends following the Training section of the documentation landing page.
Laird Connectivity's Buildroot is a fork of the upstream Buildroot stable. Starting with and merging upstream allows Laird Connectivity to know the authenticity of Buildroot's source code and better verify the security of our fork. We target long-term support releases (LTS) for merging into our Buildroot fork.
Laird Connectivity's kernel is a fork the upstream Linux stable kernel. Starting with and merging upstream allows us to know the authenticity of the kernel's source code and better verify the security of our fork. We target long-term support releases (LTS) for merging into our kernel fork.
Laird Connectivity preselects prebuilt toolchains for each release of Laird Linux for our IG60-SERIAL. The advantage of using a preselected and prebuilt toolchain is the high level of QA verification on common components between stock Laird Connectivity development images and customer images. We are currently ultilizing prebuilt toolchains from Bootlin’s toolchain program. Bootlin, who is major contributor to Buildroot, provides a variety of prebuilt toolchains created from Buildroot's toolchain building capabilties. We select toolchains that have been marked stable by the Buildroot community and use proven components. Beyond the toolchains themselves, Bootlin also stores the following artifacts for reference from their Buildroot based toolchain generation process: README of all essential information, defconfig fragment to generate toolchain, build log, software bill-of-material (SBOM), test system image, and test system defconfig. Laird Connectivity configures each Laird Linux release to automatically download and use the correct toolchain.
Laird Linux releases follow an A.B.C.D versioning scheme. Rolling the A.x.x.x digit indicates we have merged a new major LTS kernel version and created a new git branch. Once we merge the new LTS kernel, B.C.D go to 0.0.0.0. For example the 6.0.0.x releases are based on the 4.14.x LTS kernel and the 7.0.0.x releases are based on the 4.19.x LTS kernel. All new A.0.0.x releases also merge the latest LTS Buildroot. For example the 6.0.0.x releases are based on the 2018.02.x LTS Buildroot and the 7.0.0.x releases are based on the 2019.02.x LTS Buildroot. Laird Connectivity rolls the x.B.x.x digit to indicate that a new major LTS Buildroot has been merged on a specific A.x.x.x LTS kernel after its initial Buildroot release. The x.x.C.x digit is reserved for future use. The x.x.x.D digit indicates the build number for that A.B.C.x release.
Laird Linux has two branch and release types. Every A.0.0.x branch of Laird Linux will have at minimum two releases, one release (R1) in Q2 and another (R2) in Q4 of the first year it is released. These will be pushed to our public Github site. Certain Laird Linux branches will be declared long-term support branches. These long-term support branches will consist of 5 scheduled releases and an extended support period for 5 years after the first 5 scheduled releases. The LTS branches will have the normal Q2 (R1) and Q4 (R2) releases in their first calendar year, a Q2 (R3) and Q4 (R4) sustaining release in their second calendar year, a Q2 (R5) sustaining release in their third calendar year, and 5 additional years of extended support releases as needed. This will allow for 7 years of support on a LTS branch. If you're interested in using the R3, R4, R5, or extended support releases of a LTS branch, please contact your Laird Connectivity sales representative for more details and pricing.