Prosedur yang Anda rencanakan dimungkinkan. Prosedur yang Anda rencanakan tidak terlalu sulit. Prosedur yang Anda rencanakan bukanlah pilihan terbaik.
Mengapa rute ini suboptimal
MacBook Pro akan dan harus beralih ke GPU diskrit (dGPU) setelah layar eksternal terhubung. Oleh karena itu, dGPU yang terinstal tetapi dinonaktifkan menghilangkan pilihan untuk menggunakan Monitor eksternal dengan dGPU tersebut.
Ada pilihan lain sekarang, seperti menggunakan solusi USB atau GPU eksternal (eGPU). Tetapi pengaturan variabel EFI yang Anda cari pasti akan menonaktifkan output langsung dengan satu kabel dari port Thunderbolt ke monitor eksternal.
Bagaimana Anda dapat menonaktifkan GPU diskrit dari EFI?
Perintah yang Anda sebutkan di pembaruan Anda hampir benar. Itu hanya melewatkan pengidentifikasi yang tepat:
sudo nvram fa4ce28d-b62f-4c99-9cc3-6815686e30f9:gpu-power-prefs=%01%00%00%00
Ini menulis variabel EFI yang sesuai untuk NVRAM dan memaksa MacBook Pro untuk selalu mem-boot langsung ke GPU terintegrasi (iGPU). Pengidentifikasi tidak hanya untuk AMD dGPU tetapi semua dGPU. Ini dikonfirmasi untuk bekerja dengan chip NVidia sama. Ini juga mudah reversibel dengan reset NVRAM.
Kerugian dari strategi ini dalam situasi ini
Dan sekarang sisi negatifnya: Ada dua kemungkinan masalah kecil dengan ini:
Setelah Anda memaksa pengaturan NVRAM ini, macOS mungkin menjadi "sedikit bingung". Chip itu masih ada, berkabel dan bertenaga.
Untuk mem-boot ini, Anda mungkin perlu menonaktifkan driver grafis untuk dGPU Anda. Atau setidaknya satu kext yang mengelola peralihan grafik yang sebenarnya. Boot mungkin hang ketika mencoba untuk memulai pergantian GPU sebaliknya.
Kedua masalah yang baru muncul dapat diatasi dengan memindahkan semua NVidia kexts /System/Library/Extensions
ke tempat cadangan yang aman. Ini akan mem - boot mesin yang dipaksa ke mode iGPU yang dipercepat. Tetapi pengaturan variabel EFI mungkin tidak cukup untuk mendapatkan manajemen daya yang masuk akal. Untuk itu, Anda mungkin harus memindahkan kembali NVidia kexts kecuali yang bertanggung jawab untuk pengalihan grafis. Gagal melakukannya akan menyebabkan daya tinggi yang tidak perlu pada dGPU. Setidaknya akan menganggur di "kekuatan penuh '(diterjemahkan ke> ~ 60 ° C).
Daya idle tinggi ini berpotensi menjadi kekalahan besar bagi rencana Anda untuk mengurangi kebisingan kipas dan meningkatkan baterai. Catatan dari literatur: Seharusnya diakui secara universal bahwa memindahkan kexts juga mengharuskan Anda menonaktifkan SIP pada versi OS X / macOS yang lebih baru selama Anda memindahkan hal-hal seperti ini.
Umum strategi untuk menemukan kexts untuk bereksperimen dengan: boot tanpa variabel NVRAM dalam sistem stok (dengan 'default' NVidia kexts). Kemudian catat ekstensi mana yang sebenarnya dimuat dengan sistem Anda kextstat
. Kemudian reboot dengan NVidia / Geforce kexts yang sebelumnya dimuat menjauh dan hack diaktifkan. Dapatkan monitor sensor terperinci (iStatMenus, TGPro, dll ...) dan saksikan suhu di dan sekitar GPU. Sekarang muat satu per satu dari kunci yang relevan kembali ke kernel dengan sudo kextload /path-to/NVDA***.kext
. Tunggu satu atau dua menit setelah masing-masing.
Karena metode postingan ini - atau cara yang sama-sama valid tetapi terlalu panjang: memanipulasi EFIvars di Linux - adalah NVRAM, itu akan dikembalikan dengan bersih jika Anda melakukan reset SMC / NVRAM. Peretasan NVRAM itu sebenarnya satu-satunya bagian dari postingan ini yang pasti tidak akan memberi Anda banyak masalah.
Melakukan reset NVRAM ini mengembalikan set minimal pengaturan pabrik ke variabel EFI / NVRAM. Pengaturan pabrik itu tidak akan disentuh.
Ini dapat dilakukan sesering yang Anda suka.
Di Linux sistem driver jauh lebih baik didokumentasikan dan saya menerapkan cleaner. Ada banyak cara untuk mencapai ini dengan atau boot ke Linux. Dan Linux (apakah menghormati pengaturan NVRAM / EFIvars ini atau melalui metode lain) akan memberi Anda jauh lebih sedikit masalah dengan driver (Siapa sangka). Untuk OS lain, seperti Microsoft Windows, saya tidak punya data.
Untuk mengulang: Memiliki OS tidak mengenali dGPU dengan benar tidak berarti dimatikan. Itu mungkin menyebabkan efek samping termal yang tidak diinginkan.
Lihatlah panduan ini untuk MacBook Pro 2011 untuk solusi yang sama dan sedikit lebih banyak pilihan; juga dengan cepat membatalkan dan mengulang hack NVRAM.
Banyak monitor dan dGPU yang dinonaktifkan
Setelah mengatakan itu semua: gfxCardStatus (atau mencoba versi yang berbeda dari aslinya - mereka memiliki opsi / kemampuan yang berbeda ...) adalah pilihan terbaik jika Anda tidak memiliki masalah perangkat keras yang nyata untuk dihadapi. Ini jauh lebih fleksibel dan Anda masih dapat beralih kembali ke dGPU atau monitor eksternal dengan mudah dalam sistem yang sedang berjalan.
Baik melalui EFI / NVRAM atau dengan gfxCardStatus: memaksa Mac dengan grafis yang dapat dialihkan ke yang terintegrasi saja akan menonaktifkan mode tampilan eksternal menggunakan output grafis DisplayPort atau Thunderbolt bawaan. Ini adalah konsekuensi dari desain perangkat keras yang mengarahkan sinyal tampilan untuk monitor eksternal melalui dGPU. Menggunakan bukan diskrit tetapi adapter grafis eksternal mungkin menjadi solusi untuk keterbatasan itu.
Pengaturan EFI untuk memungkinkan terintegrasi pada sistem operasi lain
Seperti yang seharusnya sudah jelas sekarang, pengaturan EFI untuk memungkinkan sistem operasi lain seperti Linux untuk "melihat" pengaturan grafis yang dapat diubah berbeda dari yang di atas yang menonaktifkan dGPU.
Program EFI kecil untuk membuka kunci Intel IGD pada Macbook Pro 11,3 untuk Linux dan Windows:
Program EFI kecil untuk membuka kunci Intel IGD pada Macbook Pro 11,3 untuk Linux dan Windows. Telah dibuat agar mudah di-chainload oleh bootloader EFI yang tidak dimodifikasi seperti Grub, rEFInd dll.
EFI model Macbook Pro 11,3 mematikan GPU Intel jika Anda mem-boot apa pun kecuali Mac OS X. Jadi, sedikit trik dengan memalsukan identifikasi OS diperlukan untuk membuat semua perangkat keras dapat diakses.
Semua kredit adalah milik Andreas Heider yang awalnya menemukan peretasan ini:
https://lists.gnu.org/archive/html/grub-devel/2013-12/msg00442.html