通过IPv6连接你的PLEX服务器

目前国内IPv6的推进速度已经相当不错,对于有家庭服务器需求的用户来说,获取一个不知道能用多久的公网IPv4可能已经远远超过了获得原生IPv6的难度。

长期受到无公网IP的我拿到IPv6后想到的第一件事就是试试能不能透过公网连接自家的PLEX库。

前期工作

首先是配置路由器给局域各网客户机分配地址,不同路由系统对IPv6的自动化配置程度有所差异,我的Ubnt ER-X就属于比较麻烦的那种,好在官方论坛已经有比较详尽的配置示范。

仅仅配置完路由器后还无法通过IPv6测试,打开WIN10的防火墙,添加一条入站规则放行ICMPv6后一切显示正常。

继续阅读“通过IPv6连接你的PLEX服务器”

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应该就能正常识别手柄了。