本帖最后由 中关村东路 于 2022-1-18 22:26 编辑
1 简介本文记录我Roon系统的组建思路,粘贴了一些代码示例,没有好看的设备,也不会拍漂亮的照片。可能需要读者对Linux系统,对Roon有基本的了解。如果打算只采用其中一部分,请理解之后再使用,简单照抄可能会有依赖关系。 大体的想法,是减少延迟,隔离资源给Roon的关键线程,维护设备/线程优先级列表,同时在不动态调整CPU频率的情况下尽可能降低功耗。
说起来本文的形成部分要起因于金波老师,因仰慕他传说中内置了树莓派的珍珠三界面,我按捺不住买来树莓派4b提前演练,并为此写了本文中的一系列代码,以便在拿到珍珠三的第一时间就用上自己的优化脚本。 结果现在珍珠三还没影呢,我已经把主力转向x86 Roon Bridge了。。。现在把优化过程和关键代码发出来,希望有更多人能用得到吧。
我的硬件主要包括Roon Server主机,x86 Roon Bridge,RPi4 Roon Bridge。此外有两套解码器耳放前级,两套音箱,三支大耳。 其中,Roon Server主机兼有本地存储和tidal网播,但我家网络可能很成问题,tidal经常卡,所以本地播放更多,为此选择了可以使用大内存缓存的zfs方案。 x86 Roon Bridge是主力系统,和Roon Server在同一个交换机下,通过USB输出到解码,之后连接耳放前级音箱大耳。 RPi4 Roon Bridge在同城异地,通过zerotier连接到Roon Server,偶尔使用。
下面这张效果图。之前用一个macbook pro连接解码器,专门用来pc-lowfi,桌上要多一个没必要的屏幕和键盘,Roon可以用笔记本/iPad控制,桌面简洁多了。
Figure 1: 现在桌面只有前级耳放音箱耳机。其他都乱七八糟的藏在桌子下面。
|