オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Contents of /tags/htdocs/1.7/cat760-sh.html.ja

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6289 - (show annotations) (download)
Sat Oct 19 10:41:39 2013 UTC (10 years, 7 months ago) by kumaneko
File size: 28960 byte(s)


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&amp;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&amp;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 &lt; 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&amp;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 &gt;&gt;
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 &gt; /dev/null 2&gt;&amp;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 &gt; /dev/null 2&gt;&amp;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' &gt; etc/init.d/ccs-editpolicy-agent
391 # echo 'exec /usr/lib/ccs/ccs-editpolicy-agent 0.0.0.0:10000 &amp;' &gt;&gt; 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 &gt;&gt; etc/ccs/manager.conf
405 </pre>
406
407 <p>起動時から学習モードになるように、 etc/ccs/domain_policy.conf を更新します。</p>
408
409 <pre>
410 # cat &gt; etc/ccs/domain_policy.conf &lt;&lt; EOF
411 &lt;kernel&gt;
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 &gt; etc/ccs/meminfo.conf &lt;&lt; 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 &gt;&gt;
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 &gt;&gt;
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 &gt;&gt;
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 &gt; /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 &gt;&gt;
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 &gt;&gt;
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>

Properties

Name Value
svn:keywords Date

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26