Subscribed unsubscribe Subscribe Subscribe

Δ note -- でるたのーと

Haskell とかセキュリティとか a bit of English. 日本語と English を混ぜてくスタイル。

Ubuntu でカーネルをビルドする

今週のお題ゴールデンウィーク2017」

僕は考えていた。GW に何をすればいいのかを。最近少し人生がつまらないと思う。何か新しいことがしたい、刺激が欲しい。しかし何をすればいい? そして僕は、探していた答えにたどり着くんだ。

「そうだ、カーネルをビルドしよう」

Note: This article contains Japanese and English mixed content. So if you don't like this style, plese close your tab now.



さて、初投稿がいきなり茶番から始まりましたが、とある事情があってカーネルをビルドせざるを得ない状況になりました。正直、ビルドは簡単です。ぐぐって見つけた通りにやればいいんだもの。However, what I'm doing now is way more difficult. Geez. こいつについてはまた別件として記事にします。しばし待たれよ。

Okay, let's start it off.

First open this link. This document is all we need. なので賢いあなたたちには説明は要りませんよね? え、早く説明しないと食べちゃうぞーって? た、たべないでくださいー (棒)。

幸いうぶんつは、うぶんつ用の config をしたカーネルをインストールできるようです。対象の上でビルドして、そのままインストールということも可能です。簡単すぎて惚れてしまいそうだ。

Follow the procedures below:
依存関係で怒られることがありますが、その都度適宜解決してやってくださいね。

Obtining the source for an Ubuntu release

$ apt-get source linux-image-$(uname -r)

Build Environment

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

Modifying the configuration

$ chmod a+x debian/rules
$ chmod a+x debian/scripts/*
$ chmod a+x debian/scripts/misc/*
$ fakeroot debian/rules clean
$ fakeroot debian/rules editconfigs # you need to go through each (Y, Exit, Y, Exit..) or get a complaint about config later

In my case, I disabled SMAP searching by:

$ grep -rin "CONFIG_X86_SMAP=y"

and comment the matched part out before editconfig. editconfig somehow seems to know where to confirm and stops at the question of SMAP.

Building the kernel

$ fakeroot debian/rules clean
$ # quicker build:
$ fakeroot debian/rules binary-headers binary-generic binary-perarch
$ # if you need linux-tools or lowlatency kernel, run instead:
$ fakeroot debian/rules binary

でもって最後にインストール

$ sudo dpkg -i *.deb
$ sudo reboot

おつかれ様でした!
なんかネタ枠は日本語で、技術枠は英語でって感じが書きやすい気がしますね。

おわりに

SMAP解散した国民的アイドルグループのリンクが付くんだけど違うんだよなぁ。
Supervisor Mode Access Prevention なんだよなぁ。。。