在 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#[email protected]>"                                          
指紋                :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 上的刪除公告

Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

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

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)