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

Subversion リポジトリの参照

Contents of /tags/htdocs/1.8/meego-x86.html.ja

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4332 - (show annotations) (download)
Mon Jan 10 10:44:37 2011 UTC (13 years, 4 months ago) by kumaneko
Original Path: tags/htdocs/1.8-tmp/meego-x86.html.ja
File size: 18951 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 style="text-align:right;"><a href="meego-x86.html.en">English Page</a></p>
11 <p style="text-align:right;">Last modified: $Date$</p>
12
13 <h1>TOMOYO Linux on MeeGo 1.1</h1>
14
15 <p>このページでは、 TOMOYO Linux を <a href="http://meego.com/">MeeGo</a> で使う方法について説明します。</p>
16
17 <hr>
18
19 <ul>
20 <li><a href="#step_1">ステップ1:エミュレータ環境の構築</a></li>
21 <li><a href="#step_2">ステップ2:カーネルおよびツールの構築</a></li>
22 <li><a href="#step_3">ステップ3: TOMOYO Linux の初期化</a></li>
23 <li><a href="#step_4">ステップ4: MeeGo 環境の解析</a></li>
24 </ul>
25
26 <h2><a name="step_1">ステップ1:エミュレータ環境の構築</a></h2>
27
28 <p>MeeGo handset UI イメージファイルをダウンロードして展開してください。</p>
29
30 <pre>
31 $ cd
32 $ wget http://download3.meego.com/sep03/meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0901.tar.bz2
33 $ tar -jxf meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0901.tar.bz2 --strip 1
34 </pre>
35
36 <p>このイメージファイルに含まれている root ユーザのパスワードは meego です。</p>
37
38 <p>このイメージファイルを QEMU 上で利用する場合には、 <a href="http://wiki.meego.com/MeeGo_SDK_with_QEMU">http://wiki.meego.com/MeeGo_SDK_with_QEMU</a> の指示に従って qemu-gl パッケージをダウンロードしてインストールしてください。</p>
39
40 <pre>
41 $ wget http://download3.meego.com/qemu-gl_0.12.4-3_i386.deb
42 $ sudo dpkg -i qemu-gl_0.12.4-3_i386.deb
43 $ wget http://download3.meego.com/qemugl_cmd.sh
44 $ chmod 755 qemugl_cmd.sh
45 </pre>
46
47 <p>以下のようにして QEMU を実行してください。</p>
48
49 <pre>
50 $ ./qemugl_cmd.sh meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0901.raw
51 </pre>
52
53 <p>MeeGo 環境が正常に開始された場合、<a href="#step_2">ステップ2</a>へと進んでください。</p>
54
55 <p>このイメージファイルを VMware 上で利用する場合には、若干の修正を行う必要があります。</p>
56
57 <p>まず、4GBの仮想ハードディスクを持った VMware 仮想マシンをさくせいしてください。</p>
58
59 <p>次に、 <a href="http://releases.ubuntu.com/lucid/ubuntu-10.04.1-desktop-i386.iso">http://releases.ubuntu.com/lucid/ubuntu-10.04.1-desktop-i386.iso</a> (MD5: 9a95ed6f6ec38fb58c446dba1add6a08) などの LiveCD を利用して仮想マシンを起動してください。この ISO ファイルから起動した場合には、 gnome 端末を起動して root ユーザになってください。</p>
60
61 <pre>
62 $ sudo bash
63 </pre>
64
65 <p>仮想ハードディスクのデバイス名を確認してください。以下の例では /dev/sda が仮想ハードディスクです。</p>
66
67 <pre>
68 # fdisk -l
69
70 Disk /dev/sda: 4294 MB, 4294967296 bytes
71 255 heads, 63 sectors/track, 522 cylinders
72 Units = cylinders of 16065 * 512 = 8225280 bytes
73 Sector size (logical/physical): 512 bytes / 512 bytes
74 I/O size (minimum/optimal): 512 bytes / 512 bytes
75 Disk identifier: 0x00000000
76
77 Disk /dev/sda doesn't contain a valid partition table
78 </pre>
79
80 <p>SSHや curl や wget などを利用してこのイメージファイルを取得して、仮想ハードディスクに書き出してください。以下の vmwarehost という文字列は VMware を動作させているホスト側のIPアドレスに置き換えてください。</p>
81
82 <pre>
83 # ssh root@vmwarehost 'cat ~/meego-handset-ia32-1.0.80.9.20100706.1-sdk-pre0901.raw' &gt; /dev/sda
84 # fdisk /dev/sda
85
86 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
87 switch off the mode (command 'c') and change display units to
88 sectors (command 'u').
89
90 Command (m for help): w
91 The partition table has been altered!
92
93 Calling ioctl() to re-read partition table.
94 Syncing disks.
95 </pre>
96
97 <p>次に、その仮想ハードディスクの最初のパーティションを /mnt/ にマウントしてください。</p>
98
99 <pre>
100 # fdisk -l
101
102 Disk /dev/sda: 4294 MB, 4294967296 bytes
103 186 heads, 61 sectors/track, 739 cylinders
104 Units = cylinders of 11346 * 512 = 5809152 bytes
105 Sector size (logical/physical): 512 bytes / 512 bytes
106 I/O size (minimum/optimal): 512 bytes / 512 bytes
107 Disk identifier: 0x00097211
108
109 Device Boot Start End Blocks Id System
110 /dev/sda1 * 1 517 2929687+ 83 Linux
111 Partition 1 has different physical/logical endings:
112 phys=(364, 185, 61) logical=(516, 79, 21)
113 # mount /dev/sda1 /mnt/
114 </pre>
115
116 <p>マウントしたパーティション内にある /etc/X11/xorg.conf-handset をテキストエディタで開いてください。</p>
117
118 <pre>
119 # gedit /mnt/etc/X11/xorg.conf-handset
120 </pre>
121
122 <p>Device セクションにある Driver および BusID 行をコメントアウトしてください。以下に diff 形式の差分を示します。</p>
123
124 <pre>
125 --- a/etc/X11/xorg.conf-handset
126 +++ b/etc/X11/xorg.conf-handset
127 @@ -32,10 +32,10 @@
128 #Option "DefaultRefresh" # [&lt;bool&gt;]
129 #Option "ModeSetClearScreen" # [&lt;bool&gt;]
130 Identifier "Card0"
131 - Driver "vesa"
132 + #Driver "vesa"
133 VendorName "Technical Corp."
134 BoardName "Unknown Board"
135 - BusID "PCI:0:2:0"
136 + #BusID "PCI:0:2:0"
137 EndSection
138
139 Section "Screen"
140 </pre>
141
142 <p>ファイルを保存してエディタを終了してください。そして、パーティションをアンマウントしてください。</p>
143
144 <pre>
145 # umount /mnt/
146 </pre>
147
148 <p>IPアドレスを確認してください。このIPアドレスはSSHを用いて MeeGo 環境にログインするときに使用します。このページでは以後、このIPアドレスを参照するために meegohost という文字列を使用します。</p>
149
150 <pre>
151 # ifconfig eth0
152 eth0 Link encap:Ethernet HWaddr 00:0c:29:99:19:08
153 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
154 inet6 addr: 2001:c90:301:ba9:20c:29ff:fe99:1908/64 Scope:Global
155 inet6 addr: fe80::20c:29ff:fe99:1908/64 Scope:Link
156 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
157 RX packets:2210718 errors:39 dropped:40 overruns:0 frame:0
158 TX packets:270495 errors:0 dropped:0 overruns:0 carrier:0
159 collisions:0 txqueuelen:1000
160 RX bytes:3299820248 (3.2 GB) TX bytes:19256240 (19.2 MB)
161 Interrupt:19 Base address:0x2000
162 </pre>
163
164 <p>システムを再起動します。</p>
165
166 <pre>
167 # reboot
168 </pre>
169
170 <p>MeeGo 環境が正常に開始された場合、<a href="#step_2">ステップ2</a> へと進んでください。問題が生じた場合、以下の内容を確認してください。</p>
171
172 <p>SSHを使って MeeGo 環境にログインしてください。パスワードは meego です。</p>
173
174 <pre>
175 $ ssh root@meegohost
176 </pre>
177
178 <p>次に、 /var/log/Xorg.log.0 に含まれている (EE) という文字列を含む行を確認してください。例えば、以下のように ioctl EVIOCGNAME failed: Inappropriate ioctl for device というエラーが記録されている場合、 X に対してそのデバイスを無視するように伝える必要があるかもしれません。</p>
179
180 <pre>
181 [ 35.030] (II) XKB: reuse xkmfile /var/lib/xkb/server-D378AD8F86E560F712A83EE36E4E5E92C595B9BD.xkm
182 [ 35.093] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event1)
183 [ 35.094] (**) AT Translated Set 2 keyboard: Applying InputClass "default"
184 [ 35.094] (**) AT Translated Set 2 keyboard: always reports core events
185 [ 35.094] (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
186 [ 35.094] (II) AT Translated Set 2 keyboard: Found keys
187 [ 35.094] (II) AT Translated Set 2 keyboard: Configuring as keyboard
188 [ 35.094] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
189 [ 35.094] (**) Option "xkb_rules" "evdev"
190 [ 35.094] (**) Option "xkb_model" "evdev"
191 [ 35.094] (**) Option "xkb_layout" "us"
192 [ 35.096] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/event2)
193 [ 35.096] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "default"
194 [ 35.096] (**) ImPS/2 Generic Wheel Mouse: always reports core events
195 [ 35.096] (**) ImPS/2 Generic Wheel Mouse: Device: "/dev/input/event2"
196 [ 35.096] (II) ImPS/2 Generic Wheel Mouse: Found 3 mouse buttons
197 [ 35.096] (II) ImPS/2 Generic Wheel Mouse: Found scroll wheel(s)
198 [ 35.096] (II) ImPS/2 Generic Wheel Mouse: Found relative axes
199 [ 35.096] (II) ImPS/2 Generic Wheel Mouse: Found x and y relative axes
200 [ 35.096] (II) ImPS/2 Generic Wheel Mouse: Configuring as mouse
201 [ 35.097] (**) ImPS/2 Generic Wheel Mouse: YAxisMapping: buttons 4 and 5
202 [ 35.097] (**) ImPS/2 Generic Wheel Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
203 [ 35.097] (II) XINPUT: Adding extended input device "ImPS/2 Generic Wheel Mouse" (type: MOUSE)
204 [ 35.098] (**) ImPS/2 Generic Wheel Mouse: (accel) keeping acceleration scheme 1
205 [ 35.098] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration profile 0
206 [ 35.098] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration factor: 2.000
207 [ 35.098] (**) ImPS/2 Generic Wheel Mouse: (accel) acceleration threshold: 4
208 [ 35.098] (II) ImPS/2 Generic Wheel Mouse: initialized for relative axes.
209 [ 35.099] (II) config/udev: Adding input device ImPS/2 Generic Wheel Mouse (/dev/input/mouse0)
210 [ 35.100] (**) ImPS/2 Generic Wheel Mouse: Applying InputClass "default"
211 [ 35.100] (**) ImPS/2 Generic Wheel Mouse: always reports core events
212 [ 35.100] (**) ImPS/2 Generic Wheel Mouse: Device: "/dev/input/mouse0"
213 [ 35.100] (EE) ioctl EVIOCGNAME failed: Inappropriate ioctl for device
214 [ 35.100] (II) UnloadModule: "evdev"
215 [ 35.100] (EE) PreInit returned NULL for "ImPS/2 Generic Wheel Mouse"
216 </pre>
217
218 <p>X に特定のデバイス(上記の例の場合は ImPS/2 Generic Wheel Mouse (/dev/input/mouse0) )を無視するように指示するには、以下のようなセクションを追加してシステムを再起動してください。</p>
219
220 <pre>
221 --- a/etc/X11/xorg.conf-handset
222 +++ b/etc/X11/xorg.conf-handset
223 @@ -23,6 +23,13 @@
224 ModelName "Monitor Model"
225 EndSection
226
227 +Section "InputClass"
228 + Identifier "ImPS/2 Generic Wheel Mouse"
229 + MatchProduct "ImPS/2 Generic Wheel Mouse"
230 + MatchDevicePath "/dev/input/mouse0"
231 + Option "Ignore" "on"
232 +EndSection
233 +
234 Section "Device"
235 ### Available Driver options are:-
236 ### Values: &lt;i&gt;: integer, &lt;f&gt;: float, &lt;bool&gt;: "True"/"False",
237 </pre>
238
239 <p>次のステップに進む前に、現時点までで起きている問題を解決しておいてください。</p>
240
241 <h2><a name="step_2">ステップ2:カーネルおよびツールの構築</a></h2>
242
243 <p>カーネルおよびツールのコンパイルに必要な環境を用意してください。このセクションでは rpmbuild コマンドを利用できるようにするために Fedora 13 を利用しています。</p>
244
245 <p>まず、コンパイルに必要なパッケージをインストールします。</p>
246
247 <pre>
248 $ su -
249 # yum -y install wget gcc rpm-build elfutils-libelf-devel binutils-devel newt-devel ncurses-devel readline-devel help2man
250 # exit
251 </pre>
252
253 <p>次に、カーネルのソースパッケージをダウンロードします。</p>
254
255 <pre>
256 $ cd
257 $ wget http://repo.meego.com/MeeGo/builds/1.0.99/1.0.99.2.20101019.1/core/repos/source/kernel-2.6.35.3-10.3.src.rpm
258 </pre>
259
260 <p>次に、ソースパッケージをインストールして、準備段階の処理を実行します。</p>
261
262 <pre>
263 $ rpm -ivh kernel-2.6.35.3-10.3.src.rpm
264 $ rpmbuild -bp ~/rpmbuild/SPECS/kernel.spec
265 $ cd ~/rpmbuild/BUILD/kernel-2.6.35.3/linux-2.6.35/
266 </pre>
267
268 <p>このカーネルを QEMU 上で動作させようとしている場合、カーネルパッチをダウンロードして適用してください。このカーネルを VMware 上で動作させようとしている場合にはパッチを当てる必要はありません。</p>
269
270 <pre>
271 $ wget http://meego.gitorious.org/meego-developer-tools/meego-emulator-virtiogl-x86/blobs/raw/master/linux-2.6.35-virtio-for-qemu-gl-acceleration.patch
272 $ patch -p1 &lt; linux-2.6.35-virtio-for-qemu-gl-acceleration.patch
273 </pre>
274
275 <p>次に、カーネルコンフィグを作成します。 QEMU 上で動作している MeeGo 環境から取得するには</p>
276
277 <pre>
278 $ scp -p -P 6666 root@127.0.0.1:/boot/config-\* .config
279 </pre>
280
281 <p>のように、 VMware 上で動作している MeeGo 環境から取得するには</p>
282
283 <pre>
284 $ scp -p root@meegohost:/boot/config-\* .config
285 </pre>
286
287 <p>のようにしてコピーできます。</p>
288
289 <p>次に、カーネルコンフィグをアップデートします。このカーネルを QEMU 上で動作させようとしている場合には、 Virtio userspace memory transport という項目に対して y または m と回答することを忘れないでください。</p>
290
291 <pre>
292 $ make -s oldconfig
293 </pre>
294
295 <p>MeeGo カーネルは ext3 ファイルシステムイメージをマウントする際に writeback モードを使用しています。しかし、 writeback モードを使用した場合、 QEMU や VMware が突然終了してしまった場合にファイルが損傷(例えば既に削除されたファイルに含まれていたデータが暗黙のうちに直前に書き込まれたファイルの中に取り込まれる)する可能性があります。 ext3 ファイルシステムイメージをマウントする際に ordered モードを使用したい場合には以下のようにカーネルコンフィグを変更してください。</p>
296
297 <pre>
298 $ sed -i -e 's/# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set/CONFIG_EXT3_DEFAULTS_TO_ORDERED=y/' -- .config
299 </pre>
300
301 <p>カーネルのデバッグを行うつもりが無いのであれば、コンパイルに要する時間とディスクスペースを節約することができます。カーネルのデバッグを行うつもりが無いのであれば、以下のようにカーネルコンフィグを変更してください。</p>
302
303 <pre>
304 $ sed -i -e 's/CONFIG_DEBUG_INFO=y/# CONFIG_DEBUG_INFO is not set/' -- .config
305 </pre>
306
307 <p>次に、 TOMOYO Linux パッチをダウンロードして適用してください。</p>
308
309 <pre>
310 $ wget -O ccs-patch-1.8.0-20101231.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20101231.tar.gz'
311 $ wget -O ccs-patch-1.8.0-20101231.tar.gz.asc 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49684/ccs-patch-1.8.0-20101231.tar.gz.asc'
312 $ gpg ccs-patch-1.8.0-20101231.tar.gz.asc
313 $ tar -zxf ccs-patch-1.8.0-20101231.tar.gz
314 $ patch -p1 &lt; patches/ccs-patch-2.6.35.diff
315 $ cat config.ccs &gt;&gt; .config
316 </pre>
317
318 <p>次に、カーネルをコンパイルしてください。</p>
319
320 <pre>
321 $ make -s
322 </pre>
323
324 <p>ツールをダウンロードしてコンパイルしてください。</p>
325
326 <pre>
327 $ cd ~/rpmbuild/BUILD/
328 $ wget -O ccs-tools-1.8.0-20101231.tar.gz 'http://sourceforge.jp/frs/redir.php?f=/tomoyo/49693/ccs-tools-1.8.0-20101231.tar.gz'
329 $ tar -zxf ccs-tools-1.8.0-20101231.tar.gz
330 $ make -sC ccstools/
331 </pre>
332
333 <p>一時的にカーネルおよびツールを保持しておくためのディレクトリを作成して、そこにコピーしてください。</p>
334
335 <pre>
336 $ su
337 # mkdir -p /tmp/meego/boot/extlinux/
338 # make -sC ccstools/ INSTALLDIR=/tmp/meego/ install
339 # cd kernel-2.6.35.3/linux-2.6.35/
340 # make -s INSTALL_MOD_PATH=/tmp/meego/ modules_install vdso_install
341 # make -s INSTALL_PATH=/tmp/meego/boot/extlinux/ install
342 # chmod -R go-w /tmp/meego/
343 # chown -R root:root /tmp/meego/
344 # exit
345 </pre>
346
347 <p>カーネルおよびツールをコピーしてください。 QEMU 上で動作している MeeGo 環境へコピーするには</p>
348
349 <pre>
350 $ cd /tmp/meego/
351 $ tar -zcf - | ssh root@127.0.0.1 -p 6666 'cd / &amp;&amp; tar -zxf -'
352 </pre>
353
354 <p>のように、 VMware 上で動作している MeeGo 環境へコピーするには</p>
355
356 <pre>
357 $ cd /tmp/meego/
358 $ tar -zcf - | ssh root@meegohost 'cd / &amp;&amp; tar -zxf -'
359 </pre>
360
361 <p>のようにしてコピーできます。</p>
362
363 <h2><a name="step_3">ステップ3: TOMOYO Linux の初期化</a></h2>
364
365 <p>SSH経由で MeeGo 環境にログインしてください。</p>
366
367 <p>TOMOYO Linux の初期設定を行います。</p>
368
369 <pre>
370 # /usr/lib/ccs/init_policy --use_profiel=1
371 </pre>
372
373 <p>ブートローダの設定を変更します。</p>
374
375 <pre>
376 # vi /boot/extlinux/extlinux.conf
377 </pre>
378
379 <p>extlinux.conf を以下のように編集してください。</p>
380
381 <pre>
382 --- extlinux.conf
383 +++ extlinux.conf
384 @@ -18,7 +18,7 @@
385 menu color timeout 0 #ffffffff #00000000
386 menu color cmdline 0 #ffffffff #00000000
387 label meego0
388 - menu label MeeGo (2.6.35~rc6-134.1-qemu)
389 - kernel vmlinuz-2.6.35~rc6-134.1-qemu
390 - append ro root=/dev/sda1 quiet vga=current quiet
391 + menu label MeeGo (2.6.35.3)
392 + kernel vmlinuz-2.6.35.3
393 + append ro root=/dev/sda1 vga=current
394 menu default
395 </pre>
396
397 <p>ファイルを保存して MeeGo 環境を再起動してください。</p>
398
399 <pre>
400 # reboot
401 </pre>
402
403 <h2><a name="step_4">ステップ4: MeeGo 環境の解析</a></h2>
404
405 <p>SSHセッションから操作することができます。 /boot/extlinux/extlinux.conf から quiet オプションを削除すると、 ALT + F1 キーを押すとコンソール画面に、 ALT + F2 キーを押すとグラフィカル画面に切り替えることができるようになります。また、以下のようにするとグラフィカル画面上に xterm を配置することもできます。</p>
406
407 <pre>
408 # export DISPLAY=:0
409 # xterm -into `xwininfo -root -tree -int | awk ' { if ( index($2, "duihome") &gt; 0) print $1; } '`
410 </pre>
411
412 <p>以下の動画では TOMOYO Linux を用いて MeeGo 環境の振る舞いを解析しています。</p>
413
414 <object data="http://www.youtube.com/v/H9aZv49d2iw?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" width="640" height="385"><param name="movie" value="http://www.youtube.com/v/H9aZv49d2iw?fs=1&amp;hl=en_US&amp;rel=0"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"></object>
415
416 <ul>
417 <li><a href="http://tomoyo.sourceforge.jp/1.8/tool-editpolicy.html.ja">ポリシーエディタの使い方</a>:ポリシーエディタの詳細な使い方</li>
418 </ul>
419
420 <hr>
421
422 <p><a href="index.html.ja">目次へ戻る</a></p>
423 <p><a href="http://sourceforge.jp/"><img src="http://sourceforge.jp/sflogo.php?group_id=1973" width="96" height="31" alt="SourceForge.jp"></a></p>
424 </body>
425 </html>

Properties

Name Value
svn:keywords Date

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