このトピックでは、開発ボードのセカンダリシステム記述テーブル (SSDT) を更新した後、開発ボードにセンサードライバーをインストールする方法について説明します。
このトピックでは、Sharks Cove 開発ボードと ADXL345 加速度計をケーススタディとして使用して、開発ボードにセンサードライバーをインストールするプロセスについて説明します。 そのため、このトピックで説明するタスクを実行する場合は、まず Sharks Cove にオペレーティングシステムをインストールする必要があります。 その方法の詳細については、 Windows 10 用のキットとツールのダウンロードを参照し、指示に従って Windows 10 をインストールします。
警告
Sharks Cove ハードウェア開発ボードはサポートされなくなりました。 現在サポートされているボードの一覧については、「SoCs and custom boards (SoC とカスタム ボード)」をご覧ください。
Sharks Cove へのオペレーティングシステムのインストールが完了したら、Microsoft Visual Studio でドライバーをビルドする方法については、センサードライバーのビルドに関するページを参照してください。 次に、ここに戻って続行します。
加速度計は、I2C バス経由で Sharks Cove に接続されます。 I2C バスに接続されている周辺機器は、高度な構成と電源インターフェイス (ACPI) を介して列挙されます。 そのため、加速度計のサンプルドライバーは、プラグアンドプレイではなく ACPI をサポートするように開発されました。
Sharks Cove の ACPI ドライバーに I2C バスの新しいデバイス (加速度計) を認識させるには、Sharks Cove の SSDT に加速度計に関する情報を追加する必要があります。 次の表では、ハードウェアプラットフォームのデバイスのハードウェアリソースと割り込み要件 (加速度計などの接続周辺機器など) について説明します。
開始する前に
以下に示すタスクの実行を開始する前に、次の図に示すように Sharks Cove が設定されていることを確認してください。
既定 SSDT の取得と確認
このセクションでは、ACPI ソース言語 (ASL) コンパイラを使用して Sharks Cove のファクトリの既定の SSDT を取得し、それを確認する方法について説明します。 また、既定の SSDT を更新されたものに置き換える方法についても説明します。
開発用コンピュータで、ASL コンパイラをコピーする場所の c:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify に移動します。
Asl.exe ファイルをコピーし、フラッシュ ドライブに保存します。
Sharks Cove で、ルートディレクトリに Tools フォルダーを作成します。 次に、フラッシュドライブをSharks CoveのUSBハブに取り付け、Asl.exe のファイルを Tools のフォルダにコピーします。
管理者としてコマンドプロンプトウィンドウを開き、次のコマンド cd\toolsdir を入力します。Asl.exe のファイルがディレクトリに一覧表示されていることを確認します。
ASL コンパイラを呼び出し、次のコマンド asl /tab=ssdt を入力して ASL ファイルを作成します。
次のコマンドを入力して、ASL ファイルが正常に作成されたことを確認します: dir ssdt.asl
以下のコマンド notepad ssdt.asl を入力し、メモ帳でASLファイルを開きます。ASLファイルを見て、加速度センサーや I2C バスへの参照がないことに注意してください。
メモ帳を閉じます。 次に、コマンドプロンプトウィンドウに次のコマンドを入力して、ssdt.asl のファイルの名前を変更します。 ren ssdt.asl ssdt-old.asl 次に dir コマンドを使用して、ファイルが ssdt-old.asl として一覧表示されていることを確認します。
既定の SSDT を更新しました。
次のタスクを実行して SSDT を更新し、それを読み込んで工場出荷時の既定のバージョンを置き換えます。 更新された SSDT は、battery-backed RAM と呼ばれるメモリのポーションに格納されます。 したがって、Sharks Cove に付属のボタンセル (バッテリー) がソケットに接続されていることを確認します。
次の更新された SSDT をコピーし、メモ帳の新しいインスタンスに貼り付けます。
// CreatorID=INTL CreatorRev=20.14.805 // FileLength=177 FileChkSum=0x88 DefinitionBlock("SSDT.AML", "SSDT", 0x01, "Intel_", "ADebTabl", 0x00001000) { Scope() { Name(DPTR, 0x3bf2d000) Name(EPTR, 0x3bf3d000) Name(CPTR, 0x3bf2d010) Mutex(MMUT, 0x0) Method(MDBG, 0x1, Serialized) { Store(Acquire(MMUT, 0x3e8), Local0) If(LEqual(Local0, Zero)) { OperationRegion(ABLK, SystemMemory, CPTR, 0x10) Field(ABLK, ByteAcc, NoLock, Preserve) { AAAA, 128 } Store(Arg0, AAAA) Add(CPTR, 0x10, CPTR) If(LNot(LLess(CPTR, EPTR))) { Add(DPTR, 0x10, CPTR) } Release(MMUT) } Return(Local0) } } Scope(_SB_) { Device(SPBA) { Name(_HID, "ADXL345Acc") Name(_UID, 1) Method(_CRS, 0x0, NotSerialized) { Name(RBUF, ResourceTemplate() { I2CSerialBus(0x53, ControllerInitiated, 400000, AddressingMode7Bit, "\\_SB.I2C3", 0, ResourceConsumer) GpioInt(Edge, ActiveHigh, Exclusive, PullDown, 0, "\\_SB.GPO2") {0x17} }) Return(RBUF) } Method(_DSM, 0x4, NotSerialized) { If(LEqual(Arg0, Buffer(0x10) { 0x1e, 0x54, 0x81, 0x76, 0x27, 0x88, 0x39, 0x42, 0x8d, 0x9d, 0x36, 0xbe, 0x7f, 0xe1, 0x25, 0x42 })) { If(LEqual(Arg2, Zero)) { Return(Buffer(One) { 0x03 }) } If(LEqual(Arg2, One)) { Return(Buffer(0x4) { 0x00, 0x01, 0x02, 0x03 }) } } Else { Return(Buffer(One) { 0x00 }) } } // Method(_DSM ...) } // Device(SPBA) } // Scope(_SB_) }
メモ帳でFile>を選択してとして保存します。 次に、名前を付けて保存のドロップダウンボックスを選択し、すべてのファイルを選択します。
ファイル名 のボックスに ssdt.asl と入力し、保存 を選択してメモ帳を閉じます。
コマンドプロンプトウィンドウで、dir コマンドを使って、規定のファイルが ssdt-old.asl、新しいファイルが ssdt.asl と表示されていることを確認します。
次のコマンドの asl ssdt.asl を入力して、Sharks Cove が理解できる形式に ssdt.asl のファイルをコンパイルします。
次のコマンドの dir ssdt.aml を入力して、手順 3 でコンパイル済みファイルが正常に作成されたことを確認します。ツールディレクトリに ssdt.aml のファイルが表示されます。
次のコマンドの asl /loadtable ssdt.aml を入力して、コンパイル済みファイルをバッテリベースの RAM に読み込みます。
テスト署名の有効化
サンプルセンサードライバーをインストールする前に、テスト署名を有効にする必要があります。 テスト署名を有効にするには、次のタスクを実行します。 デバイスマネージャー を使用してセンサードライバーをインストールするには、次の手順を実行します。
コマンドプロンプトウィンドウで、次のコマンドを入力して、テスト署名が既に有効になっているかどうかを確認します。
bcdedit /enum次のような一覧が表示され、テスト署名のエントリが表示され、
yes
その値が手順 5 にスキップするように設定されている場合。
テスト署名を有効にする必要がある場合は、次のコマンドの bcdedit /set testsigning on を入力します。
手順 1 (この演習内) を繰り返して、Windows ブートローダーの一覧で、テスト署名システム変数の値が「yes」に設定されていることを確認します。
Sharks Cove を再起動します。 ボードが再起動したら、ボリュームアップボタンを約 2 秒間押したままにして、システムセットアップ (UEFI) ウィンドウに入ります。
UEFI ウィンドウで デバイスマネージャー>システムセットアップ>ブートを選択し、UEFI セキュリティブート が <無効> に設定されていることを確認します。
変更内容を保存し、UEFI ウィンドウを終了します。
センサードライバーをインストールする
Sharks Cove ボードにドライバーをインストールするための 4 つの主要な方法があります。
- ネットワークソースから Sharks Cove に直接ドライバーをダウンロードします。
- Sharks Cove をプロビジョニング済みクライアントとして接続して、ホストコンピュータ上でセンサードライバーを開発します。 次に、ホストコンピュータから Sharks Cove にドライバーを展開します。
- ドライバーパッケージをフラッシュドライブにコピーし、フラッシュドライブを Sharks Cove に接続します。 次に、 コマンドプロンプトウィンドウから devcon コマンドを使用して、ドライバーを手動でインストールします。
- ドライバーパッケージをフラッシュドライブにコピーし、フラッシュドライブを Sharks Cove に接続します。 次に、 デバイスマネージャーを使用してドライバーを手動でインストールします。
わかりやすくするために、前の一覧の最後のメソッドを使用します。 デバイスマネージャー を使用してセンサードライバーを手動でインストールするには、次の手順を実行します。
センサードライバーをインストールする前に、センサーを Sharks Cove に接続する必要があります。 SparkFun から ADXL345 加速度計ブレークアウトボードを変更してサンプルのセンサードライバーを操作する方法については、センサーテストボードの準備を参照してください。 センサーブレークアウトボードを Sharks Cove に接続する方法については、センサーの Sharks Cove ボードへの接続を参照してください。
ADXL345 加速度計が Sharks Cove J1C1 コネクタに接続されていることを確認してから、Sharks Cove の電源をオンにします。
センサードライバーを備えたフラッシュ ドライブを、Sharks Cove に接続されている電源付き USB ハブに接続します。 たとえば、センサードライバーのビルドの手順 に従ってビルドしたドライバーを保存したフラッシュドライブを指定できます。
デバイス マネージャーを開き、その他のデバイスノードで黄色のバン記号が付いた「不明なデバイス」を探します (次のスクリーンショットを参照)。
黄色のバングを持つデバイスを長押し (または右クリック) し(不明なデバイスとして表示されます)、ドライバーソフトウェアの更新を選択し、コンピュータを参照してドライバーソフトウェアを参照を選択します。
フラッシュドライブの ADXL345 ドライバーを参照し、次へを選択します。 画面の指示に従ってセンサードライバーをインストールします。
サンプルセンサードライバーが正常にインストールされると、デバイスマネージャー次のスクリーンショットに示すようにセンサーが表示されます。
Visual Studio を使用してクライアントコンピュータ (Sharks Cove など) にドライバーを展開する方法については、テストコンピュータへのドライバーの展開を参照してください。
サンプルのセンサードライバーを正常にインストールした後、センサーをテストする方法については、ユニバーサルセンサードライバーのテストを参照してください。