這是 NVIDIA Tegra 內核(5.15.148-tegra)常見的痛點,預設配置為了節省資源,禁用了音頻插件,導致 L2CAP 連接後立即終止(日誌裡常見的 reason 0x16)。
簡單說,Jetson 的藍牙服務預設啟動時會用 --noplugin=audio,a2dp,avrcp 參數,禁用音頻支援。這讓配對看起來成功,但一下子就斷線。
步驟 1:修改藍牙服務配置,啟用音頻插件
這是核心修復!NVIDIA 的預設設定太保守了,我們來鬆綁它。
-
打開配置文件:
sudo nano /lib/systemd/system/bluetooth.service.d/nv-bluetooth-service.conf -
找到這行(或類似):
ExecStart=/usr/lib/bluetooth/bluetoothd -d --noplugin=audio,a2dp,avrcp -
修改成(移除
--noplugin部分):ExecStart=/usr/lib/bluetooth/bluetoothd -d -
儲存並退出(Ctrl+O → Enter → Ctrl+X),然後重新載入 systemd:
sudo systemctl daemon-reload sudo systemctl restart bluetooth
這樣一來,藍牙 daemon 就能支援 A2DP 和 AVRCP 了。重啟後,用 sudo systemctl status bluetooth 確認服務是 active (running)。
步驟 2:安裝 PulseAudio 藍牙模組,強化音頻輸出
Ubuntu 22.04 用 PulseAudio 支援音頻輸出。安裝後,重啟服務讓它生效。
-
更新套件並安裝:
sudo apt update sudo apt install pulseaudio-module-bluetooth -
重啟 PulseAudio(或直接重啟系統更保險):
pulseaudio --kill pulseaudio --start或者:
sudo reboot
安裝完後,你的系統就能正確路由藍牙音頻了。在「設定 > 聲音」裡,應該會看到藍牙選項變多。
步驟 3:清除舊配對並重新配對音箱
確保你的音箱已進入配對模式(通常長按藍牙鈕 5-10 秒,直到 LED 閃爍)。重新配對,應該就會成功。
測試:播個音樂或 YouTube,在「設定 > 聲音」選你的音箱作為輸出。聲音從音箱傳出?恭喜,成功!
參考資源:
- NVIDIA Developer Forums: Jetson Bluetooth Audio Issues
- Ubuntu Bluetooth Docs
留言