はじめにユニバーサルなI/O Kitドライバの作成は、ユニバーサルアプリケーションの作成によく似ていますが、ドライバのバイナリ互換性に影響する可能性のある決定的な違いがあります。このテクニカルノートでは、ユニバーサルドライバを作成するための、Xcode I/O Kitカーネルドライバプロジェクトの設定手順と、ユニバーサルドライバに関してよく見られるバイナリ互換性の問題について説明します。 どのバージョンのXcodeとMac OS X SDKを使用するかXcode 2.2.1は、ユニバーサルなI/O Kitドライバをビルドするのに使用できる最も古いバージョンのXcodeです。 インテルベースのMacコンピュータ向けのビルドインテル側のI/O Kit KEXTは、GCC 4.0、およびXcode 2.2.1以降に含まれるユニバーサルなMac OS X 10.4uを使ってビルドする必要があります。これによって、Mac OS X 10.4.4以降で動作するインテルベースのMacintoshコンピュータでドライバをロードし、実行できるようになります。 PowerPCベースのMacコンピュータ向けのビルドPowerPC側のKEXTは、サポートしたいMac OS Xの最も古いバージョンのMac OS X SDKを使ってビルドする必要があります。 PowerPCベースのMacコンピュータ向けのビルド: 10.4より前のMac OS Xがターゲットバージョン10.4以前のMac OS X用のビルドの場合は、GCC 3.3を使ってビルドする必要もあります。 PowerPCベースのMacコンピュータ向けのビルド: Xcode 2.2.xまたはXcode 2.3を使用してMac OS X 10.4.xをターゲットとするXcode 2.2.xまたは2.3を使用している場合、PowerPCベースシステムのMac OS X 10.4.xをターゲットとするI/O Kitドライバは、ユニバーサルでないMac OS X 10.4.0 SDKを使ってビルドする必要があります。これは、両方のアーキテクチャでユニバーサルな10.4u SDKを使用してビルドできる、ユニバーサルアプリケーションとは異なります。 10.4.0 SDKは単体インストーラとしてApple Developer ConnectionのWebサイトから入手できます。SDKインストーラのRead Meファイルがあります。 10.4.0 SDKは、Mac OS X 10.4のインストールDVDに含まれているXcode 2.0のインストーラからもインストールできます。「Cross Development」の下のXcodeカスタムインストールの中にあります。 PowerPCベースのMacコンピュータ向けのビルド: Xcode 2.4以降を使用してMac OS X 10.4.xをターゲットとするXcode 2.4以降には、もう1つの選択肢があります。つまり、PowerPCアーキテクチャ向けにビルドするときに、プリプロセッサシンボル ユニバーサルなI/O KitカーネルドライバのためのXcodeプロジェクト設定適切なバージョンのSDKとコンパイラの使用は、Xcodeのアーキテクチャ別ビルド設定で容易に実現できます。 PowerPC専用のXcode I/O Kitドライバプロジェクトをユニバーサルプロジェクトへ変換するには、まずプロジェクト内のすべてのターゲットがネイティブなXcodeターゲットであることを確認します。これはXcodeでプロジェクトを開くことで確認できます。「 次に、プロジェクト設定またはターゲットビルド設定に以下の変更を行います。プロジェクト内のすべてのターゲットに設定を適用する場合は、プロジェクト設定を変更してください。特定のターゲットからユニバーサルなKEXTを作成する場合は、ターゲット設定を変更してください。
ユニバーサルなI/O Kitドライバのよくある問題ユニバーサルドライバのビルド後に直面する問題のほとんどは、ロードする際に生じます。たとえば、 com.mycompany.driver.MyDriverClass is not compatible with its superclass, <superclass name> superclass changed? ほとんどのロード時エラーの原因は、ドライバをビルドするときに間違ったSDKを使用したことです。たとえば、PowerPC側のドライバはMac OS X 10.3.xをターゲットにしているのに、10.4u SDKを使用してビルドした場合などです。「どのバージョンのXcodeとMac OS X SDKを使用するか」に前掲したSDKバージョン情報を参照してください。次に、「ユニバーサルなI/O KitカーネルドライバのためのXcodeプロジェクト設定」で前述したように、Xcodeプロジェクトをセットアップしていることを確認します。 ドキュメント改訂履歴
掲載日: 2006-08-25 | ||||||||||||
|