目次 | ||
---|---|---|
|
...
10.04
...
The biggest change from 10.04 is that "server" flavour has been removed.
Ubuntu server now uses the "generic" flavour, the same kernel used in desktop edition.
Differences between server and generic flavours were described here.
Build our own server flavour
We need "server" flavour for 12.04 for best performance.
To build our own server flavour of the kernel, follow instructions below.
...
以降の大きな変更
一番大きい変更は server フレバーがなくなって、デスクトップ版と同じ generic カーネルだけになったこと。
もともとあった違いはここにまとまっているが、割り込み制御や I/O スケジューラーなどが異なっている。
server フレバーを自力でビルドする
ベストパフォーマンスのためにカーネルは自前でビルドすることにしましょう。
参考資料:
- https://help.ubuntu.com/community/Kernel/Compile
- http://blog.avirtualhome.com/compile-linux-kernel-3-2-for-ubuntu-11-10/
...
環境の準備
書式設定済み |
---|
$ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo reboot (make sure the system is running the latest kernel) $ sudo apt-get install build-essential |
...
カーネルソースをダウンロード
書式設定済み |
---|
$ apt-cache search linux-image-3 virtual | sort | tail -1 | sed 's/-virtual.*$//' linux-image-3.2.0-25 $ sudo apt-get build-dep linux-image-3.2.0-25-generic $ apt-get source linux-image-3.2.0-25-generic |
...
設定を編集
書式設定済み |
---|
$ cd linux-3.2.0/debian.master/config/amd64 $ cp config.flavour.generic config.flavour.server $ vi config.flavour.server (change I/O scheduler from CFQ to deadline. Disable voluntary preemption.) $ cat config.flavour.server # CONFIG_DEFAULT_CFQ is not set CONFIG_DEFAULT_DEADLINE=y CONFIG_DEFAULT_IOSCHED="deadline" CONFIG_INTEL_IDLE=y CONFIG_NR_CPUS=256 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set $ sed -i 's/^CONFIG_HZ=250/CONFIG_HZ=100/' config.common.amd64 $ cd .. $ vi config.common.ubuntu (Edit HZ like this) CONFIG_HZ_100=y # CONFIG_HZ_1000 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set $ cd ../.. $ chmod -R a+x debian/scripts/* $ ./debian/rules updateconfigs $ cd debian.master $ vi etc/getabis (append server flavour to amd64 arch like this) getall amd64 generic virtual server $ vi rules.d/amd64.mk (append server flavour to list of flavours like this) flavours = generic virtual server $ cp control.d/vars.generic control.d/vars.server $ vi control.d/vars.server (edit as you like) $ diff -u control.d/vars.generic control.d/vars.server --- control.d/vars.generic 2012-05-30 06:41:02.000000000 +0000 +++ control.d/vars.server 2012-05-30 07:02:14.952238628 +0000 @@ -1,6 +1,6 @@ arch="i386 amd64" -supported="Generic" -target="Geared toward desktop and server systems." +supported="Server" +target="Geared toward server systems." desc="=HUMAN= SMP" bootloader="grub-pc | grub-efi-amd64 | grub-efi-ia32 | grub | lilo (>= 19.1)" provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9" $ cd .. |
Apply patches
Apply a patch for LIO iSCSI target.
Obtain the patch from gist.github.com.
Build packages
独自パッチを適用
LIO のパッチとか。
ビルド
書式設定済み |
---|
$ fakeroot debian/rules clean
$ skipabi=true skipmodule=true fakeroot debian/rules binary-indep
(this will build kernel header package)
$ DEB_BUILD_OPTIONS=parallel=8 skipabi=true skipmodule=true fakeroot debian/rules binary-server
(this will build kernel image package)
$ ls ../*.deb
../linux-doc_3.2.0-24.38_all.deb
../linux-headers-3.2.0-24_3.2.0-24.38_all.deb
../linux-headers-3.2.0-24-server_3.2.0-24.38_amd64.deb
../linux-image-3.2.0-24-server_3.2.0-24.38_amd64.deb
../linux-source-3.2.0_3.2.0-24.38_all.deb
../linux-tools-common_3.2.0-24.38_all.deb
|
Save linux-headers-*.deb
and linux-image-*.deb
packages.
...
インストール
書式設定済み |
---|
$ sudo apt-get -y purge linux-image-$(uname -r) $ sudo apt-get autoremove --purge $ sudo dpkg -i linux-headers-*.deb linux-image-*.deb |
...
バグ
BDI flusher threads stop working
...