Turn your Linux PC into a bluetooth recevier and speaker.
把Linux電腦變成藍牙喇叭接收器的概念,這樣只要將傳統3.5mm喇叭接上電腦,就能將其變身藍牙喇叭,用手機連線播放音樂了。
本操作適用於有藍牙晶片的Ubuntu Linux電腦與樹莓派。手機端Android或iPhone都行。
原理是利用PulseAudio或PipeWire內建的藍牙接收功能,用來接收藍牙訊號,這樣Linux裝置就會變成一個藍牙喇叭,從而用Linux連線到喇叭輸出音樂。
因為這是大部分Linux發行版使用的音訊伺服器,不用另外裝軟體就能用。
論藍牙的音質,如果使用PulseAudio,預設SBC,最多只有到AAC吧。新世代的音訊伺服器「PipeWire」提供更高音質的aptX、LDAC、LC3編碼器,但這也要看你的電腦藍牙晶片是否有支援。
最後,如果是用電腦內部的藍牙晶片,建議準備天線加強收訊。
1. 將喇叭接上Linux裝置#
一般的Linux電腦只要接上3.5mm的端子,確認可以輸出音效就好。
樹莓派亦同。不過Raspberry Pi 5之後竟然砍掉了3.5mm輸出端子,所以你得買一個USB轉接器才能夠接上喇叭,建議在接上螢幕的情況下操作。沒有圖形界面的情況請嘗試用espeak-ng
指令,確認能不能輸出音效。
2. 調整PulseAudio設定#
執行以下指令,確認你現在系統使用Pipewire還是PulseAudio。
pactl info
若是PipeWire
或PulseAudio on PipeWire
,藍牙接收功能應該已經啟動,不需要特別設定就能接收藍牙訊號並播放音樂。
但PulseAudio
就得手動設定載入藍牙模組。下面以Ubuntu 24.04 LTS為例。
- 安裝PulseAudio的藍牙模組
sudo apt install pulseaudio-module-bluetooth
- 修改PulseAudio設定
sudo vim /etc/pulse/system.pa
- 在檔案底部寫入內容,設定載入藍牙模組
load-module module-bluetooth-policy
load-module module-bluetooth-discover
- 重新啟動PulseAudio服務
pulseaudio --kill
pulseaudio --start
3. 將手機與Linux裝置配對#
開啟Linux的系統設定,應該會有藍牙的頁面可以開關藍牙。將手機與Linux藍牙配對。
如果你的Linux沒有圖形界面,請嘗試用bluetoothctl控制:
bluetoothctl
# 列出本機藍牙裝置
list
# 選取藍牙裝置
select <MAC位址>
# 啟動藍牙裝置
power on
# 掃描附近裝置
scan on
# 配對藍牙裝置
pair <MAC位址>
播放手機音樂的時候選取Linux裝置,聲音就會從Linux的喇叭出來。若Linux電腦的藍牙晶片支援aptX編碼那麼手機端應該也會顯示。
Linux的pavucontrol面板可以觀察到有手機的播放訊號源
音樂音量是由手機和Linux端同時決定的。如果要從手機控制Linux的音量,安裝 KDE Connect,這樣就能夠從手機控制Linux喇叭的音量。