# Ubuntu的Hardware Enablement(HWE)内核

在安装Ubuntu Linux时，默认选项是`Install Server`，在这个选项下方还有一个选项`Install Server with HWE kernel`。那么，什么是HWE内核呢？

在Ubuntu发布之后，到下一个release发布时间间隔为6个月。在此期间，新的硬件设备更新发布非常频繁。为了能够及时获取最新的硬件技术支持，Ubuntu提供了一种称为Hardware Enablement(HWE)的内核，这种内核采用滚动发布方式，一旦新的内核发布，立即由Ubuntu打包并测试，然后提供给Ubuntu用户。这种方式带来了一些缺点：新内核发布过于快速，可能引入一些bug和问题，并且可能不适合企业使用。

Ubuntu提供至少2中内核：`General Avaliability(GA)`内核，是最稳定的内核，不会在release点更新；另一种是`Hardware Enablement(HWE)`内核，提供最快速更新发布。

以上两个内核也就是`linux-generic`和`linux-hwe-generic`软件包。

## LTS EnablementStack Stacks

Ubuntu LTS enablement(HWE) stacks提供较新的内核和X支持，可以手工安装也可以在安装系统是安装：

* 桌面安装HWE stack:

```
sudo apt-get install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.0
```

* 服务器安装HWE stack:

```
sudo apt-get install --install-recommends linux-generic-hwe-16.04
```

* 检查当前支持状态：

```
hwe-support-status --verbose
```

![Ubuntu 16.04.x内核支持发布规划](https://3334459331-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LeFI0OlHH4bg0gqJ3hR%2F-M1T9_Bfe6KWQGInkWGi%2F-M1TA6ObdzXfH0-X-Dc0%2Fubuntu_16.04.x_kernel_support_schedule.svg?generation=1583201769143044\&alt=media)

## 升级内核

注意：在安装了Ubuntu系统后，使用`apt-get update`和`apt-get upgrade`更新系统，依然会有一个提示

```
The following packages have been kept back:
  libdrm2 linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
```

则以上软件包并没有更新。

这是为何？

## 参考

* [What is hardware enablement (HWE)?](https://askubuntu.com/questions/248914/what-is-hardware-enablement-hwe)
* [LTSEnablementStack](https://wiki.ubuntu.com/Kernel/LTSEnablementStack)
* [RollingLTSEnablementStack](https://wiki.ubuntu.com/Kernel/RollingLTSEnablementStack)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://huataihuang.gitbook.io/cloud-atlas-draft/os/linux/ubuntu/install/ubuntu_hardware_enablement_kernel.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
