Bluetooth USBアダプターは、仮想化レイヤーの観点では特別なものではありません。まずZimaOSホストがUSBデバイスを列挙し、次にVMがそのホストデバイスをパススルー経由で受け取る必要があります。ホストが認識できなければ、ゲストが使用できるものはありません。
ホストでの検出とゲストへのパススルーを分けて確認する
まず、USBアダプターがホスト上に存在するか確認します。ホストではデバイスが表示されるのにVM内では見つからない場合は、ZVM/libvirtの割り当てレイヤーを確認します。ホストに存在しない場合、ゲスト内のHome Assistantの設定を変更しても解決しません。
USBパススルーではデバイスを1つのゲストに割り当てる
上流のlibvirtホストデバイスパススルーのドキュメントでは、ホストデバイスのパススルーについて説明されており、パススルーされたデバイスはホストと稼働中のゲストで同時に使用できないと記載されています。これは、Bluetoothや無線ドングルでは特に重要です。通常、VMの稼働中はゲストが排他的にアクセスする必要があるためです。
仮想マシンの要件では、ZimaOSの仮想化とパススルーに関する最新の情報を確認できます。また、Home Assistant VMのセットアップでは、Zigbee、Z-Wave、USB無線機器をHome Assistant OS VMに渡す必要がある理由を具体的に説明しています。
Home AssistantコンテナとHAOS VMは異なる
Home Assistantの要件では、Home Assistant ContainerとHAOSのデプロイ方法の違いが説明されています。コンテナではハードウェアをDockerにマッピングしますが、VMではUSBデバイスを仮想化レイヤー経由で割り当てる必要があります。両者の手順を互いに代用することはできません。
Home AssistantのVMオプションでは、コンテナへのインストールとは別に、VMベースのインストール方法が説明されています。そのため、まず実際に使用しているHome Assistantのインストール方式を確認してください。
実践的なトラブルシューティングの手順
- USB BluetoothアダプターがZimaOSホスト上で認識されていることを確認します。
- インターフェース上でデバイスの割り当てを変更する際は、対象のVMを停止します。
- 汎用USBコントローラーだけに頼らず、正しいUSBホストデバイスをVMに追加します。
- VMを起動し、ゲスト内でアダプターが認識されることを確認します。
- 再起動後に消える場合は、ホスト識別子が変わっていないか、別の場所でデバイスが使用されていないかを再確認します。
結論
Home Assistant VMでは、BluetoothドングルをUSBパススルーデバイスとして扱ってください。まずホストで認識される必要があり、次にZVM/libvirtがそのデバイスをゲストに割り当て、そこで初めてHome Assistantが使用できるようになります。元のスレッドには、ZimaOSに独立した「Bluetoothを有効にする」スイッチがあるという証拠はありません。
