Caminho mais fácil

Caminho mais fácil

Tenho um servidor rodando para o qual quero ter a possibilidade de acessá-lo com uma tela conectada a VGA (muito raramente, na maioria das vezes é acessado via SSH). Portanto, tenho placas gráficas PCI-e conectadas e o cabo VGA removido. A placa de vídeo é resfriada passivamente e se eu abrir o gabinete e tocar o corpo frio posso sentir um calor perceptível e concluir que ela está consumindo energia (não há consumidores próximos a ela que possam transmitir a energia térmica de alguma forma).

Se eu desconectar o cartão (como sugerido emDevo desativar uma placa gráfica não utilizada?) Tenho que incorporá-lo sempre que quiser conectar uma tela. Gostaria de evitar isso e também o consumo de energia.

A desativação e reativação precisam ocorrer no nível do sistema operacional (por exemplo, via SSH), porque caso contrário eu precisaria de uma tela para configurar o UEFI (ou fazer isso cegamente, o que não é alternativa) e me deparar com um ovo de galinha. problema.

Estou usando o Ubuntu 15.04 com Linux 4.0.2. A placa gráfica é rotulada como XFX HD 5450 850M e possui um conector VGA, HDMI e D-SUB. A placa-mãe é uma ASRock X99-Extreme sem gráfico integrado.

EDIT: Depois de colocar na lista negra os módulos usados ​​listados em sudo lspci -v(seguindo a resposta promissora de @WhimsicalWombat abaixo) (no meu caso eu tive que usar o modprobe.blacklist=module_to_blacklistparâmetro do kernel - vejahttps://askubuntu.com/questions/110341/how-to-blacklist-kernel-modulespara mais detalhes - para radeone snd_hda_intel) a placa gráfica PCIe ainda aquece (o cooler passivo tem> 60 graus e não há fonte de calor por perto) e nenhum módulo está listado lspci -vpara os dispositivos. A saída lspci -vdos dispositivos não é

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

EDITAR 2:https://askubuntu.com/a/138953/173287sugere fazer echo 0 > /sys/bus/pci/slots/$N/powere eu tenho um número /sys/bus/pci/slots/$Nonde $Nestá o slot listado em lspci -v, mas não há powerarquivo.

EDIT 3: adicionar as modaliases /sys/bus/pci/devices/[device]/modaliasaos modprobe.blacklist=parâmetros do kernel não tem efeito nos kernels da linha principal do Ubuntu dehttp://kernel.ubuntu.com/~kernel-ppa/mainline/e uma versão 4.0.5 personalizada com make localmodconfigativação de todas as opções PCI faz com que a tela "Carregando initramfs [versão]" permaneça visível para sempre enquanto a placa gráfica ainda está esquentando.

Responder1

Caminho mais fácil

A maneira mais fácil é colocar na lista negra e descarregar o módulo do kernel. Você pode ver seu módulo atual verificando primeiro o número do barramento com:

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

observe o primeiro campo com um número como 01:00.0. Em seguida, exiba o módulo em uso:

sudo lspci -vs 01:00 | grep modules

Para dispositivos habilitados para HDMI, geralmente há um subdispositivo como 01:00.1, que é o dispositivo de áudio HDMI. Coloque isso na lista negra também.

Adicione ambos /etc/modprobe.d/blacklist ou blacklist.conf precedidos pelo comando blacklist. Por exemplo, "lista negra radeon" e "lista negra" snd-hda-intel "etc.

Se você quiser usar o dispositivo, basta sudo modprobe [module name]ativá-lo.

Maneira personalizada

Se isso não for suficiente ou se você usar o mesmo módulo para a GPU (adaptador integrado ou segundo) que você realmente usa, vincule aquele que deseja desabilitar ao pci-stubdriver. A melhor maneira de fazer isso é na linha de comando do kernel na inicialização. Basta adicionar

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

substituindo vendorID:deviceIDpor códigos que você pode encontrar com

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

Se você quiser usá-lo depois de vinculá-lo ao pcistub, você pode desvinculá-lo via sysfs e ligá-lo novamente ao driver de sua escolha ou (mais simples) reinicializar e inicializar sem a linha de comando.

Eu tentaria primeiro se apenas desabilitar o carregamento automático do módulo fosse suficiente, se estiver disponível.

EDITAR:

É possível que o kernel tente o próximo driver disponível se você colocar um na lista negra. Nesse caso, você também pode colocá-lo na lista negra, a menos que precise. Em breve, os drivers compatíveis ficarão sem drivers e o dispositivo deverá ser desligado (ou pelo menos baixo).

Se estiver esquentando mesmo sem um driver de kernel em uso, atualize a postagem. Eu ficaria muito interessado em ouvir isso.

informação relacionada