先说结论
QQ Music 官方 Linux DEB 包可以正常启动。崩溃原因不是显卡硬件故障,而是 QQ Music 内置的旧版 Electron/Chromium 沙箱策略与当前系统 glibc 不兼容。
通过 QQ Music 的用户级桌面启动项加入以下参数后,应用已经能够正常启动并保持运行:
|
|
系统环境
| 项目 | 值 |
|---|---|
| 架构 | x86-64 |
| 内核 | 7.0.0-14-generic |
| glibc | 2.43-2ubuntu2 |
| QQ Music 包 | 1.1.8,amd64 |
| 内置 Electron | 8.2.1 |
| 内置 Chromium | Chrome 80.0.3987.163 |
| 图形会话 | Xwayland,显示 :0 |
QQ Music 的系统桌面文件原路径为:
|
|
崩溃证据
系统 coredump 报告显示:
|
|
SIGSYS 表示进程执行了被 seccomp 过滤器拒绝的系统调用。这里的调用是 clone3,它被 glibc 用于创建线程。QQ Music 使用的 Electron 8.2.1 搭载了较旧的 Chromium seccomp 白名单,没有允许新系统环境下的 clone3,因此 GPU、renderer 等子进程在创建线程时被系统直接终止。
启动命令中原本已经存在 --use-gl=disabled,但它只关闭了 OpenGL 路径,不能解决 renderer 进程的 seccomp 崩溃。
修复方案
没有修改官方安装目录或 QQ Music 二进制文件,而是在用户目录创建了覆盖系统桌面项:
|
|
关键配置如下:
|
|
用户级桌面文件优先于 /usr/share/applications/qqmusic.desktop,因此从应用菜单启动时会自动使用修复参数。桌面数据库也已经更新:
|
|
验证结果
验证过程包括:
- 使用独立临时配置启动 QQ Music,并加入
--disable-seccomp-filter-sandbox。 - 运行期间没有产生新的
SIGSYScoredump。 - 通过实际桌面项
gtk-launch qqmusic启动成功。 - 主进程、GPU 进程和 renderer 进程均继承了
--disable-seccomp-filter-sandbox并持续运行。 - 当前安装包版本仍为官方
1.1.8,系统包文件未被改动。
安全说明
该参数会关闭 QQ Music Chromium 子进程的 seccomp filter sandbox,属于针对旧版 Electron 的兼容性绕过方案。QQ Music 仍运行在当前用户权限下,不建议用 sudo 启动它。
如果腾讯发布了更新版 Electron/Chromium 并修复 clone3 沙箱白名单问题,应移除该用户级覆盖项以恢复默认沙箱:
|
|