一项Linux补丁正在开发中,旨在解决在运行Ryzen CPU和Linux的PC上使用Firewire设备时出现的崩溃问题。即将发布的Linux 6.7版本中将包含一个修复方案,并将被回溯应用到之前的Linux内核版本中。
虽然在两个硬件之间几乎隔了十年,将它们组合在一起的情况不多,但这样的用户确实存在,并报告了异常高的崩溃率。
Firewire,又称IEEE 1394,是上世纪80年代设计的一种数据接口,最常见于苹果Mac电脑和数字摄像机上。十年后USB问世,最终它在音视频市场以外应用得越来越少,Thunderbolt在2011年实际上取代了它。
不涉及太多技术细节,使用Firewire和Ryzen的用户经常会发现,如果访问CPU上的“isochronous cycle timer等时循环计时器”寄存器,他们的PC会崩溃。只要用户插入Firewire设备或使用需要不断访问该寄存器的软件,就会访问到该寄存器。
尽管如此,Linux开发者Takashi Sakamoto承诺会继续支持Linux上的Firewire,直到2029年,他最新的补丁解决了影响AMD Ryzen CPU的问题。
为了修复这个漏洞,Sakamoto的补丁禁止访问该寄存器,以防止崩溃和需要时间感知的软件的使用。在这个意义上,它并不是一个完全的修复,而更像是一个权宜之计。这个补丁将在发布的Linux 6.7中提供,并将被应用到仍在维护和支持的旧内核中。
尽管Firewire-Ryzen PC不再出现崩溃问题,但根据Sakamoto的说法,该补丁是一把双刃剑,"同时带来了明显的问题,因为需要时间感知的应用程序需要它"。
使用这种硬件组合的Linux用户可能不得不转向Intel,甚至降级到AMD的Ryzen之前的CPU,因为在Intel上没有出现在Ryzen PC上看到的这个问题。