1. はじめに
Windows PE(Preinstallation Environment)は、Windowsのセットアップやトラブル対応時に便利な軽量環境ですが、Surface Laptop(第1世代)でUSBブートした際、キーボードがまったく反応しないという現象に遭遇しました。
調査と検証の結果、ドライバの追加で解決できました。
2. 問題の概要と原因
起きたこと
- USBメモリに作成したWindows PEをSurface Laptop(第1世代)で起動
- コマンドプロンプト画面は表示され、タッチパッドでカーソル移動・クリックは可能
- しかし、キーボード入力だけが完全に無反応
原因
標準のWindows PEには、Surface Laptopのキーボードを制御するためのドライバが含まれていないため。
Microsoftが提供するSurface向けドライバを追加する必要があると判明しました。
3. 解決アプローチの概要
Surface Laptop用の公式ドライバ(MSI形式)をMicrosoftサイトからダウンロードし、必要なドライバをWindows PEのboot.wim
に追加することで解決を図りました。
4. 解決手順(詳細)
✅ 前提
- Windows ADKとPEアドオンがすでにインストールされている
-
C:\winpe
にWindows PE作成用の作業ディレクトリがある -
C:\ForDevelop\msi_extract
ディレクトリを作成済み
※ Windows PE作成とドライバ追加にはSurface Laptopとは別のWindows機を使っています。
① Surfaceドライバのダウンロード
以下のURLから、Surface Laptop(第1世代)用のドライバを入手します。
② MSIファイルの展開
ダウンロードしたMSIファイルを以下のコマンドで展開します。(管理者として実行)
msiexec /a SurfaceLaptop_Win10_15063_1803509_0.msi /qb TARGETDIR=C:\ForDevelop\msi_extract
③ ドライバ追加バッチを作成
make_winpe_add_surfacelaptop_driver.bat
という名前で、以下の内容のバッチファイルを作成します。
rem Surface Laptop用ドライバをWindows PEに追加するバッチ
set WS_DIR=C:\winpe
set SL_DIR=C:\ForDevelop\msi_extract\SurfaceUpdate
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SerialIOGPIO" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SurfaceHidMini" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SurfaceSerialHub" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\itouch" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\serialioi2c" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SerialIOUART" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SerialIOSPI" /Recurse
dism /Image:"%WS_DIR%\mount" /Add-Driver /Driver:"%SL_DIR%\SurfaceIntegration" /Recurse
Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit
※ ChatGPT 4o からの提案で、キーボード制御に関連しそうなドライバを重点的に追加しています。
④ ドライバの組み込みとUSBメディア作成
- 「展開およびイメージング ツール環境」を管理者で起動
- 上記バッチファイルを実行
- USB作成コマンドを実行(
E:
はUSBメモリのドライブに合わせて変更)
makewinpemedia /ufd "C:\winpe" E:
⑤ 起動テスト
Surface LaptopにUSBを挿して起動。
コマンドプロンプト画面でキーボード入力ができれば成功です。
5. 補足情報
🧩 使用した環境
項目 | 内容 |
---|---|
検証機 | Surface Laptop 第1世代(モデル 1769) |
OS | Windows 10 Pro |
CPU | Intel Core i5-7200U @ 2.50GHz |
メモリ | 4GB |
ストレージ | 119GB SSD |
ADKバージョンはWindows 11 バージョン 22H2 用 ADK
だったと思います。(Windows 11を選択したという記憶はあります。)
Windows ADK のダウンロードとインストール
🧩 起動方法の補足
通常起動方法
- 電源オフ状態でF5(音量下ボタン)を押しながら電源ボタン押下
- Microsoftロゴが出たらキーを離す
UEFI画面から起動順変更(うまく起動しない場合)
- 電源オフ状態でF6(音量上ボタン)を押しながら電源ボタン押下
- UEFI画面が開く
- 「Boot configuration」からUSBを最優先に設定して保存・再起動