比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

目次
minLevel2

Major changes since 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.

References:

Setup build environment

書式設定済み
$ 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

Obtain the latest kernel sources

書式設定済み
$ 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

Create and modify configurations

書式設定済み
$ 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

書式設定済み
$ 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.

Install packages

書式設定済み
$ sudo apt-get -y purge linux-image-$(uname -r)
$ sudo apt-get autoremove --purge
$ sudo dpkg -i linux-headers-*.deb linux-image-*.deb