32bit版 Windows 8.1でドライバの署名を要求されたときの対策
「ASUS TransBook T100TA-DK32G」なるノートマシンを買ってしまいました。
手持ちのネットブック(Aspire one AOA150)があまりにもじゃじゃ馬すぎまして、メモリの後半512MBがやたら調子悪く、最近はWLANもまともに通信できない状態になってきたので、乗り換え先としてチョイスしてみました。
ポイントは、OSがWindows 8.1の「32bit版」というところ。
64bit版のOSでは、それまでの32bit版のカーネルモードドライバが走りません。だめ押し、Windows 7以降は署名を強要してくるので(+年額数万円)、マイナーなデバイスではドライバが揃わないこともよくあると思います。
そんなわけで、我々組み込み業界(?)で開発環境に64bit版のWindowsを使うことは少ないはずです(勿論検証用の環境は持ってますが…)。
家でもごにょごにょやる私としては64bit版のOSがメインの機体を入れたくなかったので、これは丁度良いやと導入に踏み切ったのでした。
で、早速自作ドライバ「親指の友」(未署名)を突っ込んでみたのですが……。
「サードパーティのINFにデジタル署名情報が含まれていません。」
という大変切ない表示。お前、32bit版だよな?? こっちで署名強制なんて話聞いてないぞ??
Google大先生に訪ねても、ご教唆頂けた内容は概ね「x64環境では署名が…」というもの…。辛うじて見つかった情報を頼りに調べたところ、「Secure Boot」というものが犯人と判明。
最近のAT互換機はBIOSの代わりにEFI(UEFI)が実装されていて、こいつを使う場合の1オプションとして実装されている機能のようです。この場合、ロードモジュールはファームによって署名の検査を受けて起動します。安全性は高くなりそうですが、これを入れると、32bit版でもドライバの署名が強制される模様。
とりあえず、これを外すことでドライバを使用することができるようになりました。
ちなみに、付属のキーボードはUSB扱いでしたが、USBキーボードでも普通にドライバを置き換えればインストールできました(配列置換が効いている)。レイアウトの適用方法は要変更みたいですので、そこだけ今度直しとこ。
…ただ、噂には聞いていたものの、カナレイアウトが無視される上に、IMEモード変化の通知が来てなさそうな雰囲気で、親指シフトドライバとしては使い物になりません。
何か逃げ道考えなきゃなぁ…。