Como verificar qual placa de vídeo está ativa em um MacBook Pro?

14

Há uma grande diferença no desempenho e no consumo de energia entre as duas placas de vídeo de um MacBook Pro.

O problema é que muitas vezes esqueço qual deles estou executando. Isso pode acabar com uma bateria descarregada em um avião muito rapidamente. Tanto quanto eu posso dizer, você tem que abrir a Preferência do Sistema Energy Saver para ver qual deles está ativo.

Alguém sabe de uma ferramenta que exibirá (na barra de menus, na área de trabalho, qualquer que seja) o status atual da minha placa de vídeo? Especialmente bom seria um comando de terminal que informaria qual deles estava ativo. Eu poderia usar isso como parte da minha configuração do GeekTool.

Eu também sou capaz de escrever minha própria ferramenta, se alguém souber onde eu procuraria essa informação.

Alguém tem alguma ideia?

EDIT: As respostas abaixo sobre system_profiler são definitivamente um passo na direção certa. O MBP mostra informações para ambas as placas de vídeo, independentemente de qual esteja ativo ... MAS mostrará "display não conectado" para a exibição anexada ao cartão inativo. Eu deveria ser capaz de escrever algo que descubra a partir daí.

EDIT2: A chave é obter a saída do system_profier no formato xml (usando a opção -xml). Os scripts estão abaixo para analisar a lista resultante e exibir o resultado.

    
por mmc 23.12.2009 / 19:27

6 respostas

3

Usando a ideia básica apresentada nas outras duas respostas, eu escrevi os seguintes scripts para determinar se você está usando a placa de vídeo "correta" (Corrigir="na bateria e usando o 9400" ou "no adaptador de corrente alternada e usando o 9600 ")

Eu não tenho idéia de como esses scripts são frágeis ... eles dependem de dados específicos que aparecem em uma ordem específica no plist system_profile ... mas essa ordem parece consistente em minha máquina. Colocá-lo aqui para qualquer um que encontrar isso via Google.

Ruby: (requer que a gema "Plist" seja instalada)

# video_profiler.rb
require 'rubygems'
require 'plist'

# calculate video data
data = 'system_profiler SPDisplaysDataType -xml'
structured_video_data = Plist.parse_xml(data)
display_status = structured_video_data[0]["_items"][0]["spdisplays_ndrvs"][0]["spdisplays_status"]

if (display_status.eql?('spdisplays_not_connected')) then 
    card = '9400'
else
    card = '9600'
end

# calculate power source data
data = 'system_profiler SPPowerDataType -xml'
structured_power_data = Plist.parse_xml(data)
on_ac_power = (structured_power_data[0]["_items"][3]["sppower_battery_charger_connected"] == 'TRUE')

# output results
if (on_ac_power and card.eql?'9400') or (not on_ac_power and card.eql?'9600'):
    result = 'You\'re on the wrong video card.'
else
    result = "You\'re on the correct video card."
end

puts(result)

Python:

# video_profiler.py
from subprocess import Popen, PIPE
from plistlib import readPlistFromString
from pprint import pprint
sp = Popen(["system_profiler", "SPDisplaysDataType", "-xml"], stdout=PIPE).communicate()[0]
pl = readPlistFromString(sp)
display_status = pl[0]["_items"][0]["spdisplays_ndrvs"][0]["spdisplays_status"]
if (display_status == 'spdisplays_not_connected'): 
    card = '9400'
else:
    card = '9600'

# figure out battery status
sp = Popen(["system_profiler", "SPPowerDataType", "-xml"], stdout=PIPE).communicate()[0]
pl = readPlistFromString(sp)
on_ac_power = (pl[0]["_items"][3]["sppower_battery_charger_connected"] == 'TRUE')


if (on_ac_power and card == '9400') or (not on_ac_power and card == '9600'):
    result = 'You\'re on the wrong video card.'
else:
    result = "You\'re on the correct video card."

pprint(result)
    
por 11.01.2010 / 19:42
6

Assumindo que o system_profiler só irá relatar a exibição ativa (eu não estou perto de um MBP para saber) como sobre conectar isso ao GeekTool:

system_profiler | grep GeForce | sed -e 's/:/ /'

Editar:

Se ele listar o não ativo na mesma linha que "display não conectado", que tal:

system_profiler | grep GeForce | grep - v "display not connected" | sed -e 's/:/ /'

Se ele listar o primeiro ativo, que tal:

system_profiler | grep GeForce | head -n 1 | sed -e 's/:/ /'

Se o ativo estiver em segundo lugar, substitua a cabeça pela cauda.

    
por 24.12.2009 / 04:46
4

link

Este é um pequeno aplicativo que reside na barra e oferece não apenas o cartão em uso, mas também o controle sobre como e quando trocar o cartão. Por exemplo, você pode configurar somente placas gráficas integradas para serem executadas quando a bateria estiver funcionando - etc ...

    
por 25.08.2012 / 05:22
2

Eu sei que esta pergunta é bastante antiga - mas para aqueles que ainda estão se perguntando, pode ser bom saber que existem outras opções também. Para as soluções mais simples, pode-se verificar GFXCheck , que é uma aplicação simples que mostrará a placa gráfica ativa no

    
por 01.12.2010 / 17:09
1

Eu não tenho um dos novos MacBook Pros aqui, mas você deve conseguir ver o cartão ativo através do System Profiler. No terminal, use apenas system_profiler para ver a configuração do sistema:

    
por 24.12.2009 / 04:27
0

Você pode usar o ruby gem active_gfx que escrevi: link

active_gfx mostra a placa gráfica atualmente em uso pelo seu sistema macOS.

Em vez de percorrer a lista de processos abertos no Activity Monitor, essa ferramenta exibe o chip gráfico usado no momento consultando o system_profiler .

Como active_gfx é uma jóia ruby, instale-a via gem install active_gfx .

    
por 09.01.2017 / 17:07

Tags