※ [本文转录自 Headphone 看板 #1Xjmvw2- ]
作者: elguapo (HPHT Synthesized) 看板: Headphone
标题: [心得] 12 代 i9 安装 HQPlayer "Embedded" 教学
时间: Mon Dec 13 17:12:16 2021
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:
(编号 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 帐号,那么安装会失败;
2. 如果您是 Mac 用户,请一定要安装 SSH,用 Terminal.app ssh 连 Ubuntu Server
管理超便利。
当 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
看一下显示卡资讯有无出现,有出现就表示安装成功
这样核心部分就完成了。
接下来装 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 备份
下载到您的电脑,然后解开用文字编辑器修改两个地方(如图),请将 multicore
设为 1,rocm 设为 0(装的是 CUDA,用不到 ROCm)
存好之后压回 .zip,用 Restore 页面上传回去,这样就大功告成!
心得部分:
个人有 HQPlayer Embedded 也有 Desktop,照理说这两个声音应该是一样的,可能
是玄学作祟的关系,一直认为 Embedded 的声音才是我想要的:在同样的设定下,
低频部分 Desktop 比较清瘦,Embedded 比较健美,让 Denafrips Ares II 的低频
丰富了起来,用 HD820 聆听 Vanessa Fernandez 的 Here But I'm Gone 我只想把
789 音量旋钮旋到底!
后记:原作 Mr Laako 有再三提到,如果是用 Linux 版的 Embedded,务必采用
client-server 架构,用 NAA 播放音乐。理由是除了他自己客制的核心是 real-time
之外,其他的核心至多是 low latency,如果用这类核心接 USB 播放,可能会有音质
的问题。用 Linux 版的 HQPlayer Embedded 请留意这个眉角。