Proxmox VEにHome Assistant OSをインストールしてBluetoothを使う
2025年08月02日
Intel N100を搭載したありがちなミニPCにProxmox VEを入れて仮想環境として運用しているのですが、そこにHome Assistant OSを仮想マシンとしてインストールして運用してみます。Switchbotのセンサーを使いたいのでBluetoothも使えるようにします。
BluetoothモジュールはUSB機器として認識されていたので、USBパススルーの設定をしていきます。
root@rio:~# lsusb | grep Bluetooth
Bus 003 Device 002: ID 8087:0026 Intel Corp. AX201 Bluetooth
root@rio:~# コンテナではなく仮想マシンを作成していきます。BIOSはOVMF(UEFI)に、Pre-Enroll keysはチェックを外しておきます。ブートディスクは無しで。RAMは4GBにしていますがカツカツなので、余裕があるなら6GBぐらいは振っておきたいものです。

Home Assistant OSのAlternative Downloadsのページから、KVM/Proxmox用のイメージのURLを取り、Proxmox VEのシェル内でダウンロードと解凍を行います。
wget https://github.com/home-assistant/operating-system/releases/download/16.0/haos_ova-16.0.qcow2.xz
unxz haos_ova-16.0.qcow2.xzディスクイメージの展開はProxmox VEのバージョンによってコマンドが若干変わりますが、PVE 8.4.5では
qm disk import <VMのID> <展開するqcow2イメージのファイル名> <展開先のストレージ>となります。今回の場合VMのIDは301、qcow2イメージはhaos_ova-16.0.qcow2、展開先は特に別のSSDを設定した訳ではないのでlocal-lvmであり、実行したコマンドは
qm disk import 301 haos_ova-16.0.qcow2 local-lvmとなりました。
VMのハードウェア一覧に行くと、バインドされていないディスクが増えているのでバインドしておきます。

さてBluetoothですが、まずパススルーする前にProxmox VE側で認識してしまうと良くないので、カーネルモジュールを読み込まないようにします。これもホスト側のシェルで/etc/modprobe.d/pve-blacklist.confを編集し、末尾にblacklist btusbを加えておきます。
ホストを再起動した後に、Home Assistant OSのVMにパススルーします。ハードウェア一覧からUSBデバイスを追加すると、最初にlsusbで確認した、IDが8087:0026のデバイスがいます。

VMを起動して、コンソールを見ると接続先のIPアドレスが表示されているので、そちらにWebブラウザでアクセスするとセットアップがはじまります。

Bluetoothを認識していて、なおかつSwitchbotのBluetooth機器を認識しているので、きちんと動作しているということになります。