OEMKernel

OEM Kernel

What is the OEM kernel?

The OEM kernel is an optimised derivative Ubuntu kernel, designed specifically for use in OEM projects. This custom kernel is developed to address the unique needs and timelines of OEM projects, offering several key advantages. The main reasons for introducing this distinct Ubuntu kernel variant are:

  • To accommodate the rapid development cycles and specific market launch timings required by OEM projects.
  • To provide support for hardware devices not directly supported by the standard Linux kernel. This is achieved by integrating the functionality of Dynamic Kernel Module Support (DKMS) packages directly into the OEM kernel, thereby avoiding the complications associated with DKMS packages. This integration ensures a superior initial user experience, whether for pre-installed systems or for installations of the stock Ubuntu operating system.

The OEM kernel offers several benefits:

  • It enables the integration of significant new features without affecting other kernel versions, maintaining system stability across updates.
  • It allows for a faster response and resolution time for bug fixes, enhancing system reliability.
  • It significantly improves the out-of-the-box experience for users on certified devices, ensuring hardware compatibility and performance from the first use.

Considered a staging kernel, the OEM kernel serves as an intermediate development phase. The modifications and updates made within the OEM kernel are intended to be merged back into the generic Ubuntu kernel in subsequent releases. This approach ensures that improvements and enhancements benefit the broader Ubuntu user base over time, making the OEM kernel a critical component of Ubuntu's development ecosystem.

Differences from other Ubuntu kernels

The delta between the OEM and stock Ubuntu kernel falls into one of these categories:

  1. Additional device drivers, e.g. i915 drivers to support new Intel graphics, iwlwifi to support new wireless cards or new Realtek card reader.
  2. New features, e.g. to support Thunderbolt security level or power saving for an existing device driver.
  3. Bug fixes. In many cases, fixes come from upstream, and so they will not only be applied to OEM kernel but also to the generic Ubuntu kernels through the Kernel SRU (stable release update) process.
  4. Temporary workarounds. For critical issues where a fix does not yet exist at upstream, either the issue is newly found or the proposed fix has not been accepted by upstream, a workaround will be used to fix the issue temporarily, and will be replaced by a proper fix later, which is usually a fix that has been sanctioned by upstream. Note that this kind of short-term workarounds is not encouraged.

In many ways, the OEM kernel is just the same or very similar to the generic Ubuntu kernels. It inherits all the updates, from regular updates that come from upstream stable kernel to all kernel CVE security vulnerability patches. The OEM kernel keeps in sync with the stock Ubuntu kernel by pulling in any new changes every 3 weeks. This way the OEM kernel will always have only a limited delta compare with stock Ubuntu kernel, and not moving farther away from it.

The delta between the OEM kernel and other generic Ubuntu kernels can be found in these reports.

Support lifecycle

OEM kernels have a shorter life cycles than their generic Ubuntu kernel counterparts. They will get rolled off to the next HWE kernel once all the fixes have been forward-ported.

Before the kernel reaches end-of-life, all of the changes made to the OEM kernel will be reviewed to make sure that the kernel in the next Ubuntu release already has the changes it needs. For instance, a driver we integrate in the OEM kernel should also exist in the next kernel. This ensures users a smooth upgrade path — systems that upgrade to the next Ubuntu release will not lose any functionalities or features, nor have any new regression.

Supported Versions

  • oem-6.1 and oem-6.5 are currently supported.

End of Life

  • All version before 6.1 have already reached EOL.
  • oem-6.1 will reach EOL on Apr 1, 2024. In kernel cycle 2024.03.04, oem-6.1 will be migrated to oem-6.5.

Development

  • oem-6.5 for Ubuntu Noble (24.04) is under development, and will be available by 24.04 release.

Stable Release Updates (SRU) cadence

Kernel updates for a stable Ubuntu release follows the 4/2-week cadence, as documented in Kernel/StableReleaseCadence. You can find the current and next SRU cadence at http://kernel.ubuntu.com. The OEM kernel normally releases on the same date as all the other Ubuntu kernels.

If there are patches that need to be added before the next cycle starts, respins could be done by request. The purpose of the OEM kernel is for accommodating OEM bug fixes that do not align well with the regular SRU cadence.

If there is any out-of-cycle bug fixes you need for your customers, please contact HWE team (Anthony, Timo or Acelan) directly. We will let you know if respin could be done, and by when you could expect the kernel release date.

Security fixes

OEM kernel rebases to the master kernel on every SRU cycle, so it gets the same fixes (including but not limited to CVE fixes) from master kernel.

Where is the source code for the OEM kernel?

Sending patches to OEM kernel

The OEM kernel follows the same process for submitting patches as the other Ubuntu kernels, that means the guidelines outlined in Kernel/Dev/KernelPatches for patch submission are followed. Patches have to conform to the format in Kernel/Dev/StablePatchFormat. Use a pattern like [OEM-6.5] for the 6.5 based OEM kernel in Jammy.

Should I run it on my machine?

Despite its primary designation for OEM projects and certified devices, the OEM kernel is openly accessible, not restricted to private use. It is available for download from the Ubuntu archive, making it possible for anyone to install and utilize it on their devices.

The development and integration process for the OEM kernel is meticulously managed to avoid any adverse impact on diverse hardware configurations. This involves:

  • A thorough review process for patches to ensure they do not introduce regressions for any hardware. This diligence ensures the OEM kernel maintains compatibility across a broad range of devices.
  • Peer review of patches in the kernel mailing list, facilitating a collaborative and transparent approach to quality assurance.
  • Adherence to the best practices established for Ubuntu kernel maintenance, including timely application of security updates and comprehensive bug tracking via the public Launchpad platform.

Given these careful considerations, the OEM kernel is designed to be safely operable on any machine, not just those for which it was specifically optimised. This inclusive approach underscores Ubuntu's commitment to creating versatile and reliable software solutions for a wide audience.

How to install it?

  • apt install linux-oem-22.04c for oem-6.1

    apt install linux-oem-22.04d for oem-6.5

What if I found any issues?

Report bug against the OEM kernel package on command line by running:

  • apport-bug linux-oem-6.1

    apport-bug linux-oem-6.5

or go to this link to report with your web browser.

All bugs can be viewed at bug page.


CategoryKernel CategoryUbuntuTeams

Kernel/OEMKernel (last edited 2024-03-20 02:32:36 by anthonywong)