皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

正在进行 NTSYNC 驱动程序修复以获得适当的用户权限

正在进行 NTSYNC 驱动程序修复以获得适当的用户权限

Linux 6.14 的一大新功能是 NTSYNC 驱动程序的完成是为了更好地模拟 Microsoft Windows NT 同步原语,以便 Wine 和 Proton (Steam Play) 等软件在 Linux 上运行 Windows 游戏时可以提供更好的性能。但事实证明,到目前为止的疏忽意味着在实践中,它并不是开箱即用的。

权限问题导致 NTSYNC 驱动程序在默认情况下不向用户公开其 /dev/ntsync char 设备。反过来,开箱即用的 NTSYNC 不会立即可用,除非手动更改 NTSYNC 设备权限或使用 udev 脚本或类似脚本进行修改,以便非 root 用户可以读/写以与此软件设备交互。

发布了针对 udev 的 systemd 拉取请求,以添加 NTSYNC 设备组和权限。但这被看作对上游内核更好。有人对它是否具有世界可写性和可读性提出了质疑,这应该没问题,因为它不是真正的硬件设备,并且对于在设备上打开的每个文件描述符,只有该实例创建的对象才能与同一实例中的其他对象一起使用。

一个 NTSYNC 内核驱动程序补丁被发布到 Linux 内核邮件列表,默认将 /dev/ntsync 设备权限设置为 0666,因此它默认适用于非 root 进程。

对此,Greg Kroah-Hartman 立即评论道:

“你确定你需要/想要那个吗?如果是这样,为什么?现有的测试怎么从来没有发现过这个问题?

反过来,Elizabeth Figura 评论道:

“嗨,对不起,这当然是我的错。

我们确实需要 /dev/ntsync 可以从用户空间打开,这样它才有用。我不确定在这种情况下最“正确”的权限是什么(当我们不特别需要读取或写入时),但我认为我没有理由不直接设置为 666 或 444。

我最初认为正确的方法不是在内核文件上设置模式,而是通过 udev;我相信我使用的是 /dev/loop-control 或 /dev/fuse 的代码作为示例,它们都是这样做的。所以我(和其他测试过的人)只是为此手动设置了 udev 规则,最终目的是像其他人一样向 systemd 添加默认规则。我最近才意识到,做这样的事情是可能的,而且是先例。

我不知道解决这个问题的最佳方法是什么,但这肯定是最简单的。

反过来,Greg 现在可以接受已签署的补丁,对 NTSYNC 驱动程序进行此默认更改。因此,如果一切顺利,在未来几天内,我们将看到 NTSYNC 驱动程序在 Linux 6.14 Git 中进行了调整,默认情况下具有更开放的读/写权限,以便 Linux 游戏玩家可以开箱即用。立即使用 NTSYNC 驱动程序的另一个障碍是 Wine 合并请求仍在处理中,以使用这个新的内核驱动程序。

转自 NTSYNC Driver Fix Being Worked On For Proper User Permissions – Phoronix