ラズパイ4のWindows 10にBluetoothドライバを導入する


以前、ラズパイ4(Raspberry Pi 4)にWindows 10をインストールする手順を書きましたが、その手順ではドライバがないためBluetoothが使用できないという制約がありました。

その後、有志によりテスト版Bluetoothドライバが公開されまして、こちらをインストールすることで Raspberry Pi 4 上のWindows 10環境でもBluetoothが使用可能になります。
テスト版ということもあってインストール手順がやや複雑ですのでこちらで紹介したいと思います。

用意するもの

  • Windows 10 ARM64インストール済みの Raspberry Pi 4 Model B
    こちらの記事に従ってWindows 10のインストールを済ませておいてください。

PL011ドライバ&UEFIファームウェアの差し替え

  1. Windows 10インストール済みのmicroSDをPCに接続しておきます
    PC上でWindowsパーティションとBOOTパーティションのドライブレターを確認しておいてください。下図の場合だとWindowsがX:でBOOTがY:ですね。

  2. https://github.com/worproject/RPi-Bluetooth-Testing に行きます

  3. [Code]→[Download ZIP]でファイル一式をダウンロードして展開します

  4. 展開したフォルダ内のSerPL011_48MHz.zipを展開するとSerPL011.infファイルが入っているのでこのファイルのフルパスを控えておきます

  5. 展開した中のRPi4フォルダに入っているRPI_EFI.fdファイルで、BOOTパーティション内の同名ファイルを上書きします

  6. PowerShellを管理者権限で起動して以下のコマンドを実行します
    ※WindowsパーティションのドライブレターX:は各自の環境に合わせてください

PowerShell
  Get-WindowsDriver -Path X:\ | ? {$_.OriginalFileName -match 'serpl011.inf'} | Remove-WindowsDriver
  Add-WindowsDriver -Path X:\ -Driver "<SerPL011_48MHz.infのフルパス>" -ForceUnsigned

Bluetoothドライバのインストール

  1. https://github.com/worproject/cywbtserialbus/releases に行きます

  2. cywbtserialbus_v1.0_ARM64_Debug.zipをダウンロードして展開します
    展開した中にcywbtserialbus.infファイルが入っているのでこのファイルのフルパスを控えておきます。

  3. PowerShellを管理者権限で起動して以下のコマンドを実行します
    ※WindowsパーティションのドライブレターX:は各自の環境に合わせてください

PowerShell
  Add-WindowsDriver -Path X:\ -Driver "<cywbtserialbus.infのフルパス>" -ForceUnsigned 

Bluetooth伝送速度の調整

ここまでの手順で既にBluetoothが使用可能になりましたが、デフォルトでは伝送速度が制限されてしまうので設定を調整して高速化します。

デフォルトで速度が制限されているのは Raspberry Pi 3 で使用した際にCPU負荷が高まりクラッシュする問題を回避するためのようですので、Pi 3 で試す場合は変更しないほうが良いと思います

  1. Bluetoothドライバインストール済みのWindows 10で Raspberry Pi 4 を起動します

  2. レジストリエディタで以下のレジストリの値を921600(10進)に変更して再起動します
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\cywbtserialbus\Parameters\BaudRate

手でレジストリ変更したくない方は以下コマンドでどうぞ

cmd
reg add HKLM\SYSTEM\CurrentControlSet\Services\cywbtserialbus\Parameters /v BaudRate /t REG_DWORD /d 921600 /f

おわり

以上でBluetoothが使用できるようになったかと思います。
テスト版ドライバということですが、手元のBluetoothヘッドホンとAndroidスマホでのBluetoothテザリングは特に問題なく動作しました。

将来的にはインストール手順がもっと簡略化されると嬉しいですね。