4

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

1 ответ1

4

Самый простой способ - занести в черный список и выгрузить модуль ядра. Вы можете увидеть его текущий модуль, сначала проверив номер шины с помощью 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, которым предшествует команда черного списка. Например "черный список radeon" и "черный список" snd-hda-intel "и т.д.

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

Если этого недостаточно или если вы используете тот же модуль для графического процессора (встроенный или второй адаптер), который вы фактически используете, привяжите тот, который вы хотите отключить, к драйверу pci-stub. Лучший способ сделать это - из командной строки ядра при загрузке. Просто добавьте pcistub="pci-stub.ids=..." а затем vendorID: коды устройств, которые вы можете найти с помощью lcpci -nns (your bus number from above) pcistub="pci-stub.ids=1002:6718,1002:aa80"

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .