Skip navigation.
ホーム
BLOG-ROMMER 日高のブログ
ProgramもBlogも滅多に書かず、もっぱら他人のブログを読むばかりのBlogrommer日高の個人的なブログ

古いUSBドライバーをWindows 10 で使いたい

Windows 7のサポート期限 が近づいて来て、ここ最近聞く様になったのが古いOS用のUSBドライバーを Windows 10 で使いたいという話だ。

どれぐらい古いかと言うと、Windows 2000 とか Windows XP だったりする。当然 32bit Only、そして使いたいのは最新の Windows 10 64bit版。ご存知の方も多いと思うが、昔の Windows 32bit版のドライバーは、結構そのまま Windows 7 (32bit)にインストールできて動作してしまう。しかし Windows 10 のカーネルモードで動作する一般的な USB ドライバーは、 KMCS (Kernel Mode Code Signing) ポリシーや、sha2署名UEFIセキュアブート での厳格な署名制限があり、単純に古い WDM (WDFでも同じ) のUSBドライバーを再ビルドしただけでは、問題無く動作するとは言えない。そこでその大昔のドライバーを Windows 10用 に対応させるためにどの様な方法があるかを、一から開発し直すことも含めて整理した。

Windows 10用ドライバー署名(2019年版)

新しいダッシュボードの運用が始まり、Windows 10 のドライバー署名方法の方法が変わって約3年経った。今でも時折質問が来るので、整理して解説する。

前提:証明書と署名

混同している方が結構多いため、大前提として再度確認するわけだが、証明書(Cerificate)署名(SignatureまたはSigning) は異なるものである。

一般的に証明書は、メーカーやユーザーが証明書発行機関(会社)から調達する。通常は1年程度の有効期限がある。電子的なものだが、例えば後述の EV証明書(Extended Validation 証明書)は、次の写真の様なUSBドングルに入っている。

再発行不可なので、無くしてはいけない。時代に逆行している様に思えるが、物理デバイスが必須である。詳しい事情は良く知らないが、どこかの国でどこかの会社がいい加減な証明書をバラまいたためにこの様な事態になったという噂がある。

iothub-explorer に代わる素晴らしいもの

先月のことだが、下記の Pull Request が却下された。1か月待たされてからの返事は、Closedだった。

https://github.com/Azure/azure-iot-sdk-c/pull/690

PRの内容は、azure-iot-sdk-ciothub_service_client の samples 以下にある iothub_registrymanager_sample を次のことを実現する様に修正するものだった。

  • iothub_registrymanager_sample のソースコードに、connection string 等のパラメーターを設定するだけで、単体のプログラムとしてビルドして実行可能にする。試せばわかるが、この Sample は「コーディング事例」だけを示すもので、パラメーターを設定だけではプログラムとして意味がある動作をしない。
  • Deprecated 扱いになった、IoTHubRegistryManager_GetDeviceList() の正しい使用法を示す。
  • このサンプルプログラムが、Deprecated になった、iothub-explorer の代替として利用できる様にする。
  • それの README を付加する。

そのそもこのPRを出そうと思いついたのは、全て iothub-explorer が原因である。

どんなデータって何だ?de:code 2018

「どんなデータもAzure IoT Hub に転送」

de:code 2018で私が話したシアターセッションのタイトルである。当然ながら「どんなデータ」って何だ?という疑問が出るであろう。そこでde:code 2018でのセッションを聞かなかった方のために、少しだけ解説する。ポイントは私が去年から何となく考えていた次の3つである。

  • IoTが流行り出して様々なシステム、プロトコルや標準、さらには団体まで出て来ているが、みなどれも難しくしすぎてないだろうか?
  • データをデバイスからクラウドに転送する、あるいは逆方向も同じだが、最も簡単に、勿論セキュアに実現する方法は何だろうか?
  • 世の中様々なデータやバスがあって、それぞれの通信方式があるが、これらを簡単かつ統一的に扱う、あるいは管理するための方法はどの様になるだろうか?

私なりの考えに基づいて実装した事例を紹介したのがこのセッションである。

EnOcean Alliance Event in Luxemburg

5月15日から4日間、ルクセンブルグで開催されたEnOcean Allianceのイベントに参加して来たのでレポートする。
15日と16日は TWG(Technical Working Group) だけのミーティングで、TWGの現在の課題である Remote Comissioning と Self Certificate を中心に議論が進められた。これら TWG の活動成果(公開情報)は、下記の EnOcean Alliance のページにまとめられているので、興味がある方は参照頂きたい。

EnOcean Alliance Event in Luxemburg

続編:Azure 無料アカウント

2018年5月11日に、2017年に書いた記事のコメントとして無料アカウントの記事を全面的に調べ直して書き直したのだが、細かすぎて伝わらないとの指摘もあったので、新項目として書き直す。本体であるPDFのリンク先は、5月11日のコメントと同じままである。

無料の Azure アカウントを今すぐ作成しましょう

いつの間にか、IoTという言葉がごく当たり前のように、あちこちで聞かれるようになった。どうやらこれからの世の中はすごいらしく、事務用品、子供用おもちゃやレジャー用品など、まったく関係無さそうなまでがIoTになるらしい。それはさておきIoTがらみのセミナーや実習でいつも問題になるのが、学習で使うクラウドのアカウントをどうやって開設するかという事だ。弊社の場合は業務上の関係でMicrosoft Azureを実習で利用することが多いのだが、相変わらず2年前と同じように無料の評価用アカウントの取得が学習の障害になっている。

今さら聞けないVisual Studio 2015 Update3の入手とインストール

Windows 10 IoT Coreがリリースされて約2年が立った、前身の Windows on Devices for Windows 8 の一般公開から約3年である。その間の開発環境やインストール方法の変化の変遷はいろいろあったが、ここ最近は結構安定してきたと思う。インストール手順は現時点では、このGalileo時代と全く同じWindows on Devices のURL
(実態は https://developer.microsoft.com/ja-jp/windows/iot へのリンク)にアクセスして「Get started」をクリックすれば基本的に誰でも簡単に開発環境が構築できるはずである。素晴らしい時代になった。

LLILUM SDK公開

LLILUM(リリューム)はMicrosoft社の.NET Micro Framework (NETMF)開発チームが2015年に開発を始めた、新しいオープンソースの組込みシステム開発環境である。

簡単に説明するとC#のコードをWindows上にインストールしたVisual Studioでコンパイルしてmbedの各種ボードで動作するbin形式バイナリを開発する。ILをインタプリタ実行するNETMFとは異なる。ビルド完了後、F5押下でbin形式マシン語コードをローカルマシンに接続したUSB経由でターゲットボードのmbedポートに直接送り込み、C#ソースコードデバッグを開始できる。

EnOcean Alliance Japan イベント

11月2日に、EnOcean Alliance Japan Eventが千葉県柏市 柏の葉であったので、簡単に紹介する。
EnOcean AllianceはWorld Wideでは2008年にEnOcean製品を製造・販売するメーカーを中心に、一部ユーザーも含んで設立された。日本支部は2011年秋に設立された直後から、国内では毎年2回のペースでイベントを開催しているので今回で11回目である。

コンテンツ配信