惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
U
Unit 42
V
Visual Studio Blog
D
DataBreaches.Net
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
T
The Blog of Author Tim Ferriss
GbyAI
GbyAI
博客园 - 叶小钗
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
The Cloudflare Blog
云风的 BLOG
云风的 BLOG
D
Docker
G
Google Developers Blog
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
S
SegmentFault 最新的问题

Jiajun的技术笔记

你好,2026! TiDB 源码阅读(六):TiDB Coprocessor 源码解析 性能优化的核心思想 TiDB 源码阅读(五):索引 TiDB 源码阅读(四):AST、逻辑计划、物理计划 CockroachDB Serverless Architecture podman 无故退出 Cursor Control-L (CTRL-L) Keyboard Shortcuts in Terminal Replace docker with podman Using xmonad with xfce4 A RC script for freebsd frpc 自己动手写一个k8s controller AI 会取代你的(编程)岗位吗? 自建DERP服务器提升Tailscale连接速度(使用Nginx转发) 自动升级Docker容器 再读《程序员修炼之道-从小工到专家》 让浏览器下载文件 再读《软件随想录》/《黑客与画家》/《软技能》 HTTP 压力测试中的 Coordinated Omission 2的补码 编程语言中的 context 是什么? flutter macOS 构建出错 Flatpak 使用小记 Golang CAS 操作是怎么实现的 PostgreSQL 当MQ来使用 Clash 结合 工作VPN 的网络设计 使用 PostgreSQL 搭建 JuiceFS PostgreSQL 配置优化和日志分析 有GitHub Copilot?那就可以搭建你的ChatGPT4服务 窗口函数的使用(以PG为例)
KVM 穿透板载蓝牙和无线网卡
Jiajun Huang · 2025-05-05 · via Jiajun的技术笔记

我的Host一直是Linux,但是偶尔会打游戏,因此有一台 Windows 虚拟机,最近想要把板载蓝牙和无线网卡穿透进去,但是都遇到了一些 小困难需要解决,因此记录成文。

穿透无线网卡

无线网卡穿透起来和穿透显卡等硬件是一样的,由于无线网卡在一个单独的IOMMU组,直接加到 /etc/modprobe.d/vfio.conf 中即可,此外,我发现我本地的无线网卡总是被 igb 驱动优先占用导致 vfio-pci 无法占用网卡,我在 /etc/modprobe.d/vfio.conf 中加上:

softdep igb pre: vfio-pci
options vfio-pci ids=...无线网卡的硬件ID

然后重启以后,就可以穿透了。

穿透蓝牙

一开始我以为蓝牙是和无线网卡在一起的,后来发现蓝牙是和USB控制器在一起的,在 virt-manager 中,点击 Add Hardware - USB Host Device, 选择带 Intl...Bluetooth 的那个,穿透进去以后,如果直接开机的话,会发现这样的现象:

  • Windows 可以发现蓝牙硬件,但是无法使用,安装驱动以后,点开 “我的电脑” 查看硬件详情,驱动里报错 “code: 10”

经过搜索发现,这是 libvirt 的一个改动导致的问题,要解决这个问题,还需要编辑XML:

$ sudo virsh edit --domain windows

</domain> 上面加上 <qemu:capabilities> 这一节:

<domain>
    <devices>
        ...
    </devices>

    <qemu:capabilities>
        <qemu:del capability="usb-host.hostdevice"/>
    </qemu:capabilities>

...
</domain>

此时如果保存你会发现无法通过xml校验,还需要跳到顶部,在 <domain type='kvm'> 改成

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

然后保存,然后重启以后,就可以穿透蓝牙了。


参考文档: