情况是这样: 我台式机电脑,intel cpu + nvidia 独显。
上面安装了 hackintosh 和 Linux 双系统。
因为 hackintosh 无法使用 nvidia 显卡,所以我选择用 intel 核显驱动。 但是 Linux 还是正常使用 Nvidia 显卡。
为了不在每次启动的时候都跑到主板里面去切换显卡,我选择核显作为第一显卡,独显同时启用。
很不错,hackintosh 和 Linux 都能正常引导和显示。
现在的情况是这样: 我的显示器接了两条输入线,一条接核显、一条接独显。 在 Hackintosh 上面,独显不工作,所以 ok 。
但是在 Linux 上面,独显和核显都可以工作,这样的在我的显示器设置里面就可以看到两个屏幕。 本来这也没有啥关系,我可以将连接核显的监视器禁用掉。 但是,就算我禁用之后也总会有这里那里小问题,有点烦。
所以来问问,有没有大佬知道: 如何在 Linux 上面彻底屏蔽掉那个连接核显的监视器(不止禁用,我想的是让 xrandr 和系统设置都无法感知他的存在)?
![]() |
1
chenxytw 77 天前
彻底无感知,不从 BIOS 屏蔽的话,最多就是做到卸载驱动,intel 核显驱动是 i915 这个内核模块。
|
![]() |
2
povsister 76 天前
核显本质也是 pcie 设备,理论上你可以从内核屏蔽掉。搜一下如何屏蔽指定 pcie 设备吧
|
![]() |
3
liyafe1997 75 天前 via Android
NVIDIA 驱动的那个 prime 不是可以设置 nvidia only 吗?
|
![]() |
4
liyafe1997 75 天前 via Android
噢不对,那个应该屏蔽不了 INTEL 核显输出。可以尝试把 intel 核显驱动彻底干掉,加到 blacklist 里面,或者甚至彻底屏蔽掉核显的 PCIE 设备,问了下 ChatGPT:
是的,Linux 可以通过加内核参数来屏蔽某个 PCIe 设备,使其在启动时不加载相应的驱动程序。具体操作步骤如下: 1. **获取 PCI 设备的 ID**: 使用`lspci`命令来查看系统中的 PCI 设备列表,并找到你想屏蔽的设备的 ID (一般包括厂商 ID 和设备 ID )。 ```sh lspci -nn ``` 输出示例: ``` 00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (7) I219-V [8086:15be] (rev 10) ``` 在这个示例中,设备 ID 为`8086:15be`。 2. **编辑 Grub 配置文件**: 编辑 Grub 配置文件,添加内核参数来屏蔽设备。具体操作步骤如下: - 打开 Grub 配置文件: ```sh sudo nano /etc/default/grub ``` - 在`GRUB_CMDLINE_LINUX`行中添加`pci-stub.ids=厂商 ID:设备 ID`参数。例如: ```sh GRUB_CMDLINE_LINUX="... pci-stub.ids=8086:15be ..." ``` 3. **更新 Grub 配置**: 保存并关闭文件后,更新 Grub 配置以应用更改。 ```sh sudo update-grub ``` 4. **重启系统**: 重启系统使更改生效。 ```sh sudo reboot ``` 通过上述步骤,系统在启动时会将指定的 PCI 设备分配给`pci-stub`驱动程序,而不是加载其特定的驱动程序。这 effectively 使该设备在系统中不可用。 |
5
nozer OP 感谢楼上。 屏蔽 pci 设备是可以的。 但是屏蔽了核显的 PCI 后,独显也不工作了。 只在 TTY 时有画面输出。到启动 SDDM 的时候,画面一直是卡在 TTY 上面。
感觉这跟系统没关系了可能。 因该是双显卡工作模式需要核显去做某些特殊工作导致的。 |