• 検索結果がありません。

Linux の場合

ドキュメント内 WinDriver V10.10 ユーザーズ ガイド (ページ 151-155)

第 8 章 特定のチップ セットの拡張サポート

14.4 Linux の場合

注意:

z Linux のカーネルは開発途中で、カーネルデータ構造体はたびたび変更されます。このような流動的

な開発環境をサポートし、安定したカーネルを作成するために、Linux のカーネル開発者は、カーネ ル自身をコンパイルしたヘッダーファイルと同一のヘッダーファイルを使用して、カーネルモジュール をコンパイルすることを決定しました。バージョン番号がカーネルヘッダーファイルに挿入され、カー ネルにエンコードされているバージョンと照合されます。Linux のドライバ開発者は、ターゲットシステ ムのカーネルバージョンでドライバを再コンパイルする必要があります。

z WinDriver のドライバ モジュール (windrvr6.o / .ko) の名前を変更した場合、セクション 15.2 の 説明のとおり、windrvr6 の参照を変更したドライバ名に置き換え、WinDriver の redist/、lib/

および include/ ディレクトリへの参照を関連するディレクトリのコピーへのパスに置き換えてくださ い。

たとえば、対象のドライバ プロジェクト用に DriverWizard を使用して生成されたドライバ ファイルの名

前を変更して使用する場合、セクション 15.2.2 の説明のとおり、WinDriver/redist への参照を生 成された xxx_installation/redist ディレクトリへの参照に置き換えてください (xxx は生成さ れた対象のドライバプロジェクトの名前)。

z 32-bit と 64-bit の両方のターゲットプラットフォームにドライバを配布する場合、各プラットフォーム用に

それぞれ WinDriver のインストールパッケージを別々に用意してください。

各パッケージに必要なファイルは、それぞれのプラットフォーム用の WinDriver のインストールディレ クトリ以下にあります。

14.4.1 カーネル モジュール

windrvr6.o/.ko はカーネルモジュールであるため、windrvr6.o をロードするすべてのカーネル バージョンで、再コンパイルする必要があります。この作業を簡単に行えるように、Linux カーネルから

WinDriver カーネルモジュールを分離するために次のコンポーネントを提供しています。特定の指定がな

い限り、すべてのコンポーネントは、WinDriver/redist ディレクトリ以下にあります。

z windrvr_gcc_v2.a、windrvr_gcc_v3.a および windrvr_gcc_v3_regparm.a:

WinDriver のカーネルモジュール用にコンパイルしたオブジェクトコード。windrvr_gcc_v2.a

を GCC v2.x.x でコンパイルしたカーネル用に使用し、windrvr_gcc_v3.a を GCC v3.x.x で

コンパイルしたカーネル用に使用します。windrvr_gcc_v3_regparm を regparm フラグで

GCC v3.x.x でコンパイルしたカーネル用に使用します。

z linux_wrappers.c/h: WinDriver カーネル モジュールを Linux カーネルに結合するラッパー ライブラリのソース コード。

z linux_common.h、windrvr.h、wd_ver.h および wdusb_interface.h: ターゲットマ

シンで、WinDriver カーネルモジュールをビルドするのに必要なヘッダーファイル。

(wdusb_interface.h は、USB だけでなく、PCI / PCMCIA / ISA ドライバでも必要です。) z wdusb_linux.c: USB スタックを利用するために使用します。

z configure: windrvr6.o/.ko モジュールをコンパイルしカーネルへ挿入する makefile を 作成する構成スクリプト。

注意: Linux カーネルバージョンが 2.6.26 またはそれ以降の場合、configure は、kbuild を 使用してカーネルモジュールをコンパイルする makefile を生成します。以前のバージョンの

Linux で、kbuild を強制的に使用するには、configure に --enable-kbuild フラグを渡

します。

注意: PCI版の場合、コンパイル用にWinDriver の設定を行う場合、USB のサポートを外してく ださい:

./configure –disable-usb-support

z configure.wd: makefile.wd[.kbuild].in makefile.wd[.kbuild] を作成する スクリプト。

z makefile.in: メインの WinDriver makefile 用のテンプレートで、makefile.wd[.kbuild]

を make することで WinDriver をコンパイルおよびインストールします。

z makefile.wd.in: メインの WinDriver カーネルモジュールをコンパイルおよびインストールす

る makefile 用のテンプレートです。

z makefile.wd.in.kbuild.in: kbuil を使用してメインの WinDriver カーネル モジュール をコンパイルし、モジュールをインストールする makefile 用のテンプレートです。

z setup_inst_dir: 対象のドライバ モジュールをインストールするスクリプトです。

z wdreg (WinDriver/util ディレクトリ以下にあります): 対WinDriverのカーネルドライバモ ジュールをロードするスクリプトです。

注意: setup_inst_dir スクリプトは wdreg を使用してドライバモジュールをロードします。

14.4.2 ユーザーモード ハードウェア コントロール アプリケーション / 共有オ

ブジェクト

WinDriver で作成したハードウェア コントロール アプリケーション / 共有オブジェクトをターゲットにコピーし ます。

(サンプルおよび DriverWizard で生成された WinDriver のプロジェクトのように) ハードウェアコントロール アプリケーション / 共有オブジェクトが libwdapi1010.so を使用する場合、このファイルを開発用 PC の WinDriver/lib ディレクトリから、ターゲットのライブラリディレクトリ (32 ビット x86 または 32 ビット

PowerPC ターゲットの場合は /usr/lib/、64 ビット x86 ターゲットの場合は /usr/lib64) にコピーしま

す。ターゲットの 64 ビットプラットフォームに 32 ビットアプリケーション / 共有オブジェクトを配布する場合、

(WinDriver/lib ディレクトリの libwdapi1010_32.so を配布パッケージへコピー) そのコピーを libwdapi1010.so に名前を変更し、名前を変更したそのファイルをターゲットの /usr/lib ディレクトリ へコピーします。

対象のハードウェアコントロールアプリケーション / 共有オブジェクトはカーネルバージョン番号と一致する 必要はないので、バイナリコード (ソースコードの無許可のコピーを防ぎたい場合) または、ソースコードとし て配布してもかまいません。ただし、Jungo 社とのソフトウェアライセンス契約により、libwdapi1010.so 共有オブジェクトのソースコードを配布することは禁じられている点に注意してください。

注意: ソース コードとして配布する場合、コード中に使用してる WinDriver のライセンス コードを配布しない ように注意してください。

14.4.3 Kernel Plugin モジュール

Kernel Plugin モジュール (作成した場合) はカーネル モジュールのため、有効なカーネルのバージョン番 号と一致する必要があります。したがって、ターゲット システム用に再コンパイルが必要になります。ユー ザーが再コンパイルできるように Kernel Plugin モジュールのソース コードを配布することを推奨します。

Kernel PlugIn のコード生成で DriverWizard が生成した configure スクリプトを使用して、Kernel PlugIn モジュールをビルドし、配布する Kernel PlugIn モジュールに挿入できます。

注意: configure スクリプトは、ファイルの場所 (パス) など、調整を必要とすることがあります。

さまざまな Linux ターゲットで Kernel PlugIn ドライバを再コンパイルできるように、次のファイルを配布するこ とができます:

kp_linux_gcc_v2.o、kp_linux_gcc_v3.o、kp_linux_gcc_v3_regparm.o、

kp_wdapi1010_gcc_v2.a、kp_wdapi1010_gcc_v3.a および kp_wdapi1010_gcc_v3_regparm.a

xxx_gcc_v2.o/a、xxx_gcc_v3.o/a、xxx_gcc_v3_regparm.o/a ファイルはそれぞれ、GCC v2.x.x、GCC v3.x.x、GCC v3.x.x (regparm フラグを使用) で、カーネルをコンパイルする場合に使用され ます。

14.4.4 インストール スクリプト

インストールシェル スクリプトを作成して、ターゲットで自動的にビルドしインストールすることを推奨します。

15

ドライバのインストール - 高度な問題

ドキュメント内 WinDriver V10.10 ユーザーズ ガイド (ページ 151-155)