如何调试 CentOS/AlmaLinux 断开相机后关机挂起

如何调试 CentOS/AlmaLinux 断开相机后关机挂起

我遇到了一个恼人的情况:

默认服务器带有 GUI 安装 AlmaLinux 8.5。(内核为 4.18.0-348.20.1.el8_5)

我正在使用 USB 摄像头(在我的例子中,我使用带有 e-con See3CAM_11CUG 的 Cheese)。

我用 Cheese 打开相机,让它向我显示相机中的图像(您不必录制或执行任何操作),然后拔掉相机的插头。

那时,我关闭了系统。在关机期间,系统将挂起,在 systemd 发出诸如“达到目标关机”、“达到目标最后一步”和“开始关机”之类的信息之后。一旦挂起,如果您将其保留足够长的时间,您会从内核收到一些内核“信息:任务阻塞超过 120 秒”消息。

在断开相机连接之前关闭 Cheese 仍然会使系统挂起。只有保持相机连接(或从不连接)才能避免挂起。

然后我安装了旧版本的 CentOS 8,发现 4.18.0-305.25.1.el8_4 及之前的 C8 内核都可以工作,而 C8 内核 4.18.0-348.2.1.el8_5 是第一个失败的。

有什么好主意如何调试或缓解这个问题吗?我们开发了一款基于 Linux 的设备,我们不能让它在关机时挂起,尤其是在我们花了很多时间试图让客户不要简单地关闭设备之后。

答案1

我设法在办公室找到了其他几台相机(均来自 Imaging Source),但它们都没有产生问题。

我还在 kernel.org 上的每个长期支持的内核上进行了构建和测试,没有一个产生问题。

目前我的假设是 e-con 相机(我们过去遇到过一些问题的相机)出了问题,并且 Alma 内核中的某个地方有一个错误的补丁,导致了这种影响。我正在向 Alma 团队发布错误报告,并通过构建 4.19 来解决整个问题。来自 kernel.org 供我使用。

相关内容