折騰

在 Fedora / Linux 下使用 LDAC 藍芽連線耳機

大法的 SONY WH-1000XM3 可謂是年度明星產品,而淺羽購買之後,幾乎每天都用來聽歌。不過,因爲習慣問題,除掉和 SONY NW-A46HN 配對之外,幾乎都是用筆電聽歌。當然筆電聽歌的需求很正常,不過在 Linux 下,aptX HD 高品質連線自然是無緣的;而 LDAC 雖然已經放出原始碼,ALSA 上游也已經 merge,但 PulseAudio 的開發者們因爲對代碼的「純潔性」有爭議,一直沒有能合併入主線。好在有中國大陸的開發者 EHFive 提供的加入 LDAC 支援的 pulseaudio-modules-bt 模組,這樣一來雖然還是要動動爪子,但是事情就簡單多了。

倉庫中有編譯安裝方法。不過在 Fedora 下,直接用他人提供的 Copr 倉庫更簡單一些。透過添加 gombosg/pulseaudio-modules-bt-aptx 源,就可以省去編譯麻煩,安裝二進位包了。由於依賴 libfdk-aac.so.1,在安裝之前需要先添加 RPM Fusion Non-free 源解決依賴問題。

$ sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install fdk-aac

接下來可以啓用 COPR。由於 COPR 源中的包在依賴關係中設定好了棄用系統自帶的包,因此直接添加後更新就可以了。

$ sudo dnf copr enable gombosg/pulseaudio-modules-bt-aptx
$ sudo dnf makecache
$ sudo dnf upgrade
上次中介資料過期檢查:0:01:16 以前,時間點為 西元2019年01月04日 (週五) 11時46分08秒。
依賴關係解析完畢。
===============================================================================
 軟體包         架構   版本         軟體庫                                大小
===============================================================================
正在安裝依賴關係:
 libldacbt      x86_64 1.1-1.fc29   gombosg-pulseaudio-modules-bt-aptx    37 k
 pulseaudio-module-bluetooth-aptx
                x86_64 12.2-1.fc29  gombosg-pulseaudio-modules-bt-aptx    86 k
     替換  pulseaudio-module-bluetooth.x86_64 12.2-1.fc29
 libavdevice    x86_64 4.0.3-1.fc29 rpmfusion-free-updates                68 k
正在安裝弱的相依軟體包:
 ffmpeg         x86_64 4.0.3-1.fc29 rpmfusion-free-updates               1.3 M     
處理事項摘要
===============================================================================
安裝  4 軟體包
略過  1 軟體包

總下載大小:1.5 M
這樣可以嗎 [y/N]: y
下載軟體包:                                                                                                                                                  
(1/4): libldacbt-1.1-1.fc29.x86_64.rpm          33 kB/s |  37 kB     00:01                                                                                    
(2/4): libavdevice-4.0.3-1.fc29.x86_64.rpm     145 kB/s |  68 kB     00:00
(3/4): ffmpeg-4.0.3-1.fc29.x86_64.rpm          592 kB/s | 1.3 MB     00:02
(4/4): pulseaudio-module-bluetooth-aptx-12.2-1  26 kB/s |  86 kB     00:03
-------------------------------------------------------------------------------
總計                                           278 kB/s | 1.4 MB     00:05
警告:/var/cache/dnf/gombosg-pulseaudio-modules-bt-aptx-92ebbe0b3a058c06/packages/libldacbt-1.1-1.fc29.x86_64.rpm: 表頭 V3 RSA/SHA1 Signature, key ID ce4cc3ce:
 NOKEY                                                                                                                                                        
Copr repo for pulseaudio-modules-bt-aptx owned 1.1 kB/s | 1.0 kB     00:00                                                                                    
匯入 GPG 密鑰 0xCE4CC3CE:
使用者識別碼:"gombosg_pulseaudio-modules-bt-aptx (None) <gombosg#pulseaudio-modules-bt-aptx@copr.fedorahosted.org>"                                          
指紋                :28BA 6F4B 41EE 6D2A D1F4 C670 BAB0 252A CE4C C3CE                                                                                       
來自                :https://copr-be.cloud.fedoraproject.org/results/gombosg/pulseaudio-modules-bt-aptx/pubkey.gpg                                           
這樣可以嗎 [y/N]: y
密鑰匯入成功
執行處理事項檢查
處理事項檢查成功。
執行處理事項測試
處理事項測試成功。
執行處理事項
  準備        :                                                            1/1
  正在安裝    : libavdevice-4.0.3-1.fc29.x86_64                            1/5
  正在安裝    : ffmpeg-4.0.3-1.fc29.x86_64                                 2/5
  正在安裝    : libldacbt-1.1-1.fc29.x86_64                                3/5
  執行指令小稿: libldacbt-1.1-1.fc29.x86_64                                3/5
  執行指令小稿: pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64        4/5
  正在安裝    : pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64        4/5
  執行指令小稿: pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64        4/5
  丟棄        : pulseaudio-module-bluetooth-12.2-1.fc29.x86_64             5/5
  執行指令小稿: pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64        5/5
  執行指令小稿: pulseaudio-module-bluetooth-12.2-1.fc29.x86_64             5/5
  核驗        : libldacbt-1.1-1.fc29.x86_64                                1/5                                                                                
  核驗        : pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64        2/5
  核驗        : pulseaudio-module-bluetooth-12.2-1.fc29.x86_64             3/5                                                                                
  核驗        : ffmpeg-4.0.3-1.fc29.x86_64                                 4/5
  核驗        : libavdevice-4.0.3-1.fc29.x86_64                            5/5

已安裝:                                                                                                                                                       
  ffmpeg-4.0.3-1.fc29.x86_64                                                                                                                                  
  libldacbt-1.1-1.fc29.x86_64                                                                                                                                 
  pulseaudio-module-bluetooth-aptx-12.2-1.fc29.x86_64
  libavdevice-4.0.3-1.fc29.x86_64

完成!

如果依靠 DNF 不能更新的話,也可以嘗試指定包名安裝。

$ sudo dnf --disablerepo="*" --enablerepo=gombosg-pulseaudio-modules-bt-aptx reinstall pulseaudio-module-bluetooth-aptx # Just in case upgrade not working

隨後重啓一下 Pulse Audio。

$ pulseaudio -k
$ pulseaudio --start

這樣重新連線藍芽耳機之後,應該就能享受到 LDAC 的高音訊品質了。如果不行,就重啓一下作業系統。如果不相信自己的耳朵和腦放,也可以用 pactl 指令檢查連線協議。

$ pactl list sinks | grep -e bluez -e a2dp_codec

如果是 LDAC 連線的話,可以看到有結果輸出。如果非 LDAC 連線的話,嘗試用 SBC 或者 AAC 作爲關鍵字去 grep,就知道現在的音質有多差辣。

如果非 LDAC 連線的話,嘗試用 SBC 或者 AAC 作爲關鍵字

不知哪一天起,pulseaudio-modules-bt-aptx 由於構建時依賴 ffmpeg 違反了 Fedora 的規定,所以 Copr 已經不再更新。不過雖然作者已經放棄在 Fedora Copr 上更新,但另一方面往 RPM Fusion 上提交了更新。在添加 RPM Fusion Free 源後即可直接安裝。

$ sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install -y pulseaudio-module-bluetooth-freeworld --allowerasing
Copr 上的刪除公告

發表回覆

你的電郵地址並不會被公開。 必要欄位標記為 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.