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 小时前
网口Link Up后仍然掉线,怎样区分物理链路和数据通路问题?
linux·以太网
Lhan.zzZ5 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
Fcy6486 小时前
Linux下 多路转接select详解
linux·select·多路转接
无足鸟ICT7 小时前
【RHCA+】RPM包命名规则
linux·运维·服务器
Zucker n7 小时前
一款适合研究生科研工作安排的日历
linux·数据库·python
爱吃香菜的初学者7 小时前
十六.Linux——多线程(2)
linux·运维·开发语言
‎ദ്ദിᵔ.˛.ᵔ₎9 小时前
Linux:对有关 SIGCHLD 的深层理解
linux·运维·服务器
aichitang20249 小时前
QCU 2.0.0:补齐 Windows、Linux 与 GNOME Wayland
linux·运维·windows·ai·agent·ai编程
Lv_沐曦9 小时前
Linux 上的Web文件管理器-filebrowser
linux·运维·服务器