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
這樣就能更新最新的系統套件。
前面提到 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
裝完之後,多少會出現 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
這樣核心部分就完成了。
接下來裝 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(這是一行指令)
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 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 請留意這個眉角。