[Armadillo:06823] Re: ドライバ組み込み時にUnknown symbol エラーが発生します。

Takenoshita Koyo email@hidden
2011年 2月 21日 (月) 16:07:39 JST


竹之下です。

>  現状の環境でドライバのオブジェクトは作成できております。
>  insmodコマンドでドライバがロードされ、ドライバ内の初期化処理が実行された時にエラーが出ています。
> 
>  ちなみにlinux\device.hをインクルードしております。
これは、ソースコードでは以下のようにしてヘッダファイルをインクルードしている
ことを仰っているのだと思います。
#include <linux/device.h>

この時、コンパイラはインクルードパスからヘッダファイルを探してきて
インクルードします。Armadillo-9向けのカーネルをビルドする際には、
linux-2.6.12.3-a9/includeがインクルードパスに指定されていなければ
なりません。

しかしながら、linux-2.6.12.3-a9/include/linux/device.h
には、class_create()の定義はありません。
つまり、別の場所のヘッダファイルを参照しているのではないかと
思います。

現象が再現するソースコード/Makefileや、ビルドした際のログを書いていただければ、
何か分かるかもしれません。

>  ところでarmadillo9用のカーネルは、現在使用している2.6.12.3-a9-17もしくは2.6.26(pre2)ということになりますか?
はい。そうです。
linux-2.6.26-atはあくまでベータ版ですので、その点ご理解のうえご使用ください。

>  仮に2.6.26(pre2)を使用する場合、カーネルの展開などの手順についてご教授いただけると幸いです。
ソースコードは、以下のURLからダウンロードすることができます。
http://armadillo.atmark-techno.com/dev/kernel-beta-release-20100811

カーネルを展開して、ビルドする手順は、linux-2.6.12.3-a9の場合と変わりません。
現在、どのドキュメントを参照しながら作業されていますか?

-- 
Koyo Takenoshita




armadillo メーリングリストの案内