
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_blacklist
parâmetro do kernel - vejahttps://askubuntu.com/questions/110341/how-to-blacklist-kernel-modulespara mais detalhes - para radeon
e 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 -v
para os dispositivos. A saída lspci -v
dos 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/power
e eu tenho um número /sys/bus/pci/slots/$N
onde $N
está o slot listado em lspci -v
, mas não há power
arquivo.
EDIT 3: adicionar as modaliases /sys/bus/pci/devices/[device]/modalias
aos 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 localmodconfig
ativaçã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-stub
driver. 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:deviceID
por 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.