[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41665] Re: Kernel Source & Unresolved Symbol



湯浅です。

2つめの質問だけ

On Thu, 14 Oct 2004 07:42:01 +0900
Yukiko Hakozaki <yukiko@xxxxxxxxxxxxxx> wrote:

> お世話になっています。箱崎と申します。
> 2つ質問をさせて下さい。
> 
> まず1つめはkernel-imageとkernel-source、及びkernel-headersのバージョンについてです。
> 
> 現在以下のような環境で開発に取り組んでおります。
> 	ホスト:Intel i386
> 	ターゲット:Motorola mvme16x
> 先日ターゲットマシンにkernel-imageー2.4.27-mvme16xをインストールしました。
> 起動の確認もできています。(ちなみに9月25日以前のバージョンではカーネルパニックでした。)
> もともとホストでのカスタムカーネル作成を考えておりましたので、apt-getでバージョンの同じkernel-source-2.4.27(with Debian patch)をインストール、kernel-imageインストール時に自動でターゲットにインストールされたconfigファイルをホストにコピーしてきてconfigurationをした後、カーネルのコンパイルをしました。
> 結果はWarningとErrorの嵐でした。
> ドライバの開発でも(当然ですが)このsourceに含まれるkernel-headersでは/asm-m68k/string.hなどからWarningが止まりません。
> 仕方が無いのでkernel-headers-2.4.27-m68kを別途インストールしてこれに対してコンパイルしたところ、Warningもなく無事モジュールができました。
> 今回の例では、公開されているkernel-image、kernel-source、kernel-headersのバージョンの整合性が取れていないように見えるのですが、これはTestingならではのことなのでしょうか。それとも私の思い違いなのでしょうか。
> また、binaryのkernel-imageはgcc-2.95でコンパイルされているようですが、私のクロス開発環境では3.3です。これもカーネルコンパイルができない原因の一つなのでしょうか。
> 
> 次に2つめの質問です。
> 
> 取りあえずkernel-header-2.4.27-m68kで簡単なモジュールの作成ができるようなので、ターゲット機で作成したモジュールのロード&アンロードのテストをしました。すると次のようなメッセージが出ました。
> 	unresolved symbol mm_vtop
> これはカーネル本体とモジュールのバージョンが違う場合、もしくはバージョンサポートの有無が揃っていない場合に出るエラーだと認識しておりますが、正直解決方法が分かりません。
> インストールしたカーネルのconfigファイルでは CONFIG_MODVERSIONS is not set となっています。
> さらにprintkのみのモジュールでは同種のエラーは出ず、ロードに成功します。
> 恐らく私が混乱しているのだと思いますが、解決の糸口が掴めずに数日途方にくれています。

これはバージョンサポートの有無が揃っていないわけではなく(その場合は違うメッセージがでます)、
単純にmm_vtopが利用可能ではないのだと思います。

ターゲットの/proc/ksymsをcatしてmm_vtopが含まれているか確認しましょう。

cat /proc/ksyms | grep mm_vtop

もしなければarch/m68k/mm/memory.cを見てご利用のkernel configで
mm_vtopが利用できるか確認しましょう(#ifndef CONFIG_SINGLE_MEMORY_CHUNK #endifで囲まれています)。
kernel configによってはこの関数が利用できない場合があります。

> 前述の通り、今のままではカーネルの再構築はできず、モジュールの開発もままならず、でとても困っています。
> 記述が長く分かりにくい上に、大変基本的なことで恐縮なのですが、どなたか解決方法をご教示いただければ幸甚です。
> 宜しくお願いいたします。

--
Yoichi Yuasa