Info: Version 1.7.x is available.

# TOMOYO Linux on Armadillo-9 導入手順書

Last modified: $Date: 2013-01-17 23:04:43 +0900 (Thu, 17 Jan 2013) $

TOMOYO Linux とは、 Linux に強制アクセス制御機能を追加することでセキュリティを向上させるための実装です。 強制アクセス制御機能を提供する実装としては SELinux や LIDS 等がありますが、 TOMOYO Linux は SELinux ほど多機能すぎず、 LIDS のようにハードリンクの問題を受けないため、 組込み用途でも簡単に利用できます。

# １：カーネルのコンパイル

コンパイル済みカーネルを以下のアドレスからダウンロードできます。コンパイル済みカーネルを使う場合は「２：Debian の Armadillo-9 へのインストール」まで飛んでください。

- http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/32753/kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz
- http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/32753/kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz

コンパイル済みカーネルを使わずに、カスタマイズしたい場合は以下の手順を実行してください。

## VMware Player 用クロスコンパイル環境のインストール

http://armadillo.atmark-techno.com/20061028-1 から VMware Player 用のクロスコンパイル環境をダウンロードします。 この手順書では http://download.atmark-techno.com/atde/atde-20061028.zip を使用します。

## カーネルのコンパイル

クロスコンパイル環境にユーザ atmark 、パスワード atmark としてログインします。

http://download.atmark-techno.com/armadillo-9/source/ からカーネルのソースをダウンロードします。 この手順書では linux-2.4.31-a9-3.tar.gz または linux-2.6.12.3-a9-16.tar.gz を使用します。

    cd
    wget http://download.atmark-techno.com/armadillo-9/source/linux-2.4.31-a9-3.tar.gz
    tar -zxf linux-2.4.31-a9-3.tar.gz
    cd linux-2.4.31-a9-3

または、

    cd
    wget http://download.atmark-techno.com/armadillo-9/source/linux-2.6.12.3-a9-16.tar.gz
    tar -zxf linux-2.6.12.3-a9-16.tar.gz
    cd linux-2.6.12.3-a9-16

http://sourceforge.jp/projects/tomoyo/ から TOMOYO Linux 用カーネルパッチをダウンロードします。 この手順書では http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20130117.tar.gz を使用します。

    wget -O ccs-patch-1.6.9-20130117.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20130117.tar.gz'
    wget -O ccs-patch-1.6.9-20130117.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/30297/ccs-patch-1.6.9-20130117.tar.gz.asc'
    gpg ccs-patch-1.6.9-20130117.tar.gz.asc
    tar -zxf ccs-patch-1.6.9-20130117.tar.gz

linux-2.4.31-a9-3.tar.gz を使う場合は、カーネル 2.4.31-a9-3 用のパッチを適用します。

    patch -p1 < patches/ccs-patch-2.4.31-armadillo-9.diff

linux-2.6.12.3-a9-16.tar.gz を使う場合は、カーネル 2.6.12.3-a9-16 用のパッチを適用します。

    patch -p1 < patches/ccs-patch-2.6.12-armadillo-9.diff

普通のカーネルと区別できるようにするために、必要に応じて Makefile の EXTRAVERSION の末尾に -ccs を追加します。

http://download.atmark-techno.com/armadillo-9/dist/ から atmark-dist をダウンロードします。 この手順書では atmark-dist-20061228.tar.gz を使用します。

    cd
    wget http://download.atmark-techno.com/armadillo-9/dist/atmark-dist-20061228.tar.gz
    tar -zxf atmark-dist-20061228.tar.gz
    cd atmark-dist-20061228

linux-2.4.31-a9-3.tar.gz を使う場合は、以下のようにシンボリックリンクを張ります。

    ln -s ../linux-2.4.31-a9-3 linux-2.4.x

linux-2.6.12.3-a9-16.tar.gz を使う場合は、以下のようにシンボリックリンクを張ります。

    ln -s ../linux-2.6.12.3-a9-16 linux-2.6.x

あとは atmark-dist Developers Guide で述べられている手順どおりです。 コンパイルが完了すると images ディレクトリに linux.bin.gz というファイルと romfs ディレクトリに lib/modules/ というディレクトリが作成されます。これらを後ほどコンパクトフラッシュ内にコピーするので、カーネルコンフィグと共にまとめておきます。

linux-2.4.31-a9-3.tar.gz を使う場合は、以下のように実行します。

    mkdir romfs/boot
    cp -p images/linux.bin.gz romfs/boot/Image.gz
    cp -p linux-2.4.x/.config romfs/boot/config-2.4.31-a9-3-ccs
    cd romfs
    su -c 'chown -R root.root boot/ lib/; chmod -R g-s boot/ lib/'
    tar -zcf ~/kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz boot/ lib/modules/

linux-2.6.12.3-a9-16.tar.gz を使う場合は、以下のように実行します。

    mkdir romfs/boot
    cp -p images/linux.bin.gz romfs/boot/Image.gz
    cp -p linux-2.6.x/.config romfs/boot/config-2.6.12.3-a9-16-ccs
    cd romfs
    su -c 'chown -R root.root boot/ lib/; chmod -R g-s boot/ lib/'
    tar -zcf ~/kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz boot/ lib/modules/

# ２：Debian の Armadillo-9 へのインストール

この手順書では容量５１２ＭＢのコンパクトフラッシュ（CF）を使用します。

基本的に Software Manual で述べられている手順どおりです。

Hermitコマンドプロンプトを起動するために、 JP2 をショート状態にします。 CF を抜いてあることを確認してから、 Armadillo-9 の電源を入れます。

hermit> というプロンプトが表示されるので、以下のコマンドを実行します。

    hermit> clearenv

Armadillo-9 の電源を切ります。

オンボードFlashメモリ内のLinuxカーネルで起動させるために、 JP2 をオープン状態にします。 CF を挿してあることを確認してから、 Armadillo-9 の電源を入れます。

ユーザ名 root 、パスワード root でログインします。

[root@armadillo9 (ttyAM0) /]# というプロンプトが表示されるので、システム時刻を修正します。 MMDDhhmmCCYY の部分は現在時刻を指定してください。

    date MMDDhhmmCCYY
    hwclock -w

CF のパーティション分割を行います。この手順書では CF が /dev/hdc として認識される場合で説明します。

    fdisk /dev/hdc

パーティションをフォーマットします。この手順書では /dev/hdc1 のみを使用する場合で説明します。

    mke2fs -O none /dev/hdc1

パーティションをマウントします。

    mount /dev/hdc1 /mnt/
    cd /mnt/

http://download.atmark-techno.com/armadillo-9/debian/ から CF にインストールする環境をダウンロードします。 この手順書では arm-sarge-20050310-1.tgz ～ arm-sarge-20050310-5.tgz を使用するものとします。

[root@armadillo9 (ttyAM0) /mnt]# というプロンプトが表示されるので以下のコマンドを実行してください。

    wget http://download.atmark-techno.com/armadillo-9/debian/arm-sarge-20050310-1.tgz
    wget http://download.atmark-techno.com/armadillo-9/debian/arm-sarge-20050310-2.tgz
    wget http://download.atmark-techno.com/armadillo-9/debian/arm-sarge-20050310-3.tgz
    wget http://download.atmark-techno.com/armadillo-9/debian/arm-sarge-20050310-4.tgz
    wget http://download.atmark-techno.com/armadillo-9/debian/arm-sarge-20050310-5.tgz
    tar -zxf arm-sarge-20050310-1.tgz
    rm -f arm-sarge-20050310-1.tgz
    tar -zxf arm-sarge-20050310-2.tgz
    rm -f arm-sarge-20050310-2.tgz
    tar -zxf arm-sarge-20050310-3.tgz
    rm -f arm-sarge-20050310-3.tgz
    tar -zxf arm-sarge-20050310-4.tgz
    rm -f arm-sarge-20050310-4.tgz
    tar -zxf arm-sarge-20050310-5.tgz
    rm -f arm-sarge-20050310-5.tgz

パーティションをアンマウントします。

    cd /
    umount /mnt/

ログアウトします。

# ３：TOMOYO Linux の初期設定

ユーザ名 root 、パスワード root でログインします。

[root@armadillo9 (ttyAM0) /]# というプロンプトが表示されるので、パーティションをマウントします。この手順書では /dev/hdc1 が / としてマウントされる場合で説明します。

    mount /dev/hdc1 /mnt/

CF にインストールされた環境をカスタマイズするために /mnt/ へ chroot して bash を起動します。

    chroot /mnt/ bash

proc ファイルシステムをマウントします。

    mount -t proc none /proc

/etc/network/interfaces や /etc/resolv.conf 等を設定します。

ソフトウェアを最新版にアップデートします。

    apt-get update
    apt-get -y upgrade

ダウンロードまたは作成した kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz または kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz を / 以下に展開します。

    cd /
    wget -O kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/32753/kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz'
    tar -zxf kernel-2.4.31-a9-3-tomoyo_1.6.6.tar.gz

または

    cd /
    wget -O kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/32753/kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz'
    tar -zxf kernel-2.6.12.3-a9-16-tomoyo_1.6.6.tar.gz

コンパイル済み TOMOYO Linux 用ツールをダウンロードします。また、ポリシーの初期設定を行います。

    wget -O ccs-tools_1.6.6-1_arm.deb 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/32753/ccs-tools_1.6.6-1_arm.deb'
    dpkg -i ccs-tools_1.6.6-1_arm.deb
    /usr/lib/ccs/init_policy.sh

chroot 環境を終了し、 /dev/hdc1 をアンマウントしてから Armadillo-9 の電源を切ります。

    exit
    umount /mnt/proc/
    umount /mnt/

Hermitコマンドプロンプトを起動するために、 JP2 をショート状態にします。 CF を抜いてあることを確認してから、 Armadillo-9 の電源を入れます。

hermit> というプロンプトが表示されるので、以下のコマンドを実行します。

    hermit> setenv console=ttyAM0,115200 root=/dev/hdc1 noinitrd

Armadillo-9 の電源を切ります。

CF を挿してあることを確認してから、 Armadillo-9 の電源を入れます。

これでインストールは完了です。ここから先は http://tomoyo.sourceforge.jp/ja/1.6.x/install.html を参照してください。