我如何知道我的 Linux 发行版是否支持 HDCP?

我如何知道我的 Linux 发行版是否支持 HDCP?

我尝试在我的 Arch Linux 上观看 Amazon Prime Video,但它将视频质量强制为 SD。

在亚马逊的支持下,我获悉这种情况发生在没有支持 HDCP 的情况下。

我很确定这不是硬件问题,因为 Prime Video 在 Windows 10 上运行良好。

在哪里可以找到 Linux 支持哪种类型的 HDCP 以及支持哪些硬件/驱动程序?

是否有可以帮助的浏览器插件?

答案1

看起来 Linux 上的 Chromium 目前不支持 HDCP:https://bugs.chromium.org/p/chromium/issues/detail?id=1064949

Linux 上的 Firefox 似乎也一样(因为 Widevine CDM):https://bugzilla.mozilla.org/show_bug.cgi?id=1625155

在 Firefox 问题中,有一条评论解释了如何制作 HDCP 测试工具https://googlechrome.github.io/samples/hdcp-detection/与 Firefox 配合使用。我们需要在 中设置media.eme.hdcp-policy-check.enabled为。trueabout:config

答案2

请注意,它对我来说还不起作用,但以下是我迄今为止的步骤,希望它能对某些人有所帮助。我尝试使用 X11 而不是 Wayland。另外:您尚未指定您的硬件,我的回答可能仅在您有英特尔显卡时才有用。

检查 HDCP 是否正常工作:https://googlechrome.github.io/samples/hdcp-detection/

内核模块mei_hdcp支持intel显卡和i915,参见:https://www.kernel.org/doc/html/latest/driver-api/mei/hdcp.html

mei_hdcp 驱动程序通过将 HDCP2.2 协商消息转换为 ME FW 命令有效负载(反之亦然),充当 HDCP 2.2 协议实施者(I915)和 ME FW 之间的转换层。

你可以使用 lspci 获取有关显卡的信息。就我而言:

lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Iris Plus Graphics 640 (rev 06)
lspci -s 00:02.0 -vv | grep -i module
    Kernel modules: i915

确保已加载 mei_hdcp 模块:

lsmod | grep hdcp
mei_hdcp               24576  0
mei                   135168  3 mei_hdcp,mei_me

验证我们使用的是 X11 而不是 Wayland:

echo $XDG_SESSION_TYPE
x11

使用 xrandr 设置所连接屏幕的 hdcp 属性并验证:

xrandr --verbose | grep -wi connected
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm

xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"

xrandr --verbose | grep -iE "hdcp|content protection|(DP|HDMI)-|desire"
DP-1 connected primary 2560x1440+0+0 (0x45) normal (normal left inverted right x axis y axis) 697mm x 392mm
    HDCP Content Type: HDCP Type1 
        supported: HDCP Type0, HDCP Type1
    Content Protection: Enabled 
        supported: Undesired, Desired, Enabled

要持久设置这些属性,一种方法是创建具有以下内容的文件:

cat /etc/X11/Xsession.d/96_enable_hdcp 
xrandr --output "DP-1" --set "Content Protection" "Enabled"
xrandr --output "DP-1" --set "HDCP Content Type" "HDCP Type1"

您可能还需要英特尔 HDCP 服务:https://github.com/intel/hdcp

Intel(R) 统一 HDCP(高带宽数字内容保护)是一种用户空间实现,用于防止跨数字显示接口复制数字音频和视频内容。它提供 Linux 用户空间实现,以启用外部数字显示接口 (HDMI/DP) 的 HDCP1.4 和 HDCP2.2 保护。

对于 ubuntu,intel-hdcp 作为一个包可用,我不知道您是否需要为 Arch Linux 手动构建它。

相关内容