[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 メーリングリストの案内