Info: Version 1.7.x is available.

English Page

# TOMOYO Linuxカーネルの作成手順

Last modified: $Date: 2011-11-20 09:56:56 +0900 (Sun, 20 Nov 2011) $

カーネルをコンパイルするためには、以下のパッケージが必要です。

- gcc
- make
- ncurses

make menuconfig を実行し、「File systems」画面の一番下に表示される以下の項目を選択してください。

- [*] SAKURA (Domain-Free Mandatory Access Control) support
- [*] TOMOYO (Domain-Based Mandatory Access Control) support
- (2048) Default maximal count for learning mode
- (/sbin/modprobe /sbin/hotplug) Built-in domain initializer programs
- [*] Auditing interface support
- (1024) Default maximal count for grant log
- (1024) Default maximal count for reject log
- <m> SYAORAN (Tamper-Proof Device Filesystem) support

カーネル 2.6 には、 CONFIG_DEBUG_INFO という名前のコンパイルオプションが存在します。このオプションが有効である場合、コンパイルされたコードのサイズが約１０倍の大きさになります。このオプションを有効にすると、 /usr/src/ ディレクトリで約１ＧＢ、 /lib/modules/ ディレクトリで約３００ＭＢの余分なディスク領域を消費します。
ディスク領域を節約したい場合、以下のオプションを無効にしてください。

Kernel hacking --->[ ] Compile the kernel with debug info

以下の一覧から、該当するバージョンを選択してください。

- CentOS 3.9
- CentOS 4.9
- CentOS 5.6
- Debian Lenny
- Asianux 2.0
- Asianux 3.0
- Ubuntu 8.04
- VineLinux 5.2
- Gentoo
- バニラ 2.6 カーネル
- バニラ 2.4 カーネル

## CentOS 3.9

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-c3-2.4.21.sh # パッケージを作成する。 rpmbuild -bb --target i586 /tmp/ccs-kernel.spec

## CentOS 4.9

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-c4-2.6.9.sh # パッケージを作成する。 rpmbuild -bb --target i586 /tmp/ccs-kernel.spec

## CentOS 5.6

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-c5-2.6.18.sh # パッケージを作成する。 rpmbuild -bb --target i686 --without kabichk /tmp/ccs-kernel.spec

## Debian Lenny

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-debian_lenny.sh

## Asianux 2.0

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-ax2-2.6.9.sh # パッケージを作成する。 rpmbuild -bb --target i686 /tmp/ccs-kernel.spec

## Asianux 3.0

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-ax3-2.6.18.sh # パッケージを作成する。 rpmbuild -bb --target i686 --without kabichk /tmp/ccs-kernel.spec

## Ubuntu 8.04

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-ubuntu_8.04.sh

## VineLinux 5.2

# TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # ビルドスクリプトを実行する。 sh specs/build-vl5.2-2.6.27.sh # パッケージを作成する。 rpmbuild -bb --target i586 /tmp/ccs-kernel.spec

## Gentoo

# layman パッケージをインストールする。 emerge layman # subversion パッケージをインストールする。 emerge subversion # レポジトリを登録する。 layman -f -a sunrise # layman 用の make.conf を取り込むように /etc/make.conf を設定する。 echo "source /usr/local/portage/layman/make.conf" >> /etc/make.conf # カーネルソースをダウンロードする。 emerge ccs-sources # genkernel コマンドを実行する。 genkernel --menuconfig all # http://www.gentoo.org/doc/ja/kernel-upgrade.xml を見ながら grub の設定を行う。

## バニラ 2.6 カーネル

2.6.27 ～ 2.6.31 に対応しています。以下の手順では 2.6.31.14 を使用するものとします。

# ソースディレクトリへ移動する。 cd /usr/src/ # カーネルのソースをダウンロードする。 wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.14.tar.bz2 # 展開する。 tar -jxf linux-2.6.31.14.tar.bz2 # 展開されたソースのディレクトリへ移動する。 cd linux-2.6.31.14 # ソースから world writable 属性を取り除く。 find -print0 | xargs -0 chmod go-w -- # TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # カーネルパッチを適用する。 patch -sp1 < patches/ccs-patch-2.6.31.diff # TOMOYO Linux 用のオプションを選択する。 make -s menuconfig # 通常通りコンパイルする。 make -s make -s modules modules_install install

## バニラ 2.4 カーネル

2.4.37 に対応しています。以下の手順では 2.4.37.11 を使用するものとします。

# ソースディレクトリへ移動する。 cd /usr/src/ # カーネルのソースをダウンロードする。 wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.11.tar.bz2 # 展開する。 tar -jxf linux-2.4.37.11.tar.bz2 # 展開されたソースのディレクトリへ移動する。 cd linux-2.4.37.11 # ソースから world writable 属性を取り除く。 find -print0 | xargs -0 chmod go-w -- # TOMOYO Linux カーネルパッチをダウンロードする。 wget -O ccs-patch-1.6.9-20111111.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz' # 署名を確認する。 wget -O ccs-patch-1.6.9-20111111.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20111111.tar.gz.asc' gpg ccs-patch-1.6.9-20111111.tar.gz.asc # 展開する。 tar -zxf ccs-patch-1.6.9-20111111.tar.gz # カーネルパッチを適用する。 patch -sp1 < patches/ccs-patch-2.4.37.diff # TOMOYO Linux 用のオプションを選択する。 make -s menuconfig # 通常通りコンパイルする。 make -s dep make -s make -s modules modules_install install