news 2026/10/14 3:18:22

Ubuntu 22.04 + VMware 17.6.0 使用 USB 摄像头后宿主机卡死、网络异常、无法关机的解决方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 22.04 + VMware 17.6.0 使用 USB 摄像头后宿主机卡死、网络异常、无法关机的解决方案

说明:本文根据本人实际遇到的问题、排查过程和最终实测结果整理,文章结构与内容由 ChatGPT 协助总结。

本文不是对单一论坛帖子的简单转载,而是结合实际环境、社区案例以及最终修复过程形成的一份完整排障记录。


1. 问题背景

我的宿主机环境如下:

Host OS : Ubuntu 22.04 LTS Kernel : 6.8.0-138-generic VMware : VMware Workstation 17.6.0 build-24238078 Guest OS : Windows 10 外接设备 : USB 摄像头

平时需要将 USB 摄像头通过 VMware 的 USB Passthrough 功能连接到 Windows 10 虚拟机中使用。

在使用一段时间后,我发现只要将摄像头从 Windows 虚拟机重新切回 Ubuntu,或者直接关闭 Windows 10 虚拟机,宿主机就有概率出现严重卡死。

主要表现包括:

应用关闭后无法重新打开 sudo 命令卡死 Ubuntu 有线网络异常 虚拟机网络同时异常 系统无法正常关机或重启 出现 rcu_preempt / hung task 相关信息

经过排查后,最终问题指向:

VMware Workstation 17.6.0 的 Linux Host Modules 与 Linux 6.8 内核之间存在兼容性问题。

其中最主要涉及:

vmmon vmnet

两个 VMware 内核模块。

USB 摄像头的切换更像是这个问题的一个触发条件,而不一定是摄像头本身存在故障。


2. 故障现象

问题通常发生在以下场景:

Ubuntu 启动 VMware ↓ 启动 Windows 10 ↓ 将 USB 摄像头连接给 Windows ↓ 正常使用一段时间 ↓ 将摄像头 Disconnect 回 Ubuntu 或者关闭 Windows 10 ↓ Ubuntu 宿主机开始异常

2.1 应用程序无法重新启动

部分已经启动的软件暂时还能继续运行。

但是一旦关闭,再重新启动时就可能没有任何反应。

例如:

Chrome VS Code 终端 文件管理器

2.2 sudo 命令卡死

严重时执行:

sudo true

或者任何:

sudo xxx

都会让当前 Shell 直接阻塞。

这是一个比较重要的判断依据。

如果只是普通桌面程序故障,一般不会导致sudo也一起卡住。


2.3 网络异常

VMware 出现问题后,Ubuntu 宿主机的网络也可能逐渐失效。

虚拟机内部网络同样可能受到影响。

例如执行:

ip addr ip route

可能发现网络接口或者路由状态异常。


2.4 无法正常关机或重启

点击:

关机 重启

以后,Ubuntu 可能长时间停留在关闭过程中。

严重时甚至几个小时都无法完成,只能强制断电。

部分情况下还能看到:

rcu_preempt RCU stall hung task blocked task

等内核日志。

这也是为什么后来排查重点从普通应用逐渐转向 Linux Kernel 和 VMware 内核模块。


3. 网上找到了高度相似的案例

在排查过程中,发现多个社区讨论与自己的情况高度一致。

3.1 Ask Ubuntu 上的类似案例

Ask Ubuntu 帖子的评论区有用户描述:

  • VMware 从 17.5 升级到 17.6

  • Host 使用 Ubuntu

  • 启动虚拟机后宿主机网络丢失

  • 虚拟机网络也同时失效

  • sudo命令直接卡住

  • reboot 无法完成

  • 最后出现rcu_preempt

这些症状和我的实际情况非常接近。

参考:

Ask Ubuntu:VMware Workstation Running Ubuntu Freezes Frequently


3.2 Broadcom VMware 官方社区的讨论

Broadcom VMware Community 中也有针对:

VMware Workstation 17.6 Ubuntu 22.04 Linux Kernel 6.8

的类似反馈。

其中用户明确描述:

启动 VM 后系统逐渐不稳定 网络停止工作 sudo 卡死 Power Off / Reboot 无法完成 dmesg 出现 rcu_preempt VM 相关进程 blocked for more than 120 seconds

社区回复中也明确提到,这个问题开始出现在 Ubuntu 22.04 使用 Linux 6.8 内核以后。

参考:

Broadcom Community:Problem with 17.6 Update on Ubuntu 22.04

这个帖子对最终判断问题非常有帮助,因为它说明:

并不是只有 USB 摄像头场景才会触发,VMware 17.6 + Linux 6.8 本身就存在导致宿主机失去响应的案例。

因此摄像头更可能只是提高了问题触发概率。


4. 最终定位:VMware 17.6.0 + Linux 6.8

执行:

uname -r vmware --version

我的实际输出为:

6.8.0-138-generic VMware Workstation 17.6.0 build-24238078

这正好命中了社区中大量讨论的组合:

Linux Kernel 6.8 + VMware Workstation 17.6.0

VMware 在 Linux 宿主机上需要加载两个非常重要的内核模块:

vmmon vmnet

其中:

vmmon

负责 VMware 的核心虚拟机监控和虚拟化相关功能。

vmnet

负责 VMware 的虚拟网络功能。

如果这两个模块与当前 Linux Kernel 存在兼容问题,那么最终受到影响的可能不仅仅是 VMware 本身,还可能包括:

网络 内核任务调度 systemd sudo 系统关机与重启

这可以解释为什么最终表现出来的是整个 Ubuntu 宿主机逐渐失去响应。


5. 为什么 USB 摄像头可能会触发问题

Linux 下 USB 摄像头一般使用:

uvcvideo

驱动。

设备连接给 Windows 虚拟机时,大致经历:

Ubuntu / uvcvideo ↓ VMware USB Passthrough ↓ Windows 10

断开后又需要经历:

Windows ↓ VMware 释放 USB ↓ Linux USB Core ↓ uvcvideo 重新绑定

摄像头相比普通 U 盘,会持续进行大量 USB 视频数据传输。

其中涉及:

USB endpoint URB 设备解绑 设备重新绑定 USB reset

等操作。

因此我推测:

摄像头在宿主机和虚拟机之间频繁切换,可能会更容易触发 VMware 17.6.0 在 Linux 6.8 下原本就存在的内核模块问题。

这一点属于结合实际故障现象得出的判断,并不是说所有 VMware 17.6.0 + Linux 6.8 用户都必须使用摄像头才会遇到问题。

Broadcom 社区中的案例实际上并没有依赖摄像头,同样出现了网络失效、sudo 卡死以及rcu_preempt。


6. 最终使用的解决方案

最终使用的是社区维护的:

bytium/vm-host-modules

项目。

该仓库主要用于为较新的 Linux Kernel 提供修补后的 VMware:

vmmon vmnet

模块。

仓库 README 明确说明,其目标就是解决 VMware Workstation Host Modules 与新版 Linux Kernel 的兼容性问题,并列出了 VMware Workstation 17.6.0 等版本。

项目地址:

GitHub:bytium/vm-host-modules

项目作者另外也提供了一篇说明文档:

Bytium:VMware Workstation Host Module Patch for Debian and Ubuntu

该说明中给出的基本流程同样是:

sudo apt install build-essential linux-headers-$(uname -r) git git clone ... cd vm-host-modules make sudo make install

安装脚本会将编译出的vmmon.ko和vmnet.ko放入当前 Kernel 对应的 modules 目录。


7. 安装编译环境

首先:

sudo apt update sudo apt install build-essential linux-headers-$(uname -r) git

我的环境中:

build-essential git linux-headers-6.8.0-138-generic

都已经正确安装。

检查当前 Kernel:

uname -r

输出:

6.8.0-138-generic

所以必须确保:

linux-headers-6.8.0-138-generic

也已经安装。


8. 下载 Patch

执行:

cd ~ git clone https://github.com/bytium/vm-host-modules.git cd vm-host-modules

这里需要根据仓库当前实际提供的分支选择版本。

我当时执行:

git checkout 17.6

成功切换到:

Branch '17.6' set up to track remote branch '17.6' from 'origin'. Switched to a new branch '17.6'

随后检查:

git branch git log -1 --oneline

结果:

* 17.6 master d901654 Updated for vmware workstation 17.6.0

因此确认该分支正好对应:

VMware Workstation 17.6.0

注意:GitHub README 当前显示的分支名称可能有所调整,因此不要盲目照搬旧文章中的分支名,建议先执行:

git branch -a

查看自己克隆下来的仓库当前有哪些分支。


9. 编译 vmmon 和 vmnet

执行:

make

编译过程中出现了一些 warning,例如:

warning: the compiler differs from the one used to build the kernel MAX redefined objtool warning Skipping BTF generation

但是没有出现导致构建中断的 Error。

最终成功生成:

vmmon.ko vmnet.ko

可以检查:

find . \( -name "vmmon.ko" -o -name "vmnet.ko" \) -print

我的实际结果:

./vmnet-only/vmnet.ko ./vmmon-only/vmmon.ko

说明编译成功。


10. 安装修补后的 VMware Kernel Modules

执行:

sudo make install

然后刷新内核模块依赖:

sudo depmod -a

11. 验证安装是否成功

执行:

modinfo vmmon | grep -E "filename|vermagic" modinfo vmnet | grep -E "filename|vermagic"

我的实际结果:

filename: /lib/modules/6.8.0-138-generic/misc/vmmon.ko vermagic: 6.8.0-138-generic SMP preempt mod_unload modversions

以及:

filename: /lib/modules/6.8.0-138-generic/misc/vmnet.ko vermagic: 6.8.0-138-generic SMP preempt mod_unload modversions

这里主要确认两个地方:

/lib/modules/6.8.0-138-generic/misc/

以及:

vermagic: 6.8.0-138-generic

说明:

新编译的 vmmon / vmnet 已经正确安装到当前 Linux 6.8.0-138 Kernel,并且 vermagic 与当前内核匹配。

然后重启:

sudo reboot

12. 修复后的验证

建议不要一开始就连接摄像头,而是分两轮测试。

第一轮:VMware 基础测试

Ubuntu ↓ 启动 VMware ↓ 启动 Windows 10 ↓ 正常使用 ↓ 关闭 Windows

期间测试:

sudo true ip addr ip route

确认:

sudo 正常 宿主机网络正常 虚拟机网络正常 应用可以继续打开 VM 可以正常关闭 Ubuntu 可以正常关机 / 重启

如果这一步已经恢复正常,说明 VMware Kernel Module 的问题基本解决。


第二轮:USB 摄像头测试

继续:

启动 Windows 10 ↓ USB 摄像头连接到虚拟机 ↓ 正常使用一段时间 ↓ 关闭摄像头相关程序 ↓ Disconnect USB 摄像头回 Ubuntu

在重新编译安装vmmon和vmnet后,目前没有再次出现之前的宿主机严重冻结现象。

因此至少在我的机器上,这个方案有效。


13. 为什么修补 vmmon / vmnet 可以解决问题

这次比较容易产生误导的一点在于:

故障经常在 USB 摄像头切换之后出现。

因此第一反应通常会认为是:

uvcvideo xhci USB controller USB Passthrough

的问题。

但是更值得关注的是:

网络同时失效 sudo 卡死 reboot 卡死 rcu_preempt

这几个特征。

它们明显已经超出了普通摄像头驱动故障的范围。

结合 Broadcom Community 中完全不依赖摄像头也能复现的案例,更合理的解释是:

VMware 17.6.0 ↓ Linux 6.8 Kernel ↓ vmmon / vmnet 兼容问题 ↓ Kernel task / RCU 出现阻塞 ↓ VMware 与网络开始异常 ↓ sudo / systemd 等操作受到影响 ↓ 最终 reboot / shutdown 无法正常完成

USB 摄像头更像是其中一个触发点。


14. 完整操作命令

环境类似:

Ubuntu 22.04 Linux 6.8 VMware Workstation 17.6.0

可以参考:

sudo apt update sudo apt install \ build-essential \ linux-headers-$(uname -r) \ git cd ~ git clone https://github.com/bytium/vm-host-modules.git cd vm-host-modules git branch -a git checkout 17.6 git branch git log -1 --oneline make find . \( -name "vmmon.ko" -o -name "vmnet.ko" \) -print sudo make install sudo depmod -a modinfo vmmon | grep -E "filename|vermagic" modinfo vmnet | grep -E "filename|vermagic" sudo reboot

15. 注意事项

15.1 VMware 版本必须对应

不要把:

17.5.x 17.6.x 其他版本

的模块混用。

先确认:

vmware --version

15.2 Kernel Headers 必须匹配

检查:

uname -r

如果输出:

6.8.0-138-generic

那么必须安装:

linux-headers-6.8.0-138-generic

15.3 不建议直接下载别人编译好的 .ko

最好在自己的系统上编译。

因为内核模块至少涉及:

Kernel Version Kernel Configuration VMware Version

等环境差异。


15.4 Kernel 升级后可能要重新编译

以后如果 Ubuntu Kernel 从:

6.8.0-138-generic

升级到了新的版本,可以重新检查:

uname -r modinfo vmmon | grep vermagic modinfo vmnet | grep vermagic

如果不一致,就应该重新编译对应 Kernel 的模块。


16. 参考资料

本次排查主要参考了以下几个公开讨论和项目。

  1. Ask Ubuntu
    VMware Workstation Running Ubuntu Freezes Frequently
    查看 Ask Ubuntu 原帖
    其中用户描述的网络丢失、sudo卡死、reboot hang、rcu_preempt等现象与本次问题高度相似。

  2. Broadcom VMware Community
    Problem with 17.6 Update on Ubuntu 22.04
    查看 Broadcom 社区讨论
    该讨论中明确存在 Ubuntu 22.04 + Linux 6.8 + VMware 17.6 出现宿主机网络、sudo、shutdown 和 RCU 异常的问题。

  3. GitHub
    bytium/vm-host-modules
    查看 GitHub 项目
    本文实际使用的vmmon/vmnetPatch 来源。

  4. Bytium
    VMware Workstation Host Module Patch for Debian and Ubuntu
    查看 Patch 安装说明
    包含编译安装 VMware Host Modules 的说明。


总结

这次问题最值得关注的几个关键词是:

Ubuntu 22.04 Linux 6.8 VMware Workstation 17.6.0 宿主机网络异常 sudo 卡死 shutdown / reboot 卡死 rcu_preempt

虽然故障在我的机器上经常由 USB 摄像头 Passthrough 后触发,但结合其他用户的复现情况来看:

核心问题更可能是 VMware Workstation 17.6.0 Host Modules 与 Linux 6.8 Kernel 的兼容性,而 USB 摄像头只是特定场景下的触发条件。

最终通过重新编译并安装修补后的:

vmmon vmnet

解决问题。

截至目前,修复后系统运行正常。


文章说明:

本文中的问题现象、系统环境、终端输出、修复过程和最终验证均来自本人实际排查过程;公开资料部分参考 Ask Ubuntu、Broadcom VMware Community、GitHub 和 Bytium。文章由本人提供实际排查信息,并由OpenAI ChatGPT协助整理、归纳与成文。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/14 3:18:05

双质量二自由度悬架Simulink仿真建模与时域频域分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/14 3:18:05

STM32+ESP8266+DS1302桌面时钟天气屏:从跑通到长期稳定的避坑指南

简介:这是一套面向嵌入式初学者与电子爱好者的STM32综合实践项目源码,围绕实时时间与天气信息的串口屏显示展开,并附带桌面屏幕与倒计时报警功能。项目以STM32微控制器为核心,配合DS1302实时时钟芯片获取准确时间,再通…

作者头像 李华
网站建设 2026/10/14 3:17:48

工地视频智能检测落地指南:从算法选型到踩坑实操

工地上的安全员每天要看几十路监控画面,说实话,这不是人干的事儿。我自己做过这类项目,盯着屏幕超过二十分钟,注意力就开始滑坡,更别提那些分布在塔吊、基坑、出入口的上百路摄像头了。视频智能检测这门技术&#xff0…

作者头像 李华
网站建设 2026/10/14 3:17:19

K8s高可用集群搭建实战:HAProxy+Keepalived完美融合

k8s高可用集群 集群环境初始化 实验环境 主机名 IP 角色 reg.westos.org 192.168.36.151 harbor私有镜像仓库 k8s-master01 192.168.36.155 control-plane,haproxy,keepalived k8s-master02 192.168.36.156 control-plane,haproxy…

作者头像 李华
网站建设 2026/10/14 3:17:17

第6章: 同步与 Fence 机制

前几章介绍了 context、resource 与 capset 三个静态抽象。GPU 的执行是异步的:命令提交后不会立即完成,Guest 与 Host、CPU 与 GPU 之间需要一套同步原语来协调先后顺序。本章说明 virglrenderer 的 fence 体系:两代 fence 模型、时间线与 ring_idx、VMM 获知完成的两种途径…

作者头像 李华