Làm cách nào để kiểm tra card màn hình nào đang hoạt động trong MacBook Pro?


14

Có một sự khác biệt lớn về cả hiệu năng và mức tiêu thụ năng lượng giữa hai card màn hình trong MacBook Pro.

Vấn đề là, tôi thường quên cái nào tôi đang chạy. Điều này có thể kết thúc với một pin chết trong khi trên máy bay khá nhanh. Theo như tôi có thể nói, bạn phải mở Tùy chọn hệ thống tiết kiệm năng lượng để xem cái nào đang hoạt động.

Có ai biết một công cụ sẽ hiển thị (trong thanh menu, trên máy tính để bàn, bất cứ điều gì) tình trạng thẻ video hiện tại của tôi không? Đặc biệt tốt sẽ là một lệnh đầu cuối sẽ báo cáo cái nào đang hoạt động. Tôi có thể sử dụng nó như là một phần của thiết lập GeekTool của tôi.

Tôi cũng có khả năng viết công cụ của riêng mình nếu có ai biết API tôi sẽ tìm thông tin này ở đâu.

Ai có ý tưởng gì không?

EDIT: Các câu trả lời dưới đây liên quan đến system_profiler chắc chắn là một bước đi đúng hướng. MBP hiển thị thông tin cho BÓNG thẻ video, bất kể hoạt động nào ... NHƯNG sẽ hiển thị "màn hình không được kết nối" cho màn hình được gắn vào thẻ không hoạt động. Tôi nên có thể kịch bản một cái gì đó mà con số nó ra từ đó.

EDIT2: Khóa đang nhận đầu ra từ system_profier ở định dạng xml (sử dụng công tắc -xml). Các kịch bản dưới đây để phân tích cú pháp kết quả và hiển thị kết quả.

Câu trả lời:


6

Giả sử system_profiler sẽ chỉ báo cáo màn hình hoạt động (Tôi không ở gần MBP để biết) về cách cắm cái này vào GeekTool:

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

Biên tập:

Nếu nó liệt kê một thứ không hoạt động trên cùng một dòng với "hiển thị không được kết nối" thì sao:

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

Nếu nó liệt kê một hoạt động đầu tiên thì làm thế nào về:

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

Nếu hoạt động là thứ hai thì thay thế đầu bằng đuôi.


Tại sao bạn thay thế dấu hai chấm cho không gian?
Daniel nói Phục hồi lại

4

http://codykrieger.com/gfxCardStatus

Đây là một ứng dụng nhỏ nằm trong thanh và cung cấp cho bạn không chỉ thẻ đang sử dụng mà còn kiểm soát cách thức và thời điểm chuyển đổi thẻ. Ví dụ: bạn chỉ có thể đặt card đồ họa tích hợp để chạy khi sử dụng pin - vv ...


gfxCardStatus đã được cập nhật cho Mountain Lion và Retina MacBook Pro.
lười

3

Sử dụng ý tưởng cơ bản được trình bày trong hai câu trả lời khác, tôi đã viết các tập lệnh sau để xác định xem bạn có đang sử dụng thẻ video "đúng" hay không (Correct = "trên pin và sử dụng 9400" hoặc "trên bộ điều hợp ac và sử dụng 9600")

Tôi không biết các tập lệnh này dễ vỡ đến mức nào ... chúng dựa vào dữ liệu cụ thể xuất hiện theo một thứ tự cụ thể trong hệ thống hệ thống_profile ... nhưng thứ tự này có vẻ phù hợp với máy của tôi. Đặt nó ở đây cho bất cứ ai từng tìm thấy điều này thông qua Google.

Ruby: (yêu cầu đá quý "Plist" được cài đặt)

# 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)

Con trăn

# 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)

2

Tôi biết rằng câu hỏi này khá cũ - nhưng đối với những người vẫn còn vấp phải nó, có lẽ thật tốt khi biết rằng cũng có những lựa chọn khác. Đối với các giải pháp đơn giản nhất, người ta có thể kiểm tra GFXCheck , đây là một ứng dụng đơn giản sẽ hiển thị thẻ đồ họa hoạt động trong


2
hoặc gfxcardStatus, cho phép bạn chọn cái nào sẽ sử dụng thủ công hoặc tự động dựa trên hồ sơ sức mạnh của bạn.
Robert S Ciaccio

2
Trên thực tế, ngay sau khi viết bài đăng này, tôi đã tìm thấy gfxCardStatus và cài đặt nó thay vào đó - cách tốt hơn. Có chuyển đổi tự động và một giao diện ít gây phiền nhiễu.
micdah

Bạn đã bao giờ tìm ra làm thế nào để kết thúc câu?
fixer1234

1

Tôi không có một trong những Ưu điểm MacBook mới ở đây nhưng bạn sẽ có thể thấy Thẻ hoạt động thông qua Trình cấu hình hệ thống. Trong terminal chỉ cần sử dụng system_profilerđể xem cấu hình hệ thống:

Ảnh chụp màn hình thiết bị đầu cuối


0

Bạn có thể sử dụng đá quý ruby active_gfxtôi đã viết: https://github.com/ChaosCoder/active_gfx

active_gfx hiển thị card đồ họa hiện đang được sử dụng bởi hệ thống macOS của bạn.

Thay vì đi qua danh sách các quy trình mở trong Activity Monitor, công cụ này tạo ra chip đồ họa hiện đang sử dụng bằng cách truy vấn system_profiler .

Như active_gfxlà một viên ngọc ruby, cài đặt nó quagem install active_gfx .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.