logoPonyTechLab

马兆鑫的AI与深度学习博客

NoMachine 远程连接 Ubuntu 时 GNOME Settings 一直转圈的解决方案

在使用 NoMachine 远程连接 Ubuntu 的过程中,我遇到了一个奇怪的问题:
系统的 “Settings(设置)” 无法打开,一直停留在转圈界面。
重连、重启都无效,但安装 PipeWire 后却立刻恢复正常。

这篇文章记录一下问题原因、底层原理和可复现的完整解决方法。


🚩 1. 问题现象

  • 使用 NoMachine 远程登录 Ubuntu(GNOME 桌面)

  • 打开 Settings(设置) 时界面一直 loading,不显示内容

  • 系统其他功能似乎正常

  • 本地登录时 Settings 可以正常打开

  • 安装 PipeWire 后问题立即消失

这个问题很隐蔽,看似和远程桌面无关,但实际上关联极大。


🎯 2. 问题原因总结(一句话)

缺失或未正常工作的 PipeWire 多媒体服务会导致 GNOME 设置无法初始化音频/视频后端,而 NoMachine 会创建虚拟音视频设备,使问题被触发。


🔍 3. 原理解析:NoMachine + GNOME + PipeWire 之间发生了什么?

要理解原理,需要知道 GNOME、PipeWire 与 NoMachine 的依赖关系。


🧩 3.1 GNOME 的设置面板依赖 PipeWire

GNOME Settings 在启动时会初始化如下组件:

  • 音频管理(输入/输出)

  • 蓝牙音频

  • 视频设备(摄像头)

  • 屏幕共享能力

在新版本的 Ubuntu(22.04+)中,这些工作几乎都依赖 PipeWire 完成:

功能 后端
音频管理 pipewire + pipewire-pulse
低延迟音频(兼容 JACK) pipewire-jack
摄像头 pipewire
屏幕录制 / 屏幕共享 pipewire + xdg-desktop-portal

如果 PipeWire 缺失、不完整、或未运行,GNOME 设置界面会在初始化多媒体后端时卡死,从而出现“无限转圈”的现象。


🧩 3.2 NoMachine 会创建虚拟音视频设备

NoMachine 的特点:

  • 创建虚拟音频输出设备(远程音频)

  • 创建虚拟麦克风

  • 接管屏幕采集管线

  • 在 Wayland 下依赖 PipeWire 进行屏幕采集

当你通过 NoMachine 登录时,这些虚拟设备会被 GNOME 设置读取。

如果系统的音视频后端(PipeWire)不完整,它就会卡在初始化阶段。

因此:

NoMachine 并不是故障根源,它只是触发了系统未配置好的 PipeWire 问题。

本地登录之所以不触发,是因为本地不需要初始化这些虚拟设备。


🧩 3.3 为什么 PulseAudio 不够?

一些旧系统仍使用 PulseAudio,但:

  • PulseAudio 不支持现代 GNOME 的完整功能

  • 不支持 Wayland 下的屏幕捕获

  • 不支持 NoMachine 的某些低延迟场景

所以 GNOME 优先尝试使用 PipeWire,如果 PipeWire 的组件缺失,就会产生异常。


🛠️ 4. 解决方案(推荐方式)

只需要完整安装 PipeWire 及相关后台管理器即可解决:

✔ 4.1 安装 PipeWire 所有必要组件

sudo apt install pipewire pipewire-pulse pipewire-audio-client-libraries wireplumber

其中:

  • pipewire:核心服务

  • pipewire-pulse:兼容 PulseAudio

  • pipewire-audio-client-libraries:音频库

  • wireplumber:PipeWire 的会话管理器(非常重要)


✔ 4.2 重启用户会话(或重启系统)

systemctl --user restart pipewire pipewire-pulse wireplumber

或者直接:

reboot

重启后,NoMachine 登录即可正常打开 Settings。


📌 5. 附:检查 PipeWire 是否正常运行

systemctl --user status pipewire
systemctl --user status wireplumber

查看 PipeWire 设备:

pw-cli ls Node

🧪 6. 附:如何确认 Settings 卡死原因是管线初始化?

运行:

gnome-control-center

如果终端输出:

Failed to initialize settings backend: Failed to connect PipeWire

No PulseAudio daemon running

说明问题就是音频后端未正确初始化。


🟢 7. 总结:本质是 PipeWire 不完整导致的系统功能缺失

你的 Ubuntu 在以下情况下很容易出现 PipeWire 不完整:

  • 系统升级残留 PulseAudio 配置

  • 手动卸载过 PulseAudio

  • 使用第三方远程桌面(NoMachine、RustDesk、x2go 等)

  • GNOME 迁移到 Wayland 时依赖不一致

解决方案就是:

安装并启用完整的 PipeWire 环境,让 GNOME 的音视频依赖链恢复正常。


📝 8. 完整结论(可直接引用)

在使用 NoMachine 远程连接 Ubuntu 时,如果 GNOME Settings 打不开且一直转圈,通常是由于系统的 PipeWire 多媒体服务未完整或未启动。NoMachine 在会话中创建虚拟音频/视频设备,触发 GNOME 对 PipeWire 的依赖初始化,而缺失的 PipeWire 组件会导致设置面板卡死。安装包含 pipewire-pulsewireplumber 在内的完整 PipeWire 套件即可彻底解决该问题。


avatar

Pony

深度学习爱好者和技术研究者。专注于人工智能、边缘计算及计算机视觉领域的开发与应用。

现居地:陕西省-西安市

Email:zhaoxin.ma@chd.edu.cn

Categories