2. MoM作成

2-1
ターミナルを開いて、~/Desktop/mol-bkのディレクトリに入ります。

2-2
「make」を実行します。
コンパイルが進められ、okが並んでいきます。

2-3
Linux Kernel Configurationの画面になります。
「X11 Support」だけに*のチェックが入っています。

2-4
よく分かりませんが、そのままの設定にしておきます。
キーボードの→キーで「Select」を「Exit」にしてEnterします。

2-5
ここはそのままキーボードからEnterします。
またしばらくコンパイルが進められ、okが続きますが・・・

2-6
errorが発生して、終了してしまいます。

2-7
最初にエラーが発生している場所は、このあたりになります。
「init.o」のコンパイルにおいて、次のことが原因でエラーが起こっているようです。
Darwin/locks.h:20:24: No include path in which to find kern/locks.h
In file included from ../../src/shared/kernel_vars.h:35,

2-8: shared
/Desktop/mol-bk/src/shared/にkernel_vars.hが存在しています。
ダブルクリックで開いてみます。

2-9: kernel_vars.h
35行目に、#include "locks.h"とあります。
これにより、一般的には /usr/include/ 内にある locks.h が探索され、そのヘッダーファイルの中身が、include文のところに置き換えられるようです。
なので、/usr/include/ 内を調べてみました。

2-10: /usr/include
locks.h は見当たりません。
このことが原因でエラーが生じていると考えられます。

2-11
最初に見た「BUILDING」に The kernel source に関する説明があります。
” kernel modules はその kernel が作成された時と同じバージョンの kernel headers を使用してコンパイルしなければならない ”
” MOLは現在走っている kernel が 2.6.1-rc1 だと想定して/lib/modules/2.6.1-rc1/buildというパスを使って、kernel が作成された時の kernel headers を参照しに行っている ”
そういったことが書いてあります。
しかし、現状では/lib/modules/という場所さえ存在していません。
したがって、正しいパスを設定してやることが必要なようです。--- (1)
その先を読んでみると、上記パスが存在しない場合には、MOLは /usr/src/linux に kernel source を探しに行くと書いてあります。
その場合の make の実行手順も書いてあるので、この方法も試してみようと思います。--- (2)
さらにその下の Warning: には、流布された kernel headers は壊れている可能性もあるので、その場合には custom kernel を作成するのが最も簡単なやり方とも書いてあります。--- (3)
(1)(2)(3)いずれの方法を採るにしても、Linuxのカーネルソースや実行データは(残って)ないので、新たにソースを入手してコンパイルを行ない、参照するカーネルヘッダやモジュールを作成する必要があるようです。
その方向からも確認を進めてみることにしました。

2-12
Linuxカーネルの ダウンロードサイトから「Linux-2.6.1.tar.bz2」をダウンロードしました。
2.6.1-rc1という形でダウンロードできるものは見当たりませんでした。
取りあえずデスクトップに置いて解凍します。
「README」があります。

2-13
ソース、ビルドを置くディレクトリの指定方法についてサンプルが示してあります。
これに従うと、ディレクトリの構成は以下のようになります。
kernel source code: /usr/src/linux-2.6.1
build directory: /home/name/build/kernel
その場合のターミナルでの実行コマンドも示してあります。
cd /usr/src/linux-2.6.1
make 0=/home/name/build/kernel menuconfig
make 0=/home/name/build/kernel
sudo make 0=/home/name/build/kernel modules_install install
このとおりにやってみることにします。

2-14
/usr/src の下に linux-2.6.1 を置きます。

2-15
ターミナルを開き、最初のコマンドを入力します。
cd /usr/src/linux-2.6.1
次のコマンドを入力します。
make 0=/home/name/build/kernel menuconfig
ここでエラーが出てしまいます。
gcc: unrecognized option `-shared'
ld: Undefined symbols:
_main
gccのオプションとか、リンカldに関するメッセージのようです。
少し調べてみたところ、前者については無視しても構わないようなことも書いてありましたが、よく分かりません。
|