0
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Q.なぜBIOS設定画面でBluetoothデバイスが使えないのか?

Last updated at Posted at 2024-06-16

A.BluetoothデバイスドライバーはOSによって認識されて動作するから

BluetoothデバイスはBluetoothデバイスドライバーによって制御されます。
BluetoothデバイスドライバーはOSによって制御されます。
パソコンは電源投入時、ハードウェア→BIOS→OS→アプリケーションの順番で起動されます。
従って、BIOS起動時にOSが起動していないため、Bluetoothデバイスが使えないということになります。

対象読者

暇な人

ことの発端

Riot「ゲームのクライアントをアップデートしたから更新よろ。 あ、場合によってはBIOSの設定変更もする必要があるからよろw」

スクリーンショット 2024-06-16 163648.png

Bluetoothキーボード「BIOS画面で使えません。というかOS起動前なのでBluetoothキーボードが使えないのでBIOS画面に入れません。」

有線キーボード「自分、いけます。」

ということでなぜ、BIOS画面でBluetoothデバイスが使えないか気になったので調べてみました。

BIOSとはハードウェア制御プログラム

電源投入時、ハードウェア→BIOS→OS→アプリケーションの順番で起動されます。
BIOSは以下の機能を提供しています。
・ハードウェア制御
・入出力デバイス制御
・OS読み込み

BIOSには基本的なデバイスドライバが含まれており、これによってキーボードやマウスなどの入力デバイスを認識し、制御することができます。
BIOSはシステムの起動を管理し、ハードウェアの初期化をすることが主な役割のため基本的なデバイスの制御のみを提供しています。

Bluetoothデバイスは複雑なプロトコルを必要とする

以下はBluetooth SIGが公開しているBluetoothデバイスのプロトコルスタックです。

スクリーンショット 2024-06-16 184629.png

複数のプロトコルで構成され、複数のレイヤーで構成されています。

また、以下はMicrosoftが公開しているBluetoothドライバーのプロトコルスタックです。

bluetooth-architecture.png

こちらも複数のプロトコルで構成され、複数のレイヤーで構成されています。

ここでは細かいところまでは説明しませんが、まとめるとBluetooth通信には以下のようなプロトコルが必要となります。
・デバイスの発見
・ペアリング
・認証
・暗号化
・接続
・データ転送
・プロファイル管理

こうした高度なプロトコルはOSの機能に依存するほかなく、BIOSでは提供できません。

まとめ

Bluetoothデバイス(通信)は非常に複雑なプロトコルを必要とし、それはOSの機能に依存している。
電源投入時、BIOS→OSという順番で起動するので、OS依存のBluetoothデバイスはBIOS起動時には使用できない。

参考

https://www.bluetooth.com/wp-content/uploads/2022/05/the-bluetooth-le-primer-v1.2.0.pdf
https://www.bluetooth.com/wp-content/uploads/2022/05/the-bluetooth-le-primer-v1.2.0.pdf

https://ja.wikipedia.org/wiki/Basic_Input/Output_System
https://www.musen-connect.co.jp/blog/course/trial-production/mechanism-of-bluetooth-stack-structure-overview/

余談

有線デバイスは捨てずに持っておこうね

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0