1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 |
<html lang="ja-JP"> |
3 |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
5 |
<meta http-equiv="Content-Style-Type" content="text/css"> |
6 |
<title>TOMOYO Linux 導入手順書</title> |
7 |
<link rel="stylesheet" href="http://tomoyo.sourceforge.jp/tomoyo.css" media="all" type="text/css"> |
8 |
</head> |
9 |
<body> |
10 |
<p>Info: Version <a href="../1.8/">1.8.x</a> is available.</p> |
11 |
<p style="text-align:right;"><a href="cat760-sh.html.en">English Page</a></p> |
12 |
<p style="text-align:right;">Last modified: $Date$</p> |
13 |
|
14 |
<h1>TOMOYO Linux on CAT760</h1> |
15 |
|
16 |
<p>このページでは、 TOMOYO Linux を <a href="http://www.si-linux.co.jp/index.php?CAT/CAT760">CAT760</a> 上で動作させる手順について説明します。ホスト環境として x86 上で動作している Debian Sarge を使用します。</p> |
17 |
|
18 |
<hr> |
19 |
|
20 |
<table border="0" summary="index"> |
21 |
<tr><td> |
22 |
<a href="#basic">基本編:コンパクトフラッシュ上のカーネルと rootfs を使って動作させる</a> |
23 |
<ul> |
24 |
<li><a href="#basic_1">ステップ1:ホスト環境を構築する</a></li> |
25 |
<li><a href="#basic_2">ステップ2:コンパイルに必要なパッケージをインストールする</a></li> |
26 |
<li><a href="#basic_3">ステップ3:カーネルをコンパイルする</a></li> |
27 |
<li><a href="#basic_4">ステップ4:ツールをコンパイルする</a></li> |
28 |
<li><a href="#basic_5">ステップ5:コンパクトフラッシュをフォーマットする</a></li> |
29 |
<li><a href="#basic_6">ステップ6:コンパクトフラッシュにコピーする</a></li> |
30 |
<li><a href="#basic_7">ステップ7:ポリシーの初期化を行う</a></li> |
31 |
<li><a href="#basic_8">ステップ8:ポリシーの調整を行う</a></li> |
32 |
<li><a href="#basic_9">ステップ9:ポリシーを作成する</a></li> |
33 |
<li><a href="#basic_appendix">補足:工場出荷時の状態に戻す</a></li> |
34 |
</ul> |
35 |
</td></tr><tr><td> |
36 |
<a href="#advanced">応用編:フラッシュROM上のカーネルと rootfs を使って動作させる</a> |
37 |
<ul> |
38 |
<li><a href="#advanced_1">ステップ1:ホスト環境を構築する</a></li> |
39 |
<li><a href="#advanced_2">ステップ2:コンパイルに必要なパッケージをインストールする</a></li> |
40 |
<li><a href="#advanced_3">ステップ3:カーネルをコンパイルする</a></li> |
41 |
<li><a href="#advanced_4">ステップ4:ツールをコンパイルする</a></li> |
42 |
<li><a href="#advanced_5">ステップ5:コンパクトフラッシュをフォーマットする</a></li> |
43 |
<li><a href="#advanced_6">ステップ6:バックアップを取得する</a></li> |
44 |
<li><a href="#advanced_7">ステップ7: rootfs を編集する</a></li> |
45 |
<li><a href="#advanced_8">ステップ8:フラッシュROMを書き換える</a></li> |
46 |
<li><a href="#advanced_appendix">補足:工場出荷時の状態に戻す</a></li> |
47 |
</ul> |
48 |
</td></tr> |
49 |
</table> |
50 |
|
51 |
|
52 |
|
53 |
<h1><a name="basic">基本編:コンパクトフラッシュ上のカーネルと rootfs を使って動作させる</a></h1> |
54 |
|
55 |
<h2><a name="basic_1">ステップ1:ホスト環境を構築する</a></h2> |
56 |
|
57 |
<p>Debian Sarge は既に End Of Life であるため、パッケージのダウンロードサーバを書き換える必要があります。 root としてログインし、 /etc/apt/sources.list の内容を以下のように書き換えてください。</p> |
58 |
|
59 |
<pre> |
60 |
deb http://archive.debian.org/debian-archive/debian/ sarge main contrib non-free |
61 |
deb http://archive.debian.org/debian-archive/debian-security/ sarge/updates main contrib non-free |
62 |
</pre> |
63 |
|
64 |
<p>次に、 fdisk コマンドの -l オプションでデバイスの一覧が表示されるようにするために、 2.6 カーネルをインストールします。</p> |
65 |
|
66 |
<pre> |
67 |
# apt-get update |
68 |
# apt-get -y install kernel-image-2.6.8-4-686-smp |
69 |
</pre> |
70 |
|
71 |
<p>2.6.8-4-686-smp カーネルで再起動します。</p> |
72 |
|
73 |
<pre> |
74 |
# reboot |
75 |
</pre> |
76 |
|
77 |
<h2><a name="basic_2">ステップ2:コンパイルに必要なパッケージをインストールする</a></h2> |
78 |
|
79 |
<p>開発用CDROMのマウントポイントとして /mnt/cdrom を作成し、そこにマウントします。</p> |
80 |
|
81 |
<pre> |
82 |
# mkdir -p /mnt/cdrom |
83 |
# mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/ |
84 |
</pre> |
85 |
|
86 |
<p>CDROM内にあるクロスツールパッケージが依存するパッケージをインストールします。</p> |
87 |
|
88 |
<pre> |
89 |
# apt-get -y install gcc-3.4-base libreadline4 |
90 |
</pre> |
91 |
|
92 |
<p>CDROM内にあるクロスツールパッケージをインストールします。ただし、 binutils パッケージと競合するファイルを含んでいる gdb-sh4-linux パッケージはアンインストールします。</p> |
93 |
|
94 |
<pre> |
95 |
# dpkg -i /mnt/cdrom/cross-tools/debian-sarge/sh4/*.deb |
96 |
# dpkg --purge gdb-sh4-linux |
97 |
</pre> |
98 |
|
99 |
<p>カーネルおよびツールのコンパイルに必要なパッケージをインストールします。</p> |
100 |
|
101 |
<pre> |
102 |
# apt-get -y install patch make gcc libc6-dev libncurses5-dev help2man libreadline5-dev |
103 |
</pre> |
104 |
|
105 |
<h2><a name="basic_3">ステップ3:カーネルをコンパイルする</a></h2> |
106 |
|
107 |
<p>カーネルのソースを展開します。</p> |
108 |
|
109 |
<pre> |
110 |
# cd |
111 |
# tar -zxf /mnt/cdrom/kernel/linux-2.6.15-cat_20080502.tgz |
112 |
# cd linux-2.6.15-cat |
113 |
</pre> |
114 |
|
115 |
<p>TOMOYO Linux パッチをダウンロードして適用します。</p> |
116 |
|
117 |
<pre> |
118 |
# wget -O ccs-patch-1.7.3-20131019.tar.gz 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/43375/ccs-patch-1.7.3-20131019.tar.gz' |
119 |
# wget -O ccs-patch-1.7.3-20131019.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?m=jaist&f=/tomoyo/43375/ccs-patch-1.7.3-20131019.tar.gz.asc' |
120 |
# gpg ccs-patch-1.7.3-20131019.tar.gz.asc |
121 |
# tar -zxf ccs-patch-1.7.3-20131019.tar.gz |
122 |
# patch -p1 < patches/ccs-patch-2.6.15-cat-760.diff |
123 |
</pre> |
124 |
|
125 |
<p>カーネルコンフィグを作成します。</p> |
126 |
|
127 |
<pre> |
128 |
# make cat760_defconfig |
129 |
</pre> |
130 |
|
131 |
<p>コンパイルを行います。</p> |
132 |
|
133 |
<pre> |
134 |
# make |
135 |
# make modules_install |
136 |
</pre> |
137 |
|
138 |
<p>make modules_install によりカーネルモジュールが /home/ebihara/tmp/lib/modules/2.6.15-sh/ 以下にインストールされるので、カーネル本体を /home/ebihara/tmp/ 以下にインストールします。</p> |
139 |
|
140 |
<pre> |
141 |
# mkdir -p /home/ebihara/tmp/ |
142 |
# cp -p arch/sh/boot/zImage /home/ebihara/tmp/ |
143 |
</pre> |
144 |
|
145 |
<h2><a name="basic_4">ステップ4:ツールをコンパイルする</a></h2> |
146 |
|
147 |
<p>ツールのソースをダウンロードします。</p> |
148 |
|
149 |
<pre> |
150 |
# cd |
151 |
# wget -O - 'http://sourceforge.jp/projects/tomoyo/svn/view/trunk/1.7.x/ccs-tools/ccstools.tar.gz?root=tomoyo&view=tar' | tar -zxf - |
152 |
</pre> |
153 |
|
154 |
<p>CAT760 向けにクロスコンパイルを行います。クロスコンパイルされたツールは /home/ebihara/tmp/sbin/ および /home/ebihara/tmp/usr/ 以下にインストールされます。</p> |
155 |
|
156 |
<pre> |
157 |
# make -C ccstools/ CC=sh4-linux-gcc INSTALLDIR=/home/ebihara/tmp/ install clean |
158 |
</pre> |
159 |
|
160 |
<p>man ページは使わないので削除します。</p> |
161 |
|
162 |
<pre> |
163 |
# rm -fR /home/ebihara/tmp/usr/share/ |
164 |
</pre> |
165 |
|
166 |
<p>ホスト環境から操作を行うので、ホスト環境向けにもコンパイルを行います。コンパイルされたツールは /sbin/ および /usr/ 以下にインストールされます。</p> |
167 |
|
168 |
<pre> |
169 |
# make -sC ccstools/ install clean |
170 |
</pre> |
171 |
|
172 |
<h2><a name="basic_5">ステップ5:コンパクトフラッシュをフォーマットする</a></h2> |
173 |
|
174 |
<p>CAT760 で / パーティションとして使用するためのコンパクトフラッシュを、ホスト環境のドライブに差し込んでください。</p> |
175 |
|
176 |
<p>fdisk コマンドを使ってコンパクトフラッシュのデバイスファイル名を確認します。</p> |
177 |
|
178 |
<pre> |
179 |
# fdisk -l |
180 |
|
181 |
Disk /dev/sda: 4294 MB, 4294967296 bytes |
182 |
255 heads, 63 sectors/track, 522 cylinders |
183 |
Units = cylinders of 16065 * 512 = 8225280 bytes |
184 |
|
185 |
Device Boot Start End Blocks Id System |
186 |
/dev/sda1 1 522 4192933+ 83 Linux |
187 |
|
188 |
Disk /dev/sdb: 251 MB, 251658240 bytes |
189 |
8 heads, 60 sectors/track, 1024 cylinders |
190 |
Units = cylinders of 480 * 512 = 245760 bytes |
191 |
|
192 |
Disk /dev/sdb doesn't contain a valid partition table |
193 |
</pre> |
194 |
|
195 |
<p>このページでは、以降、ホスト環境に於けるコンパクトフラッシュのデバイスファイル名が /dev/sdb であるものと仮定します。</p> |
196 |
|
197 |
<p>fdisk コマンドを使ってコンパクトフラッシュのパーティションを分割します。</p> |
198 |
|
199 |
<pre> |
200 |
# fdisk /dev/sdb |
201 |
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel |
202 |
Building a new DOS disklabel. Changes will remain in memory only, |
203 |
until you decide to write them. After that, of course, the previous |
204 |
content won't be recoverable. |
205 |
|
206 |
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) |
207 |
|
208 |
Command (m for help): n |
209 |
Command action |
210 |
e extended |
211 |
p primary partition (1-4) |
212 |
p |
213 |
Partition number (1-4): 1 |
214 |
First cylinder (1-1024, default 1): |
215 |
Using default value 1 |
216 |
Last cylinder or +size or +sizeM or +sizeK (1-1024, default 1024): |
217 |
Using default value 1024 |
218 |
|
219 |
Command (m for help): w |
220 |
The partition table has been altered! |
221 |
|
222 |
Calling ioctl() to re-read partition table. |
223 |
Syncing disks. |
224 |
</pre> |
225 |
|
226 |
<p>コンパクトフラッシュを / パーティションとしてマウントできるように ext2 でフォーマットします。</p> |
227 |
|
228 |
<pre> |
229 |
# mke2fs /dev/sdb1 |
230 |
mke2fs 1.37 (21-Mar-2005) |
231 |
Filesystem label= |
232 |
OS type: Linux |
233 |
Block size=1024 (log=0) |
234 |
Fragment size=1024 (log=0) |
235 |
61440 inodes, 245728 blocks |
236 |
12286 blocks (5.00%) reserved for the super user |
237 |
First data block=1 |
238 |
30 block groups |
239 |
8192 blocks per group, 8192 fragments per group |
240 |
2048 inodes per group |
241 |
Superblock backups stored on blocks: |
242 |
8193, 24577, 40961, 57345, 73729, 204801, 221185 |
243 |
|
244 |
Writing inode tables: done |
245 |
Writing superblocks and filesystem accounting information: done |
246 |
|
247 |
This filesystem will be automatically checked every 38 mounts or |
248 |
180 days, whichever comes first. Use tune2fs -c or -i to override. |
249 |
</pre> |
250 |
|
251 |
<h2><a name="basic_6">ステップ6:コンパクトフラッシュにコピーする</a></h2> |
252 |
|
253 |
<p>マウントポイントとして /mnt/cfcard を作成し、そこにマウントします。</p> |
254 |
|
255 |
<pre> |
256 |
# mkdir -p /mnt/cfcard |
257 |
# mount /dev/sdb1 /mnt/cfcard/ |
258 |
</pre> |
259 |
|
260 |
<p>CDROM内にあるイメージファイルの内容をコンパクトフラッシュに展開します。</p> |
261 |
|
262 |
<pre> |
263 |
# cd /mnt/cfcard/ |
264 |
# tar -zxf /mnt/cdrom/rootfs/files/target_cat760_20060722.tgz --strip 2 |
265 |
</pre> |
266 |
|
267 |
<p>クロスコンパイルしたカーネルとツールをコンパクトフラッシュにコピーします。</p> |
268 |
|
269 |
<pre> |
270 |
# cp -a /home/ebihara/tmp/* /mnt/cfcard/ |
271 |
</pre> |
272 |
|
273 |
<p>コンパクトフラッシュをアンマウントし、 CAT760 に挿入します。</p> |
274 |
|
275 |
<pre> |
276 |
# cd |
277 |
# umount /mnt/cfcard/ |
278 |
</pre> |
279 |
|
280 |
<h2><a name="basic_7">ステップ7:ポリシーの初期化を行う</a></h2> |
281 |
|
282 |
<p>SH4-7760 と書かれている基板の SW1 が全て OFF 側になっていることを確認して、 CAT760 の電源を入れると、以下のようなプロンプトが表示されます。</p> |
283 |
|
284 |
<pre> |
285 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
286 |
RTC clock :2010/05/04 16:44:36 |
287 |
command line = console=ttySC0,115200 root=/dev/mtdblock2 ro rootfstype=jffs2 |
288 |
Mac address = 00:03:82:03:03:C8 |
289 |
Boot size = 0x10000 |
290 |
Kernel size = 0x130000 |
291 |
>> |
292 |
</pre> |
293 |
|
294 |
<p>管理者モードに移ります。パスワードは silinux です。</p> |
295 |
|
296 |
<pre> |
297 |
admin |
298 |
</pre> |
299 |
|
300 |
<p>デフォルトのコマンドラインを設定します。 CAT760 環境に於いては、コンパクトフラッシュには /dev/hda でアクセスできます。</p> |
301 |
|
302 |
<pre> |
303 |
setparam zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
304 |
</pre> |
305 |
|
306 |
<p>ポリシーの初期化が済んでいないため、 TOMOYO Linux を無効にした状態でブートします。</p> |
307 |
|
308 |
<pre> |
309 |
boot zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 ccsecurity=off |
310 |
</pre> |
311 |
|
312 |
<p>ユーザ名 root 、パスワード root でログインします。</p> |
313 |
|
314 |
<pre> |
315 |
SiliconLinux for CAT709/760 supercat ttySC0 |
316 |
|
317 |
supercat login: root |
318 |
Password: |
319 |
Unable to change tty /dev/ttySC0: Read-only file system |
320 |
supercat:~# |
321 |
</pre> |
322 |
|
323 |
<p>/ を読み書き可能な状態にします。</p> |
324 |
|
325 |
<pre> |
326 |
supercat:~# mount -o remount,rw / |
327 |
</pre> |
328 |
|
329 |
<p>ポリシーの初期化を行います。(ホスト環境と実機が同一の構成であれば、ホスト環境内で chroot /mnt/cfcard/ /usr/lib/ccs/init_policy を実行すればよいのですが、異なる構成であるため、正しい結果を得るために実機で /usr/lib/ccs/init_policy を実行します。)</p> |
330 |
|
331 |
<pre> |
332 |
supercat:~# /usr/lib/ccs/init_policy |
333 |
Creating policy directory... OK |
334 |
Creating exception policy... OK |
335 |
Creating domain policy... OK |
336 |
Creating manager policy... OK |
337 |
Creating default profile... OK |
338 |
Creating memory quota policy... OK |
339 |
Creating module loader... OK |
340 |
</pre> |
341 |
|
342 |
<p>/ を読み込み専用の状態にします。</p> |
343 |
|
344 |
<pre> |
345 |
supercat:~# mount -o remount,ro / |
346 |
</pre> |
347 |
|
348 |
<p>シャットダウンして、コンパクトフラッシュを抜きます。</p> |
349 |
|
350 |
<pre> |
351 |
supercat:~# halt |
352 |
</pre> |
353 |
|
354 |
<h2><a name="basic_8">ステップ8:ポリシーの調整を行う</a></h2> |
355 |
|
356 |
<p>コンパクトフラッシュをマウントします。(ホスト環境と実機が同一の構成であれば chroot /mnt/cfcard/ を実行すればよいのですが、異なる構成であるため cd を使用しています。以下、 /etc/ ではなく etc/ であることに注意してください。)</p> |
357 |
|
358 |
<pre> |
359 |
# mount /dev/sdb1 /mnt/cfcard/ |
360 |
# cd /mnt/cfcard/ |
361 |
</pre> |
362 |
|
363 |
<p>シャットダウン時にポリシーを自動的に保存されるようにするために etc/init.d/halt の halt -d -f -i $poweroff $hddown の直前に以下の内容を追加します。</p> |
364 |
|
365 |
<pre> |
366 |
halt --help > /dev/null 2>&1 |
367 |
mount -o remount,ro / |
368 |
mount -o remount,rw / |
369 |
/usr/sbin/ccs-savepolicy |
370 |
/usr/sbin/ccs-savepolicy |
371 |
mount -o remount,ro / |
372 |
</pre> |
373 |
|
374 |
<p>ccs-savepolicy コマンドは ccs-savepolicy コマンドが実行された時点のポリシーしか保存できません。そのため、 ccs-savepolicy コマンド自身が必要とするアクセス許可を学習させるために、 ccs-savepolicy コマンドを2回実行しています。また、 ccs-savepolicy コマンドが実行されるタイミングでは既にファイルシステムが読み込み専用モードになってしまっているため、そのままではポリシーディレクトリに書き込みができません。そのため、一時的に読み書きモードに変更するためのアクセス許可と読み込み専用モードに戻すためのアクセス許可を学習させるために、 mount コマンドを ccs-savepolicy コマンドの実行前に2回実行しています。同様に halt コマンドのアクセス許可も学習させるために、 halt コマンドを ccs-savepolicy コマンドの実行前に1回実行しています。</p> |
375 |
|
376 |
<p>同様に、 etc/init.d/reboot の reboot -d -f -i の直前に以下の内容を追加します。</p> |
377 |
|
378 |
<pre> |
379 |
reboot --help > /dev/null 2>&1 |
380 |
mount -o remount,ro / |
381 |
mount -o remount,rw / |
382 |
/usr/sbin/ccs-savepolicy |
383 |
/usr/sbin/ccs-savepolicy |
384 |
mount -o remount,ro / |
385 |
</pre> |
386 |
|
387 |
<p>リモートからポリシーの操作ができるようにするために、 etc/init.d/ccs-editpolicy-agent を作成します。</p> |
388 |
|
389 |
<pre> |
390 |
# echo '#! /bin/sh' > etc/init.d/ccs-editpolicy-agent |
391 |
# echo 'exec /usr/lib/ccs/ccs-editpolicy-agent 0.0.0.0:10000 &' >> etc/init.d/ccs-editpolicy-agent |
392 |
# chmod 700 etc/init.d/ccs-editpolicy-agent |
393 |
</pre> |
394 |
|
395 |
<p>etc/init.d/ccs-editpolicy-agent が起動時に実行されるようにします。(ホスト環境と実機が同一の構成であれば、ホスト環境内で chroot /mnt/cfcard/ update-rc.d ccs-editpolicy-agent defaults を実行すればよいのですが、異なる構成であるため、手作業により行います。)</p> |
396 |
|
397 |
<pre> |
398 |
# ln -s ../init.d/ccs-editpolicy-agent etc/rcS.d/S60ccs-editpolicy-agent |
399 |
</pre> |
400 |
|
401 |
<p>ポリシーの変更を許可するプログラムの一覧である etc/ccs/manager.conf に /usr/lib/ccs/ccs-editpolicy-agent を追加します。</p> |
402 |
|
403 |
<pre> |
404 |
# echo /usr/lib/ccs/ccs-editpolicy-agent >> etc/ccs/manager.conf |
405 |
</pre> |
406 |
|
407 |
<p>起動時から学習モードになるように、 etc/ccs/domain_policy.conf を更新します。</p> |
408 |
|
409 |
<pre> |
410 |
# cat > etc/ccs/domain_policy.conf << EOF |
411 |
<kernel> |
412 |
use_profile 1 |
413 |
EOF |
414 |
</pre> |
415 |
|
416 |
<p>etc/ccs/meminfo.conf でメモリ使用量の上限を設定します。 CAT760 の搭載メモリは64MBなので、ポリシー用に5MB/アクセスログ用に1MB/対話的処理用に1MBを上限として割り当てます。</p> |
417 |
|
418 |
<pre> |
419 |
# cat > etc/ccs/meminfo.conf << EOF |
420 |
Policy: 5242880 |
421 |
Audit logs: 1048576 |
422 |
Query lists: 1048576 |
423 |
EOF |
424 |
</pre> |
425 |
|
426 |
<p>コンパクトフラッシュをアンマウントします。</p> |
427 |
|
428 |
<pre> |
429 |
# cd |
430 |
# umount /mnt/cfcard/ |
431 |
</pre> |
432 |
|
433 |
<h2><a name="basic_9">ステップ9:ポリシーを作成する</a></h2> |
434 |
|
435 |
<p>電源を入れてブートローダに進みます。</p> |
436 |
|
437 |
<pre> |
438 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
439 |
RTC clock :2010/05/04 17:14:20 |
440 |
command line = zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
441 |
Mac address = 00:03:82:03:03:C8 |
442 |
Boot size = 0x10000 |
443 |
Kernel size = 0x130000 |
444 |
>> |
445 |
</pre> |
446 |
|
447 |
<p>ブートします。</p> |
448 |
|
449 |
<pre> |
450 |
boot |
451 |
</pre> |
452 |
|
453 |
<p>ログインして、好きなように操作します。</p> |
454 |
|
455 |
<p>CAT760 のIPアドレスを xxx.xxx.xxx.xxx とした場合、ホスト側から</p> |
456 |
|
457 |
<pre> |
458 |
# ccs-editpolicy xxx.xxx.xxx.xxx:10000 |
459 |
</pre> |
460 |
|
461 |
<p>のように実行することにより、ホスト側からポリシーの編集を行うことができます。同様に、ホスト側から</p> |
462 |
|
463 |
<pre> |
464 |
# ccs-auditd xxx.xxx.xxx.xxx:10000 /tmp/grant_log.conf /tmp/reject_log.conf |
465 |
</pre> |
466 |
|
467 |
<p>のように実行することにより、CAT760 で生成されたアクセスログをホスト側に保存することができます。その他にも、</p> |
468 |
|
469 |
<pre> |
470 |
# ccs-savepolicy xxx.xxx.xxx.xxx:10000 /tmp/ d |
471 |
</pre> |
472 |
|
473 |
<p>のように実行することにより、CAT760 側の /proc/ccs/domain_policy の内容をホスト側の /tmp/domain_policy.conf に保存することができ、</p> |
474 |
|
475 |
<pre> |
476 |
# ccs-loadpolicy xxx.xxx.xxx.xxx:10000 /tmp/ d |
477 |
</pre> |
478 |
|
479 |
<p>のように実行することにより、ホスト側の /tmp/domain_policy.conf の内容を CAT760 側の /proc/ccs/domain_policy に追加することができます。</p> |
480 |
|
481 |
<p>操作を間違えて起動できなくなった場合には、 boot のコマンドラインで boot zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 ccsecurity=off のように指定することで TOMOYO Linux を無効にした状態で起動できます。</p> |
482 |
|
483 |
<h2><a name="basic_appendix">補足:工場出荷時の状態に戻す</a></h2> |
484 |
|
485 |
<p><a href="#basic_7">ステップ7</a>で書き換えたコマンドラインを復元するには以下のように行います。</p> |
486 |
|
487 |
<p>電源を入れてブートローダに進みます。</p> |
488 |
|
489 |
<pre> |
490 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
491 |
RTC clock :2010/05/04 17:44:10 |
492 |
command line = zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
493 |
Mac address = 00:03:82:03:03:C8 |
494 |
Boot size = 0x10000 |
495 |
Kernel size = 0x130000 |
496 |
>> |
497 |
</pre> |
498 |
|
499 |
<p>管理者モードに移ります。パスワードは silinux です。</p> |
500 |
|
501 |
<pre> |
502 |
admin |
503 |
</pre> |
504 |
|
505 |
<p>コマンドラインを設定します。</p> |
506 |
|
507 |
<pre> |
508 |
setparam console=ttySC0,115200 root=/dev/mtdblock2 ro rootfstype=jffs2 |
509 |
</pre> |
510 |
|
511 |
<h1><a name="advanced">応用編:フラッシュROM上のカーネルと rootfs を使って動作させる</a></h1> |
512 |
|
513 |
<h2><a name="advanced_1">ステップ1:ホスト環境を構築する</a></h2> |
514 |
|
515 |
<p><a href="#basic_1">基本編のステップ1</a>と同じです。</p> |
516 |
|
517 |
<h2><a name="advanced_2">ステップ2:コンパイルに必要なパッケージをインストールする</a></h2> |
518 |
|
519 |
<p><a href="#basic_2">基本編のステップ2</a>と同じです。</p> |
520 |
|
521 |
<h2><a name="advanced_3">ステップ3:カーネルをコンパイルする</a></h2> |
522 |
|
523 |
<p>コンパクトフラッシュに保存されたカーネルから起動する場合にはカーネル本体のサイズを気にする必要はありませんが、フラッシュROM内のカーネル用パーティションに保存されたカーネルから起動する場合にはカーネル本体のサイズに注意が必要です。 CAT760 のデフォルトのパーティション設定では、カーネル用のパーティションサイズは 1245184(0x130000)バイトです。デフォルトのカーネルコンフィグでコンパイルした場合のカーネルサイズは 1212416(0x128000)バイトですので、デフォルトでは32キロバイトしか空き領域がありません。(なお、 CAT760 の新製品である CAT760A ではフラッシュROMのセクタサイズが64キロバイトから128キロバイトに変更されたのに伴い、カーネル用のパーティションサイズが 1179648(0x120000)バイトに縮小されているため、デフォルトで空き領域が不足しますのでご注意ください。)</p> |
524 |
|
525 |
<p>TOMOYO Linux の機能をカーネル本体に組み込んだ場合、カーネル本体のサイズがおよそ48キロバイト増加するため、 rootfs 用のパーティションサイズを小さくしてカーネル用パーティションサイズを大きくするか、カーネルコンフィグで幾つかの機能をローダブルカーネルモジュールとしてコンパイルする必要が生じます。</p> |
526 |
|
527 |
<p>TOMOYO Linux の機能の殆どはローダブルカーネルモジュールとして切り出すことが可能です。 TOMOYO Linux の機能をローダブルカーネルモジュールとして切り出した場合、カーネル本体のサイズ増加はおよそ4キロバイトで済みます。</p> |
528 |
|
529 |
<p>手順は<a href="#basic_3">基本編のステップ3</a>と同じですが、 TOMOYO Linux をローダブルカーネルモジュールとして切り出す場合には、「カーネルコンフィグを作成する」( make cat760_defconfig )と「カーネルをコンパイルする」( make )の間に以下の手順を行います。</p> |
530 |
|
531 |
<pre> |
532 |
# make menuconfig |
533 |
</pre> |
534 |
|
535 |
<p>Security options セクションの CCSecurity support グループにある Compile as loadable kernel module という項目を選択します。</p> |
536 |
|
537 |
<pre> |
538 |
[ ] Enable access key retention support |
539 |
[ ] Enable different security models |
540 |
[*] CCSecurity support |
541 |
[*] Compile as loadable kernel module |
542 |
[ ] Disable by default |
543 |
(2048) Default maximal count for learning mode |
544 |
(/sbin/ccs-init) Default policy loader |
545 |
(/sbin/ccs-start) Alternative activation trigger |
546 |
(/sbin/modprobe /sbin/hotplug) Built-in domain initializer programs |
547 |
[*] Auditing interface support |
548 |
(1024) Default maximal count for grant log |
549 |
(1024) Default maximal count for reject log |
550 |
</pre> |
551 |
|
552 |
<p>Exit を2回選択し、カーネルコンフィグを保存するかどうかの質問に Yes と答えてください。</p> |
553 |
|
554 |
<h2><a name="advanced_4">ステップ4:ツールをコンパイルする</a></h2> |
555 |
|
556 |
<p><a href="#basic_4">基本編のステップ4</a>と同じです。</p> |
557 |
|
558 |
<h2><a name="advanced_5">ステップ5:コンパクトフラッシュをフォーマットする</a></h2> |
559 |
|
560 |
<p><a href="#basic_5">基本編のステップ5</a>と同じです。ただし、ブートローダは ext2 ファイルシステムへの書き込みをサポートしていないので、 ext2 ファイルシステムではなく fat ファイルシステムでフォーマットする必要があります。 mke2fs の箇所は mkfs.vfat に読み替えてください。</p> |
561 |
|
562 |
<pre> |
563 |
# mkfs.vfat /dev/sdb1 |
564 |
</pre> |
565 |
|
566 |
<h2><a name="advanced_6">ステップ6:バックアップを取得する</a></h2> |
567 |
|
568 |
<p>コンパクトフラッシュを CAT760 に挿入後、電源を入れてブートローダに進みます。</p> |
569 |
|
570 |
<pre> |
571 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
572 |
RTC clock :2010/05/04 17:14:20 |
573 |
command line = zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
574 |
Mac address = 00:03:82:03:03:C8 |
575 |
Boot size = 0x10000 |
576 |
Kernel size = 0x130000 |
577 |
>> |
578 |
</pre> |
579 |
|
580 |
<p>フラッシュROMに記録されているカーネルと rootfs のバックアップを取得します。</p> |
581 |
|
582 |
<pre> |
583 |
cp rom:zImage cf0:zImage-orig |
584 |
cp rom:rootfs cf0:rootfs-orig |
585 |
</pre> |
586 |
|
587 |
<p>シャットダウンして、コンパクトフラッシュを抜きます。</p> |
588 |
|
589 |
<h2><a name="advanced_7">ステップ7: rootfs を編集する</a></h2> |
590 |
|
591 |
<p>ホスト環境にコンパクトフラッシュを挿入し、マウントします。</p> |
592 |
|
593 |
<pre> |
594 |
# mount /dev/sdb1 /mnt/cfcard/ |
595 |
</pre> |
596 |
|
597 |
<p>mkfs.jffs2 のためのパッケージをインストールします。</p> |
598 |
|
599 |
<pre> |
600 |
# apt-get install mtd-tools |
601 |
</pre> |
602 |
|
603 |
<p>mtdblock モジュールをロードします。</p> |
604 |
|
605 |
<pre> |
606 |
# modprobe mtdblock |
607 |
</pre> |
608 |
|
609 |
<p>mtdram モジュールをロードします。</p> |
610 |
|
611 |
<pre> |
612 |
# modprobe mtdram total_size=16384 |
613 |
</pre> |
614 |
|
615 |
<p>rootfs となるデバイスファイルを作成します。</p> |
616 |
|
617 |
<pre> |
618 |
# mknod /dev/mtdblock2 b 31 2 |
619 |
</pre> |
620 |
|
621 |
<p>rootfs となるデバイスファイルに書き込みます。</p> |
622 |
|
623 |
<pre> |
624 |
# cat /mnt/cfcard/rootfs-orig > /dev/mtdblock2 |
625 |
</pre> |
626 |
|
627 |
<p>rootfs をマウントします。</p> |
628 |
|
629 |
<pre> |
630 |
# mkdir -p /mnt/rootfs |
631 |
# mount -t jffs2 /dev/mtdblock2 /mnt/rootfs/ |
632 |
# cd /mnt/rootfs/ |
633 |
</pre> |
634 |
|
635 |
<p>必要に応じて編集します。(基本編の<a href="#basic_7">ステップ7</a>~<a href="#basic_9">ステップ9</a>に対応する作業です。) |
636 |
忘れずに /sbin/ccs-init と /etc/ccs/ccs-load-module と /lib/modules/2.6.15-sh/ 以下をコピーしてください。コピーを忘れると、 TOMOYO Linux の機能が有効になりません。その他には、 /etc/ccs/ ディレクトリ以下にポリシーを用意することが必要です。</p> |
637 |
|
638 |
<p>rootfs の内容を固めます。</p> |
639 |
|
640 |
<pre> |
641 |
# cd |
642 |
# mkfs.jffs2 -p -o /mnt/cfcard/rootfs -r /mnt/rootfs/ |
643 |
</pre> |
644 |
|
645 |
<p>rootfs をアンマウントします。</p> |
646 |
|
647 |
<pre> |
648 |
# umount /mnt/rootfs/ |
649 |
</pre> |
650 |
|
651 |
<p>コンパクトフラッシュをアンマウントし、 CAT760 に挿入します。</p> |
652 |
|
653 |
<pre> |
654 |
# umount /mnt/cfcard/ |
655 |
</pre> |
656 |
|
657 |
<h2><a name="advanced_8">ステップ8:フラッシュROMを書き換える</a></h2> |
658 |
|
659 |
<p>電源を入れてブートローダに進みます。</p> |
660 |
|
661 |
<pre> |
662 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
663 |
RTC clock :2010/05/04 17:44:10 |
664 |
command line = zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
665 |
Mac address = 00:03:82:03:03:C8 |
666 |
Boot size = 0x10000 |
667 |
Kernel size = 0x130000 |
668 |
>> |
669 |
</pre> |
670 |
|
671 |
<p>管理者モードに移ります。パスワードは silinux です。</p> |
672 |
|
673 |
<pre> |
674 |
admin |
675 |
</pre> |
676 |
|
677 |
<p>カーネルと rootfs をコピーします。</p> |
678 |
|
679 |
<pre> |
680 |
cp cf0:zImage rom:zImage |
681 |
cp cf0:rootfs rom:rootfs |
682 |
</pre> |
683 |
|
684 |
<p>デフォルトのコマンドラインを設定します。</p> |
685 |
|
686 |
<pre> |
687 |
setparam console=ttySC0,115200 root=/dev/mtdblock2 ro rootfstype=jffs2 |
688 |
</pre> |
689 |
|
690 |
<p>ブートします。</p> |
691 |
|
692 |
<pre> |
693 |
boot |
694 |
</pre> |
695 |
|
696 |
<p>以上で完成です。</p> |
697 |
|
698 |
<p>うまくブートできなかった場合には、 boot のコマンドラインで boot console=ttySC0,115200 root=/dev/mtdblock2 ro rootfstype=jffs2 ccsecurity=off のように指定することで TOMOYO Linux を無効にした状態で起動できます。</p> |
699 |
|
700 |
<h2><a name="advanced_appendix">補足:工場出荷時の状態に戻す</a></h2> |
701 |
|
702 |
<p><a href="#advanced_6">ステップ6</a>で取得したバックアップをリストアするには以下のように行います。</p> |
703 |
|
704 |
<p>電源を入れてブートローダに進みます。</p> |
705 |
|
706 |
<pre> |
707 |
CAT BOOT for CAT760 Version: 1.07 Feb 27 2007 17:45:59 |
708 |
RTC clock :2010/05/04 17:44:10 |
709 |
command line = zimage=cf0:zImage console=ttySC0,115200 root=/dev/hda1 ro rootfstype=ext2 |
710 |
Mac address = 00:03:82:03:03:C8 |
711 |
Boot size = 0x10000 |
712 |
Kernel size = 0x130000 |
713 |
>> |
714 |
</pre> |
715 |
|
716 |
<p>管理者モードに移ります。パスワードは silinux です。</p> |
717 |
|
718 |
<pre> |
719 |
admin |
720 |
</pre> |
721 |
|
722 |
<p>カーネルと rootfs をコピーします。</p> |
723 |
|
724 |
<pre> |
725 |
cp cf0:zImage-orig rom:zImage |
726 |
cp cf0:rootfs-orig rom:rootfs |
727 |
</pre> |
728 |
|
729 |
<p>コマンドラインを設定します。</p> |
730 |
|
731 |
<pre> |
732 |
setparam console=ttySC0,115200 root=/dev/mtdblock2 ro rootfstype=jffs2 |
733 |
</pre> |
734 |
|
735 |
<hr> |
736 |
|
737 |
<p><a href="index.html.ja">目次へ戻る</a></p> |
738 |
<p><a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1973" width="96" height="31" alt="sflogo.php" title="SourceForge.jp"></a></p> |
739 |
</body> |
740 |
</html> |