Самый простой способ

Самый простой способ

У меня есть работающий сервер, к которому я хочу иметь возможность доступа с экрана, подключенного к 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 без интегрированной графики.

EDIT: После внесения в черный список используемых модулей, перечисленных в 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=параметрам ядра не оказывает никакого влияния на основные ядра Ubuntuhttp://kernel.ubuntu.com/~kernel-ppa/mainline/а пользовательская сборка 4.0.5 с make localmodconfigактивацией всех опций PCI приводит к тому, что экран «Загрузка initramfs [версия]» остается видимым вечно, пока графическая карта продолжает нагреваться.

решение1

Самый простой способ

Самый простой способ — внести в черный список и выгрузить его модуль ядра. Вы можете увидеть его текущий модуль, сначала проверив номер шины с помощью:

sudo lspci | egrep -i "(vga|video)"

обратите внимание на первое поле с номером, например 01:00.0. Затем отобразите используемый модуль:

sudo lspci -vs 01:00 | grep modules

Для устройств с поддержкой HDMI обычно есть подустройство, например 01:00.1, которое является аудиоустройством HDMI. Добавьте его в черный список.

Добавьте оба файла /etc/modprobe.d/blacklist или blacklist.conf, предваряя их командой blacklist. Например, "blacklist radeon" и "blacklist "snd-hda-intel" и т. д.

Если вы хотите использовать устройство, вы можете просто sudo modprobe [module name]включить его.

Индивидуальный способ

Если этого недостаточно или если вы используете тот же модуль для GPU (интегрированный или второй адаптер), который вы фактически используете, привяжите тот, который вы хотите отключить, к pci-stubдрайверу. Лучший способ сделать это — из командной строки ядра при загрузке. Просто добавьте

pcistub="pci-stub.ids=<vendorID:deviceID>"

заменив vendorID:deviceIDкодами, которые вы можете найти с помощью

lspci -nns <your bus number from above e.g. 01:00>
pcistub="pci-stub.ids=1002:6718,1002:aa80"

Если вы хотите использовать его после привязки к pcistub, вы можете отвязать его через sysfs и заново привязать к драйверу по вашему выбору или (что проще) перезагрузиться и загрузиться без командной строки.

Я бы сначала попробовал просто отключить автозагрузку модуля, если это возможно.

РЕДАКТИРОВАТЬ:

Возможно, ядро ​​попробует следующий доступный драйвер, если вы добавите его в черный список. Если так, вы можете добавить его в черный список, если он вам не нужен. Скоро закончатся совместимые драйверы, и устройство останется без драйвера, и его следует выключить (или, по крайней мере, снизить).

Если он греется даже без использования драйвера ядра, пожалуйста, обновите пост. Мне было бы очень интересно это услышать.

Связанный контент