[心得] 12 代 i9 安裝 HQPlayer "Embedded" 教學

耳機

770


***Ubuntu Server 22.04 Jammy Jellyfish 不用裝 ROCm!因為 HQPlayer Embedded
不支援了***

Intel 12 代 Alder Lake CPU 性能理想,可以不用 GPU 做 offload 就能用
ASDM7ECv2 調變到 DSD512。不過 Alder Lake 因為新增了 e-core 這個東西,使得
現有的 Linux 版 HQPlayer Embedded 設定都要做進一步調整,否則 e-core 會進來
亂事:x86 版 hqplayerd generic build 主程式會全部用 e-core 來跑,而 AMD
build 則是 一個聲道會交給 e-core:
https://imgur.com/qEWPFUd.jpg

(編號 16~23 那八個核心都是 e-core。)

如果要改善 Alder Lake 這個不正常現象,有兩個方式:
1. e-core 全部關閉:這個方式個人觀察 CPU 溫度會升高一些,請斟酌;
2. 改 Linux 核心到最新版並且跑 AMD build(您沒看錯,要在 Alder Lake 上跑
AMD build 才能獲得較佳的 CPU 使用率;這點是原作 Mr Laako 提到的,如果
是 Alder Lake 要跑現成的 HQPlayer OS img 檔也要用最新的 AMD build)。

由於過往 HQPlayer Embedded 幾乎沒人討論,絕大多數是下載已經做好的 HQPlayer
OS img 用 USB 開機來聽,可是這個 img 是不包含 CUDA 或 ROCm 的 GPU 支援的,
只能靠 CPU 原本的力量去運算,少了顯卡總是覺得少了點浪漫...

HQPlayer Embedded 是在 Ubuntu "Server" 上面發展的,如果您手癢想試著自己裝
hqpayerd 那麼選擇 Ubuntu Server 會讓您少死一些腦細胞,最近幾版的 hqplayerd
是源自於 Ubuntu Server 20.04 LTS "Focal Fossa",下載載點在這裏:
https://ubuntu.com/download/server
下載後檔案刷到 USB flash drive 就能開機了。

Ubuntu Server 安裝程式蠻簡單的,看圖說故事就好,僅在這邊提醒兩點:
1. 用戶名千萬不要用「hqplayer」!hqplayerd 在安裝的時候會新創一個 hqplayer
的用戶,如果已經先開了一個 hqplayer 帳號,那麼安裝會失敗;
https://imgur.com/XX8QZmq.jpg

2. 如果您是 Mac 用戶,請一定要安裝 SSH,用 Terminal.app ssh 連 Ubuntu Server
管理超便利。
https://imgur.com/oQVWeIU.jpg


當 Ubuntu Server 裝好之後,ssh 進主機,先下兩個指令

sudo apt update
sudo apt upgrade

這樣就能更新最新的系統套件。

---2022/01/02 新增 hwe 套件指令取代直接裝 5.13 核心---

sudo apt install linux-lowlatency-hwe-20.04-edge

------------------------------------------------------

最新版 22.04 Jammy Jellyfish 用 5.15 版核心,已解決很多 12 代問題,以下
一些程序機乎可以跳過

前面提到 Alder Lake 的 e-core 問題,需要 kernel 5.13 版才能正確的辨識 CPU
核心,指令:

sudo apt install linux-image-5.13.0-22-lowlatency

5.13.0-22-lowlatency 是目前(2021.12.13)Focal Fossa 最新的低延遲核心,如果
有更新的就用最新的即可;裝了核心,也要裝 kernel header,給後面裝顯示卡驅動
程式用:

sudo apt install linux-headers-5.13.0-22-lowlatency

裝好之後重新開機

sudo reboot

開完機重新 ssh 回主機,看一下核心版本是否為 5.13 lowlatency

uname -r

如果正確的話就可以繼續步驟:裝顯示卡驅動程式(由於 AMD ROCm 的支援仍是不足,
個人還是建議用 nVidia 的 CUDA)。
這裏並不需要裝整個 CUDA,那個是給開發者使用的,您只需要裝驅動程式就能用到
CUDA offload 功能。
nVidia 驅動程式有很多個版本,有一般的有無頭的(headless)有伺服器的,眼花
撩亂,建議就一般的即可,無頭的版本不會裝 X Window,而一些進階管理卻需要
X Window,所以即使裝了無頭,您還是要裝 X Window 和管理工具 nvidia-smi,個人
認為與其如此不如直接裝一般版一次給齊。
我手上的 nVidia GPU 是 RTX3070,目前驅動程式有三個版本 460 / 470 / 495 都能
支援,但我發現版本 460 才會正確顯示 GPU 的型號,所以我的機器是裝 460:

sudo apt install nvidia-driver-460

最新 525 適用 30 / 40 系列 GPU

以下程序 5.15 若用版核心可以省略

裝完之後,多少會出現 Possible missing firmware... 這個警告,簡單的方法是
直接到這裏下載(這是一行):

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
/tree/i915

範例指令

wget https://git.kernel.org/..省略../i915/tgl_huc_7.5.0.bin

把所有缺的 *bin 檔案都抓下來之後,用指令掛上 kernel

sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -u -k all
sudo reboot

開完機 ssh 登入主機,把 persistence mode 打開

sudo nvidia-smi -pm 1
nvidia-smi

看一下顯示卡資訊有無出現,有出現就表示安裝成功
https://imgur.com/rIMIXgn.jpg

這樣核心部分就完成了。

hqplayrd 已經不支援 ROCm 以下安裝 ROCm 程序可以省略

接下來裝 hqplayerd 和相關套件:由於 AMD 顯示卡的 ROCm 的套件沒有在 Focal
Fossa 列表之內,所以要用手動方式建立套件表(這是一行指令)

echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ ubuntu main'
| sudo tee /etc/apt/sources.list.d/rocm.list

然後把認證資料也建立起來

wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -

再更新一下套件資料庫

sudo apt update

然後安裝 ROCm 函式庫

sudo apt install rocm-libs

另外一個必要的函式庫是 libgmpris,目前版本是 2.2.1-8

wget https://www.sonarnerd.net/src/focal/libgmpris_2.2.1-8_amd64.deb
sudo dpkg -i libgmpris_2.2.1-8_amd64.deb

前置作業全部完成,接下來下載最新 v4.28 AMD build 的 hqplayerd(這是一行指令


最新版是 4.33.3

wget https://www.signalyst.eu/bins/hqplayerd/focal/

hqplayerd_4.28.0-100amd_amd64.deb

然後安裝

sudo dpkg -i hqplayerd_4.28.0-100amd_amd64.deb

這個指令跑完一定有錯誤訊息,缺一堆套件。別擔心,用這個指令修復即可

sudo apt install -f

這樣就安裝完成,如果不放心重新再下安裝指令也可以:

sudo dpkg -i hqplayerd_4.28.0-100amd_amd64.deb

就會安裝完成。

hqplayerd 已不支援 ROCm,不用再指定目錄

但這個步驟做完,hqplayerd 一定還是開不起來,因為 ROCm v4.5 的目錄 pointer
不正確,要手動修正

sudo sh -c "echo '/opt/rocm-4.5.0/lib' >> /etc/ld.so.conf.d/rocm.conf"
sudo ldconfig

到這邊算是安裝完成了,第一次啟動 hqplayerd 需要設定管理頁面的帳密

sudo hqplayerd -s hqplayer password

這個設定帳號是 hqplayer 密碼是 password,可依據個人喜好來改。

接下來啟動 hqplayerd

sudo systemctl enable hqplayerd.service
sudo systemctl start hqplayerd.service

然後在瀏覽器用 your.hqplayer.server.ip:8088 連 hqplayerd,看到管理介面就
99% 了!
最後 1%,您需要改 hqplayerd.xml,請到 Backup 選單把 Configuration 備份
https://imgur.com/rzbvMwi.jpg


下載到您的電腦,然後解開用文字編輯器修改兩個地方(如圖),請將 multicore
設為 1,rocm 設為 0(裝的是 CUDA,用不到 ROCm)
https://imgur.com/ZFFkkPP.jpg


存好之後壓回 .zip,用 Restore 頁面上傳回去,這樣就大功告成!
https://imgur.com/EHJTvbZ.jpg


心得部分:
個人有 HQPlayer Embedded 也有 Desktop,照理說這兩個聲音應該是一樣的,可能
是玄學作祟的關係,一直認為 Embedded 的聲音才是我想要的:在同樣的設定下,
低頻部分 Desktop 比較清瘦,Embedded 比較健美,讓 Denafrips Ares II 的低頻
豐富了起來,用 HD820 聆聽 Vanessa Fernandez 的 Here But I'm Gone 我只想把
789 音量旋鈕旋到底!
https://imgur.com/utKuSZh.jpg


後記:原作 Mr Laako 有再三提到,如果是用 Linux 版的 Embedded,務必採用
client-server 架構,用 NAA 播放音樂。理由是除了他自己客製的核心是 real-time
之外,其他的核心至多是 low latency,如果用這類核心接 USB 播放,可能會有音質
的問題。用 Linux 版的 HQPlayer Embedded 請留意這個眉角。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.96.55 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Headphone/M.1639386746.A.0BE.html
dzwei1樓感謝分享~ 其實之前有研究過linux的pro audio 12/13 17:19
dzwei2樓ArchLinux有針對這個做一篇wiki: 12/13 17:19
dzwei4樓第一步就是要換成rt版的kernel 後來沒時間玩就擱置了XD 12/13 17:20
我記得 Fedora 好像有 real-time kernel,而且 Fedora server 的網頁管理介面 美觀好用,hqplayerd 在 Fedora 上也有支援 CUDA GPU,哪天無聊來裝看看 嘿
b82102085樓推 謝謝分享 12/13 18:17
NyanmeTAItsu6樓推分享、雖然我沒有12代(掩面 12/13 18:21
chenszhanx7樓我覺得用E-core應該沒問題吧,本來就是拿來矩陣運算的 12/13 18:58
您的問題很好! 實測是 x86 generic build 在沒有關 e-core、用 HQPlayer 原作 Mr Jussi Laako 客製的 5.10 low latency kernel,會全部分配給 8 個 e-core 來跑,不會給 p-core,這個等於給 Alder Lake 封上了封印。 AMD build 可以在舊版的核心跑,可是有一個聲道的主 CPU 會給 e-core,雖說產出 的東西一樣,但經詢問原作 Mr Laako,他說還是要改為新版核心為宜,他太忙了沒 時間去維護他客製的 5.10 版核心 XDD
whydan8樓 12/13 19:48
znew12199樓行動力真強,這麼快就把PC組起來,少了顯卡,可以少很 12/13 22:40
znew121910樓多干擾與雜訊也挺好 12/13 22:40
確實是,而且太新的硬體 Linux 支援也不是很完整(有點在賭),比方說我用的 主機板是 MSI Pro Z690-A 是較低價位的板子,結果 onboard ethernet 用的 Intel I225-V,現行穩定版的 Linux kernel 都不認得 XDD 話說回來,不管是 Roon + Roon Ready (or Roon Bridge) 還是 HQPlayer + NAA, 這樣的 client-server 結構是為了把具運算力的部分切割(擺越遠越好),來消除 干擾和雜訊,而 endpoint 用簡單的單板電腦做簡單的轉換來得到更好的音質。
jhjhs3350411樓low latency跟real-time有點意思~只差沒自改扣編譯?XD 12/14 23:05
說到這個,原作 Mr Laako 有把他客製的 real-time 核心原始碼釋出,確實是可以在 自己的機器 build:
更多心得
[心得] 老虎魚入門線電+cardas dc+bha改頭心得
[心得] Ultrasone Pro900b 低音姬
[心得] TRN V90s 木耳開箱
[心得] Soundpeat T2
[心得] 岡龍實驗室 PEDOT:PSS PH1000 貼紙
[心得] 40%含銀焊錫 魔法TPR 訊號線
[心得] Sony wf-1000xm4 退貨心得
[心得] DROP + THX PANDA