OEMKernel
Size: 6634
Comment:
|
Size: 6468
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 8: | Line 8: |
OEM kernel ({{{linux-oem}}}) is an Ubuntu derivative kernel, specifically for use in OEM projects. The rationales for creating yet another Ubuntu kernel are: | OEM kernel is an Ubuntu derivative kernel, specifically for use in OEM projects. The rationales for creating yet another Ubuntu kernel are: |
Line 15: | Line 15: |
* improve upgradeability. | |
Line 18: | Line 17: |
The OEM kernel was used to be called OEM staging kernel, because the delta in OEM kernel should all be merged to the generic kernel in the next Ubuntu release, so it is essentially a staging code base. | The OEM kernel is also called the OEM staging kernel, because the delta in OEM kernel should all be merged to the generic kernel in the next Ubuntu release, so it is essentially a staging code base. |
Line 25: | Line 24: |
1. Bug fixes. In many cases, fixes come from upstream, and so they will not only be applied to OEM kernel but also to stock Ubuntu kernel through the Kernel SRU (stable release update) process. 1. 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. |
1. 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. 1. 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. |
Line 28: | Line 27: |
{{attachment:oem-kernel.png||width=300}} | 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. |
Line 30: | Line 29: |
In many ways, the OEM kernel is very similar or even identical to the stock Ubuntu kernel. As OEM kernel is based on the stock Ubuntu kernel, it inherits all its 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 (in Git parlance, “rebase”) for 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 [[https://staging.kernel.ubuntu.com/oem-delta/|these reports]]. |
Line 39: | Line 38: |
The OEM kernel normally releases on the same date as all the other Ubuntu kernels. | |
Line 40: | Line 40: |
The cadence of the OEM kernel follows the stock Ubuntu kernel in the optimal case, which means OEM kernel will normally released 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. |
Line 42: | Line 42: |
If there are patches that need to be added before the next cycle starts, then a re-spin could be done on 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 ([[https://bugs.launchpad.net/~anthonywong|Anthony]], [[https://launchpad.net/~tjaalton|Timo]] or [[https://launchpad.net/~acelankao|Acelan]]) directly. We will let you know if re-spin could be done, and by when you could expect the kernel be released. |
If there is any out-of-cycle bug fixes you need for your customers, please contact HWE team ([[https://bugs.launchpad.net/~anthonywong|Anthony]], [[https://launchpad.net/~tjaalton|Timo]] or [[https://launchpad.net/~acelankao|Acelan]]) directly. We will let you know if respin could be done, and by when you could expect the kernel release date. |
Line 51: | Line 49: |
* Focal, 5.10: * https://code.launchpad.net/~canonical-kernel/ubuntu/+source/linux-oem/+git/focal/+ref/oem-5.10 |
* Jammy, 6.1: * https://code.launchpad.net/~canonical-kernel/ubuntu/+source/linux-oem/+git/jammy/+ref/oem-6.1-next |
Line 55: | Line 53: |
The OEM kernel follows ''exactly'' 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-5.10]}}} for the 5.10 based OEM kernel in focal. | The OEM kernel follows the ''exact'' 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.1]}}} for the 6.1 based OEM kernel in Jammy. |
Line 60: | Line 58: |
Although the OEM kernel is targeted for OEM projects, it is not a private kernel at all. The kernel package is publicly available in the Ubuntu archive and anyone can install and run it. | Although the OEM kernel is targeted for OEM projects and thus OEM enabled/certified machines, it is not a private kernel at all. The kernel package is publicly available in the Ubuntu archive and anyone can install and run it. |
Line 62: | Line 60: |
However, if it is run on hardware that is not certified by Canonical, we cannot guarantee it works without issues. That being said, there is absolutely nothing added to the OEM kernel that we think will break other hardware. When we accept patches for the OEM kernel, we do our best to ensure they are regression free for any hardware, and are peer reviewed in the kernel mailing list. The maintenance follows other Ubuntu kernel's best practices, security updates are applied timely, and all bugs are tracked in the public Launchpad. Therefore, it is very safe to run it on any machine. |
There is nothing added to the OEM kernel that we think will break other hardware. When we accept patches for the OEM kernel, we do our best to ensure they are regression free for any hardware, and are peer reviewed in the kernel mailing list. The maintenance follows other Ubuntu kernel's best practices, security updates are applied timely, and all bugs are tracked in the public Launchpad. Therefore, it is safe to run it on any machine. |
Line 67: | Line 63: |
{{{apt install linux-oem-20.04b}}} | {{{apt install linux-oem-22.04c}}} for oem-6.1 |
Line 72: | Line 68: |
{{{apport-bug linux-oem-5.10}}} | {{{apport-bug linux-oem-6.1}}} |
Line 74: | Line 70: |
or go to [[this link|https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.10/+filebug]] to report with your web browser. | or go to [[https://bugs.launchpad.net/ubuntu/+source/linux-oem-6.1/+filebug|this link]] to report with your web browser. |
Line 76: | Line 72: |
All bugs can be viewed at [[bug page|https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.10]]. | All bugs can be viewed at [[https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.10|bug page]]. |
Contents |
OEM Kernel
What is OEM kernel?
OEM kernel is an Ubuntu derivative kernel, specifically for use in OEM projects. The rationales for creating yet another Ubuntu kernel are:
- Standard Ubuntu kernels have a 3-week SRU cadence. OEM projects require fix schedules that often do not align well with that.
- Hardware devices that are not supported by linux kernel directly require the use of DKMS packages, but DKMS package has its own downsides. By including the functionalities of such DKMS packages into OEM kernel eliminate the need for using DKMS packages, so that we can provide a much better out-of-the-box user experience to end users, no matter for the pre-installed image or stock Ubuntu.
It has the following merits:
- allows integration of major new features without impacting other kernels.
- quicker turnaround time for bug fixing.
- improve out-of-box user experience on certified machines.
The OEM kernel is also called the OEM staging kernel, because the delta in OEM kernel should all be merged to the generic kernel in the next Ubuntu release, so it is essentially a staging code base.
Differences from other Ubuntu kernels
The delta between the OEM and stock Ubuntu kernel falls into one of these categories:
- Additional device drivers, e.g. i915 drivers to support new Intel graphics, iwlwifi to support new wireless cards or new Realtek card reader.
- New features, e.g. to support Thunderbolt security level or power saving for an existing device driver.
- 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.
- 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.
Stable Release Updates (SRU) cadence
Kernel updates for a stable Ubuntu release follows a 3-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?
- Jammy, 6.1:
Sending patches to OEM kernel
The OEM kernel follows the exact 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.1] for the 6.1 based OEM kernel in Jammy.
Should I run it on my machine?
Why not?
Although the OEM kernel is targeted for OEM projects and thus OEM enabled/certified machines, it is not a private kernel at all. The kernel package is publicly available in the Ubuntu archive and anyone can install and run it.
There is nothing added to the OEM kernel that we think will break other hardware. When we accept patches for the OEM kernel, we do our best to ensure they are regression free for any hardware, and are peer reviewed in the kernel mailing list. The maintenance follows other Ubuntu kernel's best practices, security updates are applied timely, and all bugs are tracked in the public Launchpad. Therefore, it is safe to run it on any machine.
How to install it?
apt install linux-oem-22.04c for oem-6.1
What if I found any issues?
Report bug against the OEM kernel package on command line by running:
apport-bug linux-oem-6.1
or go to this link to report with your web browser.
All bugs can be viewed at bug page.
Kernel/OEMKernel (last edited 2024-03-20 02:32:36 by anthonywong)