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

相关推荐
RisunJan1 小时前
Linux命令-scriptreplay(终端会话回放)
linux·运维·chrome
spencer_tseng1 小时前
[kylin & linux] install docker
linux·docker·kylin
x²+(y-√³x²)²=13 小时前
Linux打包文件到Windows,文件/文件类型丢失
linux·运维·windows
柒号华仔3 小时前
「速通Shell」聚砖成墙,Shell函数封装之道
linux·ssh·bash
程序员与背包客_CoderZ3 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
Android系统攻城狮3 小时前
Linux PipeWire深度解析之pw_properties_iterate调用流程与实战(六十五)
linux·运维·服务器·音频进阶·pipewire音频进阶
jason.zeng@15022076 小时前
linux的top命令
java·linux·服务器
Huangjin007_6 小时前
【Linux 系统篇(十五)】进程 (三) :进程状态深度详解
linux·运维
RisunJan6 小时前
Linux命令-talk(终端实时对话)
linux·运维·服务器