Kar*_*ter 5 linux pci-express graphics-card energy-saving display-driver
我有一个正在运行的服务器,我希望能够通过连接到 VGA 的屏幕来访问它(很少,大多数时候是通过 SSH 访问的)。因此我插入了 PCI-e 显卡并拔掉了 VGA 电缆。显卡是被动冷却的,如果我打开机箱并触摸凉爽的机身,我可以感觉到明显的温暖并得出结论它正在消耗能量(附近没有消费者可以以任何方式传输热能)。
如果我拔下该卡(如“我应该禁用未使用的显卡吗? ”中的建议),我每次想要连接屏幕时都必须将其内置。我想避免这种情况以及能源消耗。
取消和重新激活需要在操作系统级别进行(例如通过 SSH),因为否则我需要一个屏幕来配置 UEFI(或者盲目地这样做,这是别无选择)并遇到鸡生蛋蛋生鸡的情况。问题。
我正在使用 Ubuntu 15.04 和 Linux 4.0.2。该显卡标记为 XFX HD 5450 850M,并具有 VGA、HDMI 和 D-SUB 连接器。主板是华擎X99-Extreme,不带集成显卡。
编辑:将使用的模块列入黑名单后sudo lspci -v
(遵循下面@WhimsicalWombat的有希望的答案)(在我的情况下,我必须使用modprobe.blacklist=module_to_blacklist
内核参数 - 请参阅https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules有关更多详细信息 - 对于radeon
和snd_hda_intel
),PCIe 显卡仍然会发热(被动冷却器的温度 > 60 度,并且附近没有热源),并且lspci -v
设备中没有列出任何模块。lspci -v
设备的输出不是
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cedar [Radeon HD 5000/6000/7350/8350 Series] (prog-if 00 [VGA controll
er])
Subsystem: XFX Pine Group Inc. Device 303e
Physical Slot: 4
Flags: bus master, fast devsel, latency 0, IRQ 11
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at fbe20000 (64-bit, non-prefetchable) [size=128K]
I/O ports at e000 [size=256]
Expansion ROM at fbe00000 [disabled] [size=128K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150] Advanced Error Reporting
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Cedar HDMI Audio [Radeon HD 5400/6300 Series]
Subsystem: XFX Pine Group Inc. Device aa68
Physical Slot: 4
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at fbe40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Legacy Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Capabilities: [150] Advanced Error Reporting
Run Code Online (Sandbox Code Playgroud)
编辑2: https: //askubuntu.com/a/138953/173287建议这样做echo 0 > /sys/bus/pci/slots/$N/power
,我有一个/sys/bus/pci/slots/$N
在哪里$N
列出的插槽号lspci -v
,但没有power
文件。
/sys/bus/pci/devices/[device]/modalias
编辑 3:向内核参数添加模态别名对来自http://kernel.ubuntu.com/~kernel-ppa/mainline/modprobe.blacklist=
的 Ubuntu 主线内核没有影响,并且自定义 4.0.5 构建和激活所有 PCI 选项会导致当图形卡仍在加热时,“正在加载 initramfs [版本]”屏幕将永远保持可见。make localmodconfig
小智 5
最简单的方法是将其列入黑名单并卸载其内核模块。您可以通过首先检查总线号来查看其当前模块:
sudo lspci | egrep -i "(vga|video)"
Run Code Online (Sandbox Code Playgroud)
请注意第一个字段的编号如01:00.0
。然后显示正在使用的模块:
sudo lspci -vs 01:00 | grep modules
Run Code Online (Sandbox Code Playgroud)
对于支持 HDMI 的设备,通常有一个像 01:00.1 这样的子设备,它是 HDMI 音频设备。也将其列入黑名单。
添加 /etc/modprobe.d/blacklist 或 blacklist.conf,前面加上 blacklist 命令。例如“黑名单 radeon”和“黑名单“snd-hda-intel”等。
如果您想使用该设备,只需sudo modprobe [module name]
启用它即可。
如果这还不够,或者您实际使用的 GPU(集成或第二适配器)使用相同的模块,请将要禁用的模块绑定到pci-stub
驱动程序。最好的方法是在启动时使用内核命令行。只需添加
pcistub="pci-stub.ids=<vendorID:deviceID>"
Run Code Online (Sandbox Code Playgroud)
替换vendorID:deviceID
为您可以找到的代码
lspci -nns <your bus number from above e.g. 01:00>
pcistub="pci-stub.ids=1002:6718,1002:aa80"
Run Code Online (Sandbox Code Playgroud)
如果您想在将其绑定到 pcistub 后使用它,您可以通过 sysfs 取消绑定并将其重新绑定到您选择的驱动程序,或者(更简单)重新启动并在没有命令行的情况下启动。
如果可用的话,如果仅禁用模块自动加载就足够了,我会首先尝试。
编辑:
如果您将某个驱动程序列入黑名单,内核可能会尝试下一个可用的驱动程序。如果是这样,除非需要,否则您也可以将其列入黑名单。它很快就会耗尽兼容的驱动程序,并使设备没有驱动程序,并且应该将其断电(或至少低电)。
如果即使没有使用内核驱动程序它也会发热,请更新帖子。我很想听听这个。
归档时间: |
|
查看次数: |
27210 次 |
最近记录: |