Linux 内核参数 pci-stub.ids=

`pci-stub.ids=` 是 Linux 内核启动参数,用于在系统初始化阶段预先将指定 Vendor ID:Device ID 的 PCI 设备绑定到 `pci-stub` 哑驱动,防止宿主机原生驱动加载,常用于 KVM 设备直通隔离 。

参数格式与用法

  • 基本语法:`pci-stub.ids=vendor:device:subvendor\[:subdevice\[:class\[:class_mask]]]`

  • 多设备分隔:多个 ID 组合用英文逗号分隔(无空格),如 `10de:1b80,8086:100e`

  • 配置位置:写入 GRUB 命令行(如 `/etc/default/grub` 中的 `GRUB_CMDLINE_LINUX`),示例:`GRUB_CMDLINE_LINUX="... pci-stub.ids=10de:1b80"`

  • 生效方式:修改后需执行 `update-grub`(或 `grub2-mkconfig`)并重启系统方可生效

关键说明

  • 驱动状态:该参数仅在内核启动时生效,使 `pci-stub` 驱动在探测阶段直接接管匹配设备,无需后续手动写入 `/sys/bus/pci/drivers/pci-stub/new_id`

  • 现代替代方案:`pci-stub` 已逐渐被 `vfio-pci` 取代(更稳定、支持 IOMMU 组隔离),现代直通场景推荐优先使用 `vfio-pci.ids=` 参数配合 `rd.driver.pre=vfio-pci`

  • 获取设备 ID:通过 `lspci -nn` 查看目标设备的 `VendorID:DeviceID`(十六进制,如 `10de:1b80`)

注意事项

  • 若内核未编译内置 `pci-stub` 或模块未加载,该参数无效(需确认 `CONFIG_PCI_STUB=y` 或模块可用)

  • 错误格式(如含空格、大小写错误)会导致参数忽略,需通过 `dmesg | grep pci-stub` 验证是否成功添加 ID

相关推荐
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
_艾伦 耶格尔.4 天前
进程间通信
linux
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK4 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
琥珀色糖4 天前
SimlpeHttp
linux·服务器
qeen874 天前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
Zenova EdgeOS4 天前
Linux ss 工业边缘网络分析实战
linux·python·边缘计算·工业网关