过气HTPC升级记

HP MICROSEVER GEN8是我钟爱的一款适合当NAS的微型服务器,但当初考虑到客厅三星电视的Tizen ≈ 无系统,NAS+HTPC的方案看起来会挺棒,于是就有了这个(现在看来这是一个坏主意)。

到目前为止(2年来)它的软硬件都经历了不少变化,罗列一下话大概是这样:

OS: SteamOS(Debian) → Ubuntu Desktop → Openmediavault(Debian) → Windows 10 LTSC

MB: Gigabyte B150M D3H → Gigabyte B250M D3H

CPU: Celeron G3900 → Pentium G4560 → Pentium G4600

DIMM: ADATA 2133mhz DDR4 4G*2

OS方面,各种NAS系统其实我试过许多,包括上面没有提及的Nas4Free、Freenas等等,但从整体来看我的OS选择基本上是从Linux到Windows的过渡,这里面其实没什么特别的理由,仅仅是Linux不支持HEVC硬解。

主板是淘汰旧电脑的时候顺手换上的。

CPU方面,G3900换成G4560的原因依然是为了HEVC的硬解(G3900仅支持到HEVC 8Bit),而事实上G4560也依然未能成为4K电影的解决方案,其原因就在于4K电影几乎标配HDR。为了迎合Intel的核显HDR支持方针,我又把CPU换成了搭载HD630的G4600。然而我只算到了显卡的要求,忽视了板载HDMI1.4和DP1.2均无法支持HDR这一点。

接口问题除了上独显或者换主板外基本无解,过高的升级成本让我不得不选择廉价好用的电视盒子来解决影音需求。所以这一整套4K HTPC方案可以说是彻头彻尾的失败品了。

RX 560

其实电视盒子除了需要忍受解不动H264 Hi10P这一点之外作为影音方案已经非常优秀,但轮番用过很多盒子(非高端)后还是有一些小毛小病,如界面卡顿(视频库一旦臃肿后)、莫名其妙地初始化等等。

加上H264 Hi10P这个问题对于常看动画的人来说实在是一个痛点,回归HTPC这个念头始终萦绕在我的心间。

绕着绕着,某天我便打开了闲鱼,于是又有了这个。

没选1030的原因主要是它阉割掉了NVENC,那样的话就无法利用Steam的流式传输投放到房间的电视上了,此外madVR对显卡3D性能有一定要求,1030存在后期继续长草换卡的风险。

而560在AVS论坛的那篇Guide: Building a 4K HTPC for madVR 有作为廉价选择明确被推荐(虽然那边推荐的是Baffin XT,而这张560是Polaris XL的)。

安装显卡前先检查下目前功耗状态,大概30W上下,然后开装。

不得不吐槽下这个支架的位置竟然刚好挡住供电口,原本一插就完事了现在还得连硬盘架一起卸下来。

安装结束,待机功耗50W上下,高了整整20W,稍微超过了点预期(这里也有电源转换率低的原因)。

开机装驱动重启,稍微设置一下lav跟madvr后就大功告成了。

Embuary中文字体乱码修复

Embuary是我比较喜欢的一个Kodi皮肤,在我看来是kodi众多皮肤中仅有的几个符合现代审美的皮肤之一。

界面基本承袭Emby UI的设计语言,搭配Kodi + Emby这样的融合方案可谓是天衣无缝,虽然当初站了Plex的队,不过自己修改一下配色的话跟Plex也是挺搭的。

此皮肤原生支持Arial字体用于显示中、日等文本,但有一部分文字会显示成口口,打开一些其他插件更是口得一塌糊涂。

继续阅读“Embuary中文字体乱码修复”

在Debian Stretch上通过Steam进行游戏串流

Steam在Linux下已经有不少游戏,但这可不是我用它的理由。

Steam的家庭流式传输可以使某台PC上的游戏画面以流媒体的形式传输到同网络下另一台装有Steam的设备上,并接受该设备反馈的按键信息。并且在画面损失和延迟控制方面平衡的相当好。

由于是它的本质是流媒体传输,因此对接受端的硬件要求非常低,只需一台能安装Steam且能流畅播放H264编码视频的机子而已(HTPC绝配)。

安装前首先确保登陆用户拥有以下权限

#usermod -a -G video,audio second_user

添加Steam的Non-free源到/etc/apt/sources.list

# SteamRepo Stretch

deb http://httpredir.debian.org/debian/ stretch main contrib non-free

对于64位的系统须添加i386的支持

dpkg --add-architecture i386

安装并使用aptitude进行包管理使它自动下载相关依赖

apt install aptitude

aptitude update

安装Steam

aptitude install steam

Steam在Stretch上不会像Jessie那样出现各种各样的问题,通常情况下安装完毕后就可以正常登陆。

串流时既可以使用接受设备的控制器(手柄、键盘等),也可直接使用源主机的设备(假如距离不远能收到信号的话)

由于Steam是32位的应用,无法使用64位的驱动,因此需要安装32位驱动才能开启硬件解码,否则在性能较低的设备上可能无法流畅运行。

apt install i965-va-driver:i386
apt install libva1:i386
apt install libva-x11-1:i386
apt install libva-glx1:i386

安装后重启Steam,进入设置>家用流式传输>高级客户端选项

确保硬件解码已经勾选,开启显示性能信息

再次通过流式传输打开游戏,左下方Debug区域Decoder一栏显示VAAPI hardware decoding就代表硬解生效了。

N卡和A卡的驱动及其他相关问题可从在通过以下连接查阅

https://wiki.debian.org/Steam

追记:

Steam的某次更新似乎修改了控制器的规则,在Debian上可能会遇到手柄无法被识别的情况,需自行添建立配置文件。

vim /etc/udev/rules.d/99-steam-controller-perms.rules
# This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation
SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666"

# This rule is necessary for gamepad emulation; make sure you replace 'pgriffais' with a group that the user that runs Steam belongs to
KERNEL=="uinput", MODE="0660", GROUP="pgriffais", OPTIONS+="static_node=uinput"

# DualShock 4 wired
SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"
# DualShock 4 wireless adapter
SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"
# DualShock 4 slim wired
SUBSYSTEM=="usb", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"

# Valve HID devices over USB hidraw
KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666"

# Valve HID devices over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0666"

# DualShock 4 over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"

# DualShock 4 Slim over bluetooth hidraw
KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"

保存并退出后,重新加载一遍udev

udevadm control --reload
udevadm trigger

再次重启Steam应该就能正常识别手柄了。

在Debian Stretch上安装OMV 4

原先兼职做NAS的HTPC已经接近服役一年,由于近期4K HDR的视频渐渐开始多了起来,Win10 的秋季更新也几乎同一时间提供了HDR的支援,这台基于Ubuntu的AllInOne一体机显然不再是优秀的HTPC方案,于是决定逐步将HTPC与NAS这两样需求分离开来。

OMV(OPENMEDIAVAULT)是基于Debian的NAS系统,对于原本就习惯使用Debian的人来说,与其说它是一个系统,不如说它是一套针对NAS应用的WEB管理组件而已,这跟我原先使用的Ubuntu+Webmin的组合并无本质上的不同。

Webmin本身是一套非常强大的WEB面板,在管理Linux系统本身无可挑剔,但在应对NAS应用时却显得有力无处使,大多时候我会忘掉这个面板而选择直接使用SSH进行操作。

尽管OMV可能仍然无法让你完全扔掉SSH,但初期配置做得足够完善的话后面基本可以只靠WebUI来调整一些小设置了。

目前OMV的最新稳定版为基于Debian 8(Jessie)的OMV3,Jessie的桌面环境对Kaby Lake存在兼容问题,而对应Stretch的OMV4却仍处于测试版,考虑到Debian本身脱离OMV也照样能正常运作,因此这里还是激进地选择了OMV4。

官方并不会为处于测试状态地OMV4提供完整的打包镜像,这就需先安装Debian后期再安装OMV了。

Stretch已经正式发布且对较新的设备支持良好,安装过程中没有出现任何问题。

完毕后进入SSH,获取root权限

sudo su

添加OMV4的源并更新软件库

echo "deb http://packages.openmediavault.org/public arrakis main" > /etc/apt/sources.list.d/openmediavault.list

apt update

提示缺少公钥

apt install openmediavault-keyring postfix

再更新一次

apt-get update

安装OMV

apt-get install openmediavault

最后的步骤

omv-initsystem

之后就可以打开浏览器键入OMV所在的主机IP访问管理页面了。

初始账户

username : admin

password : openmediavault

OMV安装完毕后会禁用掉非root用户的ssh权限,登陆WEBUI后记得先进入用户管理添加SSH用户组

安装额外的插件库

wget http://omv-extras.org/openmediavault-omvextrasorg_latest_all4.deb

dpkg -i openmediavault-omvextrasorg_latest_all4.deb

如安装失败,可使用apt-get -f install修复安装,最后再

apt update

完毕