Linux版 HQPlayer : 導入メモ
NAA(Network Audio Adapter) PCをLinuxで運用すること(過去記事)で音質の改善がみられたので、HQPlayer PC本体でもLinux版のHQPlayerを導入することにしました。
デスクトップ環境の選択
Linuxはさまざまなディストリビューションが存在します(Ubuntu、Fedora、Debian、CentOSなど)。特徴や使用目的、PCとの相性に応じて、インストールするディストリビューションを決める必要があります。
いくつか試してみた結果、軽くてコンパクトなLinux Mint Xfce(Ubuntu系)に決めました。Linuxパソコンで特に何か作業をする予定はなく、HQPlayerが動作すればいいだけなので、シンプルなデスクトップ環境を選ぶことにしました。
LinuxMintにもデスクトップ環境の違いで複数の選択肢がありますが、こちらの記事が参考になりました。
Linuxのインストール
「Linuxのインストールは誰でも簡単にできる!」とは言えませんが、ネットにはたくさんの情報がありますので、興味があれば未経験からでも自力で対応できると思います。基本的な事が理解できていれば、ChatGPTと対話しながら進めるのもおすすめです(これは使えます)。
未使用(または新規)のPCをLinux専用機として使う場合は比較的簡単ですが、既存のOS(Windowsなど)との共存を図るとなると、ややハードルが上がります。既存OSを壊すリスクがありますが、あくまでも自己責任です。
現状のHQPlayer PC(自作機)は
【MB】ASRock acA520M-ITX/ac
【CPU】 AMD Ryzen 5 5600G、
【GPU】 Palit GeForce RTX 3050(Dual Fan)
【ストレージ】M.2 SSD(500GB) + HDD(1TB)
という構成ですが、HDDは使っておらず熱源になっているだけなので撤去。128GBのSSDを増設してLinuxをインストール、Windows(M.2 SSD)とのデュアルブートにしました。
実際のインストール手順はこちらを参考にさせていただきました。
インストールは問題なくスムーズに完了しましたが、Linuxの起動プロセススクリーンに error が表示されます。
ACPI BIOS Error (bug): Could not resolve symbol [\_SB.PCI0.GP17.VGA.LCD._BCM.AFN7], AE_NOT_FOUND (20210730/psargs-330)
ACPI Error: Aborting method \_SB.PCI0.GP17.VGA.LCD._BCM due to previous error (AE_NOT_FOUND) (20210730/psparse-529)
ただ、OSは問題なく起動し、いまのところ不具合はなさそうなので、しばらくは様子見です。
low latency kernelに差し替え
NAA PCにインストールしたUbuntu Studio(low latency kernelを採用したパッケージ)を使うつもりでしたが、PCとの相性の問題があるのかインストールに失敗。
Linux Mintの初期状態では一般的なカーネル(generic Kernel)になっていますので、低遅延カーネル(low latency kernel)に差し替えることにしました。
低レイテンシー化の手順についてはこちらのサイトを参考にさせていただきました。
Nvidiaドライバーのインストール
現状のPCスペックでHQPlayerでDSDアップサンプリングをスムーズに再生するにはNvidiaのGPUが必須となります。
Ubuntu(Desktop 22.04.2 LTS)をインストールしてみましたが、Nvidiaドライバーのインストールで躓き採用を見送りました。
しかしながら、Linux Mintではあっさり成功!
HQPlayerでDSDリアルタイム変換再生を行うと、CPUとGPUの負荷が大きくなり、発熱が気になるところです。
CPUやケースFanはMB(ASROCK)のBIOS設定で細かくチューニングできるので問題ありません。
GPU Fanのコントロールはドライバーに付属するツール(NVIDIA Setting)で可能なのですが、機能的には不十分です。
「Enable GPU Fan Setting」をチェックすれば、FANが作動し回転数も変更できるのですが、PCを再起動するとデフォルト状態に戻ってしまいます。PCの起動の都度この手順が必要だとすると、面倒です。
GpuFanの動的コントロール
Windowsではグラボメーカー付属のツールでFANのコントロールができるのですが、Linux用のツールは用意されていません。一般的な用途でPCを使うなら問題はないと思ますが、GPUに負荷のかかるアプリ等を使用する場合はちょっと工夫が必要になります。
Linuxのシステムは柔軟なので、知識とスキルがあれば、思いのままにコントロールできるようです。GPU Fanの回転数を温度に応じて動的に変化させるシェルスクリプトをChatGPUにて提案してもらいました。
条件は
50度未満:回転数0%
50度以上70度未満:回転数30%
70度以上90度未満:回転数50%
#!/bin/bash
gpu_device=":0" # GPUのデバイス名を設定
while true; do
temperature=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader)
fan_speed=0 # デフォルトの回転数
if (( temperature < 50 )); then
fan_speed=0
elif (( temperature < 70 )); then
fan_speed=30
elif (( temperature < 90 )); then
fan_speed=50
fi
nvidia-settings -a [gpu:$gpu_device]/GPUFanControlState=1 -a [fan:$gpu_device]/GPUTargetFanSpeed=$fan_speed > /dev/null
sleep 5 # 温度を監視する間隔(秒)
done
シェルスクリプトはコマンドラインからViエディタ等で作成するのがLinuxの作法のようですが、GUIの一般的なテキストエディタでも問題ありません。「gpu_fan_control.sh」という名前(名前は任意)で保存したら実行可能なスクリプトにするためターミナルで下記のコマンドを実行します。
chmod +x gpu_fan_control.sh
スクリプトを実行するには、以下のコマンドを実行。
./gpu_fan_control.sh
上記のスクリプトを起動項目として登録しておけば、毎回コマンドを入力する必要はなく、システム起動時にFanのコントロールが自動で有効になります。
Psensor(Linux 用のハードウェア温度監視ツール)でチェック
スリーブモード復帰後の不具合
WindowsやMacでは、未使用時にスリーブさせるという運用で問題が生じることは少ないと思いますが、Linux Mintではスリーブ復帰後、HQPlayerのDSD変換が正常に再生されません(ブツブツ音切れが発生)。
HQPlayerのDSD変換はGPUコアを演算に利用する仕様ですが、モニタリ
ングしてみるとスリーブ復帰後にGPUが使われなくなるようです。
これはPCを再起動するまで改善しないようです。
Wake Up LANで起動させる
幸い、SSDにインストールしたLinux Mintの起動は速い(約10秒)ので、スリーブ運用はあきらめ、使用しない時はシャットダウンすることにしました。
ただ、HQPlayer PCは通常のリスニングポイントから少し離れた場所にあるため、電源ボタンを押すのに移動するのが面倒です(無精者です)。
そこで、Wake Up LanでPCを起動できるようにしました。
PC側でWake Up LANの設定ができていれば、お好みのデバイスからPCを起動することができます。
音質の印象など
音質についてはさほど期待をしていなかったのですが、ベールを1枚剥いだようなクリアーな音になりました。乏しい語彙で音質について語っても説得力がないので、WIndows環境には戻る気がなくなっとだけお伝えしておきます。
DSDアップサンプリングの必要がないという場合は、素のままのLinuxにHQlayerをインストールするだけで十分な高音質化が図れると思います(既存PC利用なら費用はかかりません)。
個人的にはDSDアップサンプリングされた音質が好みであることと、手持ちのUSB DACのスペック(DSD512対応)を活かす目的から、Linux環境のチューニングを行なってみました。
HQPlayer DesktopのライセンスはマルチOS対応になりますので、Windows、Mac、Linuxで使うことができます(同時使用は不可)。関心のある方はいろいろ試してみると楽しめると思います。
M2 Pro搭載のMac MiniにLinuxをインストールして使ってみたくなりました。小型で静か、かつ強力なHQPlayer専用マシンになりそうです(妄想)。