LoginSignup
4
2

More than 5 years have passed since last update.

Ubuntuへのカーネルパッチ適用手順

Posted at

Debianのカーネルパッケージにはtest-pachesスクリプトがあるが,Ubuntuにはなくてつらい.

手順

前準備:

$ sudo apt-get build-dep linux-image-$(uname -r)

カーネルソース取得:

$ . /etc/lsb-release
$ git clone git://kernel.ubuntu.com/ubuntu/ubuntu-${DISTRIB_CODENAME}.git
$ cd ubuntu-${DISTRIB_CODENAME}
$ git checkout -b foobar

2GB近くあるため時間がかかる.
あるいはapt-get source linux-image-$(uname -r)を実行してソースをとってきても問題ないが,gitのコミット情報(.git)が含まれないため,作業しにくいことがある.

パッチ適用:

patchgit amなどで自由にパッチを適用する.
直接Emacsで編集しても良い.

ビルド

$ fakeroot debian/rules clean && fakeroot debian/rules binary-headers binary-generic

デフォルトで並列にビルドされるので,DEB_BUILD_OPTIONS=parallel=$(nproc)など並列性を自分で指定する必要はない.

Ubuntu 15.10のKernel 4.2.0をAWS t2.large(2 CPUs)でビルドしたところ70分かかった.

インストール

$ sudo dpkg -i ../*.deb
$ sudo reboot

起動しなくなった場合はGRUBのプロンプトに降りて何とかする.
Amazon EC2だとGRUBに降りられなくてつらい.

参考

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2