Ubuntuのベースバージョンを変えずにLinuxカーネルをアップグレードする方法

環境のElementary OS 0.4 Lokiを利用しているが、カーネルのバージョンは4.4である。 4.4ではディスプレイ周りの不具合が多かったため、カーネルをアップグレードしたかった。 本記事の内容は、基本的にベースバージョンのUbuntu16.04でも同様と見てもらって構わない。

ukuuによるカーネルのアップグレード

ukuuというツールを使えば任意のkernelをインストール出来る

リポジトリを追加する

sudo apt-add-repository -y ppa:teejee2008/ppa

ukuuのインストール

sudo apt update && sudo apt install ukuu

Ukuu Kernel Update Utilityというアプリを選択して起動(ukuuでターミナルから起動してもいい)

ukuuのUI

カーネルのバージョンを選んでインストール出来る。インストールされたカーネルはローカルにキャッシュされていて、 キャッシュ済の場合バージョンを簡単に切り替えできる。

記事執筆時点では4.9.8までインストール出来ることを確認した。 動作確認時に特に問題はないと思われたが、Fusumaが依存しているlibinput-debug-eventsのログにエラーが出ていた。 そのためukuuによるアップグレードではなく、後述するHWEカーネル用パッケージをインストールすることにした。

HWEカーネル用パッケージのインストール

HWEカーネルとは

HWE(Hardware Enablement)カーネルは,より新しいハードウェアでもLTSを使えるように用意されている 「LTS Enablement Stacks」のカーネルです。 簡単に言うと,LTS以降にリリースされたUbuntuで使われるカーネルを,LTSでも使えるようにしたものです。 (http://gihyo.jp/admin/serial/01/ubuntu-recipe/0278) より引用

安定版と開発版があり、開発版であれば4.8が入るそうだったので開発版をインストールすることにした。

linux-generic-hwe-16.04-edgeをインストール

sudo apt install linux-generic-hwe-16.04-edge

バージョンの確認

$ uname -a

Linux XPS-L321X 4.8.0-34-generic #36~16.04.1-Ubuntu SMP Wed Dec 21 18:55:08 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

カーネルバージョンは4.8.0-34まで上がった。 ハードウェアのサポートが入っているためか、こちらではlibinput-debug-eventsが正しく動作していた。

Special Thanks