Как отключить подключенную графическую карту PCI-e на уровне ОС?

15221
Karl Richter

У меня работает сервер, для которого я хочу иметь возможность доступа к нему через экран, подключенный к VGA (очень редко, в большинстве случаев к нему обращаются через SSH). Поэтому у меня подключены графические карты PCI-e и удален кабель VGA. Графическая карта пассивно охлаждается, и если я открою корпус и прикоснусь к прохладному корпусу, я почувствую заметное тепло и пойму, что он потребляет энергию (рядом нет потребителей, которые могли бы каким-либо образом передавать тепловую энергию).

Если я отсоединяю карту (как указано в разделе « Отключить ли неиспользуемую графическую карту?» ), Мне придется встроить ее каждый раз, когда я хочу подключить экран. Я хотел бы избежать этого, а также потребление энергии.

Деактивация и повторная активация должны происходить на уровне ОС (например, через SSH), потому что в противном случае мне понадобится экран для настройки UEFI (или сделать это вслепую, что не является альтернативой) и столкновение с куриным яйцом. проблема.

Я использую Ubuntu 15.04 с Linux 4.0.2. Графическая карта имеет маркировку XFX HD 5450 850M и имеет разъемы VGA, HDMI и D-SUB. Материнская плата представляет собой ASRock 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 

РЕДАКТИРОВАТЬ 2: https://askubuntu.com/a/138953/173287 предлагает сделать, echo 0 > /sys/bus/pci/slots/$N/powerи у меня есть номер /sys/bus/pci/slots/$Nгде $Nуказан слот lspci -v, но нет powerфайла.

РЕДАКТИРОВАТЬ 3: добавление модализаций /sys/bus/pci/devices/[device]/modaliasк modprobe.blacklist=параметрам ядра не влияет на основные ядра Ubuntu из http://kernel.ubuntu.com/~kernel-ppa/mainline/, а пользовательская сборка 4.0.5 с make localmodconfigактивацией всех параметров PCI приводит к экран «Загрузка initramfs [версия]» останется видимым навсегда, пока графическая карта все еще нагревается.

4
Вы используете мощность видеокарты в любой момент? Программы с интенсивным использованием графических процессоров или виртуальные машины? Ctrl-alt-dlt 8 лет назад 0
Как я могу контролировать это? Я не устанавливал никаких дополнительных драйверов. Предоставляет ли Linux такую ​​функциональность "из коробки"? Karl Richter 8 лет назад 0
Возможно, также посмотрите [Можно ли полностью отключить мою видео / видеокарту PCIe для каждого BIOS / программного обеспечения?] (Http://superuser.com/questions/478845/can-i-fully-disable-my-pcie-video-graphics-card -в-биос программное обеспечение) Ƭᴇcʜιᴇ007 8 лет назад 0
@ Ƭᴇcʜιᴇ007 Я отредактировал, чтобы соответствовать этой идее в вопросе. Это объясняет, почему пометка как дубликат недопустима, imo ((неподтвержденный) ответ (едва ли один, кстати) относится к манипуляциям в BIOS / EFI). Karl Richter 8 лет назад 0
Я не уверен, какой графический процессор вы установили, но вас может заинтересовать [Экономия энергии ZeroCore] (http://www.anandtech.com/show/5261/amd-radeon-hd-7970-review/11) MonkeyZeus 8 лет назад 1
То, что существующие ответы не являются удовлетворительными для вас, не делает его другим * вопросом *. Кроме того, эти кавычки указывают на управление им с помощью программного обеспечения (как вы запрашиваете). Так что для меня (по крайней мере) это один и тот же вопрос, и если вы хотите получить более новые / лучшие ответы на существующие вопросы, подумайте о [назначении награды] (http://superuser.com/help/bounty) на них. Ƭᴇcʜιᴇ007 8 лет назад 0
Поскольку выгрузка не приводит к ее снижению, вам не хватает файла `power` в` / sys / bus / * `даже с загруженными драйверами ядра? Вы можете проверить это как с открытым исходным кодом Radeon, так и с драйверами AMD fglrx. Если не повезло, попробуйте форум AMD для более точной информации об управлении питанием карты. В худшем случае это выдергивание или обновление до чего-то вроде 7730 (который поддерживает нулевое значение) или эквивалента NV. Или, если вы действительно хотите углубиться в это, спецификации PCI-e доступны по адресу [PCI-SIG] (https://www.pcisig.com/home), если вы хотите попытаться перевести карту в режим низкого энергопотребления. Прикольные вещи, если у вас есть время WhimsicalWombat 8 лет назад 1

1 ответ на вопрос

4
WhimsicalWombat

Easiest way is to blacklist and unload it's kernel module. You can see it's current module with first checking out the bus number with sudo lspci |egrep -i (vga|video) noting the first field with number like 01:00.0. Then sudo lspci -vs 01:00 |grep modules displays the module in use. For HDMI-enabled devices there's usually a subdevice like 01:00.1 which is the HDMI audio device. Blacklist that too.

Add both of those /etc/modprobe.d/blacklist or blacklist.conf preceded by blacklist command. For example "blacklist radeon" and "blacklist "snd-hda-intel" etc.

If you want to use the device you can just sudo modprobe [module name] to enable it.

If that's not enough or if you use the same module for the GPU (integrated or second adapter) you actually use, bind the one you want to disable to pci-stub driver. Best way to do this is from kernel command line at boot. Just add pcistub="pci-stub.ids=..." followed by vendorID:deviceID codes you can find with lcpci -nns (your bus number from above) pcistub="pci-stub.ids=1002:6718,1002:aa80"

If you want to get that to use after binding it to pcistub, you can unbind it via sysfs and rebind it to driver of your choice or (simpler) reboot and boot without the commandline.

I'd try first if just disabling the module autoload is enough if that's available.

EDIT:

It's possible kernel will try next available driver if you blacklist one. If so, you can blacklist that too unless you need it. It'll run out of compatible drivers soon and leave the device without driver and it should be powered down (or at least low).

If it's heating up even without a kernel driver in use, please update the post. I'd be very interested to hear that.

Я попробовал ваше решение. Я многому научился, и это выглядит многообещающе, спасибо. Однако, случай, когда устройство все еще нагревается без использования драйверов, происходит сейчас. Karl Richter 8 лет назад 0
@KarlRichter Спасибо за обновление. Я не знаю, как избежать энергопотребления (или действительно ли этого можно избежать). Вполне возможно, что у старых карт вообще нет режимов пониженной мощности. AMD ZeroCore была представлена ​​на Южных островах (что снижает энергопотребление на холостом ходу до минимума), но я надеялся, что если оставить карту без драйвера, то получится нечто подобное. WhimsicalWombat 8 лет назад 0
Драйвер zerocore выглядит как хороший обходной путь, но он по-прежнему потребляет ~ 3 Вт, и необходимо определить установку драйвера, которая затем работает только для определенного набора графических карт AMD (возможно, только новых или дорогих). Изначально я думал, что довольно просто включить / выключить слот PCIe на уровне ОС и, таким образом, большого количества потребителей энергии. Karl Richter 8 лет назад 0
@KarlRichter ZeroCore можно использовать только в графических процессорах GCN 1.0 (или 1.1), т.е. Серия 7000 года. Пару лет назад 7730 были 50-долларовыми, так что теперь они не будут дорогими, особенно используемыми. Но все же я сначала попробую поработать с драйверами radeon и fglrx, чтобы посмотреть, сможете ли вы перевести ваше текущее устройство в более глубокое состояние ожидания. WhimsicalWombat 8 лет назад 0
Я смог создать «черный список radeon» только с помощью команды sudo update-initramfs -u для перестройки ядра (как подробно описано здесь: https://askubuntu.com/a/938663/115620). Удаление из черного списка не требовало перестройки ядра. Chris Gregg 5 лет назад 0

Похожие вопросы