NVIDIA-PRIME: Intel'e geçemez


10

Ne zaman gpu'mdan (gtx 1060) igpu'ma (Intel 530) geçsem önyükleme yapamıyorum. Yükleme ekranı aşağıdaki mesajla sıkışmış:

[Başarısız] NVIDIA Persistence Daemon başlatılamadı. Ayrıntılar için bkz. 'Systemctl status nvidia-persistenced.service'.

Ancak, Nvidia gpu'ya geri döndüğümde ve yeniden başlatmadan igpu'ma geçiş yaptığımda önyükleme yapabilirim. Kubuntu 16.10 kullanıyorum ve sadece dahili dizüstü bilgisayar ekranımı kullanıyorum. İgpu'ma geçiş yaptığımda çıktı:

sudo prime-select intel
Info: the current GL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: the current EGL alternatives in use are: ['nvidia-378', 'nvidia-378']
Info: selecting nvidia-378-prime for the intel profile
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378-prime/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

sudo prime-select nvidia
Info: the current GL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: the current EGL alternatives in use are: ['nvidia-378-prime', 'nvidia-378-prime']
Info: selecting nvidia-378 for the nvidia profile
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
update-alternatives: using /usr/lib/nvidia-378/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in manual mode

Lspci -k sonucu | grep -EA2 'VGA | 3D'

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
        DeviceName:  Onboard IGD
        Subsystem: CLEVO/KAPOK Computer HD Graphics 530
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060] (rev a1)
        Subsystem: CLEVO/KAPOK Computer Device 6a03
        Kernel driver in use: nvidia

Bu sorunu bir haftadan fazla kendi başıma çözmeye çalıştım ve ne yapacağımı bilmiyorum. Denediğim her şey başarısız oldu.

Lütfen bana yardım eder misiniz?

GÜNCELLEME 5.2.2017:

Bugün tekrar test ettim ve intel gpu'ya geçmenin 375 ve 378 ile hiç çalışmadığını fark ettim. Oturumu kapatmak ekranı dondurur. Peki neden bir kez çalıştı? Eski sürücüleri sildikten ve daha sonra prime-select intel (yeniden başlatma olmadan!) Kullandıktan sonra tüm sürücüleri tekrar yüklersem, prime-select asal profilleri güncellemez -> Eski nvidia olmayan profillerden birini seçer (mesa profilleri yerine nvidia) ve işe yarıyor. Ancak bir nvidia profiline geçer veya yeniden başlattığımda, ana profiller güncellenir ve artık çalışmaz. Yani sanırım intel gpu için EGl alternatiflerinde bir sorun var mı? Rahatsızlık için özür dileriz.

12.2.2017 GÜNCELLEME:

Dün, nvidia-prime yazılımını değiştirdim ve hatayı düzelttim. Yakında (muhtemelen gelecek hafta) değiştirilmiş sürümümü yayınlayacağım ve buraya bir bağlantı yapıştıracağım, ancak yine de bir sorunla karşılaşıyorum: yürüttükten sonra bilgisayarımı kapattığımda sudo prime-select intel:

ksmserver kilitleniyor (Kubuntu kullanıyorum, muhtemelen Ubuntu ile ilgili bir sorun değil)

-> PC tamamen kapanamıyor ve Intel GPU için eski (yanlış) güncelleme alternatifleri geri yüklendi

-> Önyükleme yapamıyorum.

Ancak, sudo prime-select intelkurtarma modunda kapatıldıktan sonra çalışırsam her şey yolunda gider ve Intel GPU'yu kullanabilirim.

GÜNCELLEME 17.2.2017:

Geçici çözümümü yayınladım ve hala resmi Depolardaki Hatayı düzeltmeye çalışıyorum. Ancak, bu muhtemelen güncelleme alternatiflerinde bir Hata, bu yüzden orada bir hata raporu yayınlamalıyım.

Bu arada, geçici çözümümün tadını çıkarın! Umarım senin için de çalışır. Herhangi bir sorunuz varsa lütfen yorum bırakın.

GÜNCELLEME 26.2.2017

@Whizzzkid'in işaret ettiği gibi, nvidia grafik kartı yamamı uyguladıktan sonra hala aktif. Ancak bugün bu sorunu çözebildim. Muhtemelen cevabımı gelecek hafta 2. yamamı içerecek şekilde güncelleyeceğim. İşte yaptığım bazı testler:

Nvidia: 43-45W

Intel (nvidia açık): 29-31W

Intel (nvidia kapalı): 15-17W


Lütfen sorunuzu düzenleyin ve lspci -k | grep -EA2 'VGA|3D' terminal komutunun çıktısını ekleyin .
Pilot6

Oh, görüyorum ki 10xx mmobil olsa bile sonunda yok .
Pilot6

Muhtemelen nvidia-primehenüz bunları desteklemiyor.
Pilot6

İlginç olan, yeniden başlatmadığım sürece işe yaraması. Oturumu kapatıp tekrar giriş yaparsam igpu kullanabilirim. Ama yeniden başlattığımda artık çalışmıyor. Ve Nvidia gpu çalışıyor ve sürücü tarafından destekleniyor.
C11235

1
Güç kullanımını izlemek için powertop kullandım. Yalnızca pili güç kaynağı olarak kullanırsanız güç tüketimini gösterir. Daha fazla bilgi için bu soruya veya kılavuz sayfasına bakınız .
C11235

Yanıtlar:


3

İşte benim hata düzeltme / geçici çözüm:

Eğer nvidia-prime yerine yaban arısı kullanmak istiyorsanız, aşağıdaki @whizzzkid tarafından verilen cevaba bir göz atın .

Kubuntu 16.10 64-bit ile KDE Plazma Sürüm.7.5 ve KDE Frameworks Sürüm 5.26.0 kullanılarak test edilmiştir . Aşağıdaki adımlar benim için işe yarıyor. Umarım sizin için de çalışırlar, ancak bunu garanti edemem ve yapmazlarsa hiçbir sorumluluk kabul edemem. Ama bir yorum bırakırsanız size yardımcı olmaktan memnuniyet duyarız.

Benim durumumda sorun, güncelleme alternatifi / usr / lib / nvidia-XYZ-prime / 'ın hiç çalışmadığıydı. Intel-mesa sürücüsüne çağrıları yönlendirmesi gerekiyordu, ancak bir nedenden ötürü olmadı. Sonuçta muhtemelen güncelleme alternatiflerinde bir hata mı? Güncelleme alternatifleri için bir hata bildirmek için hala bir yer bulamadım. Bana yardımcı olabilirseniz lütfen yorum yapın.

Temel olarak nvidia-prime'ı, güncelleme seçeneklerini alternatif olarak / usr / lib / nvidia-XYZ-prime / yerine intel-mesa sürücüsüne değiştirmek için biraz değiştirdim.

Önemli:

Bu adımlardan herhangi birini uygulamadan önce PC'nizdeki kurtarma moduna nasıl erişeceğinizi bildiğinizden emin olun. Bu kılavuz nedeniyle artık önyükleme yapamıyorsanız, kurtarma modundaki değişiklikleri yine de bu kılavuzun son bölümündeki komutlarla geri alabilirsiniz. Daha fazla bilgi için kurtarma moduna nasıl erişileceği hakkında bu web sitesine bakın .

Eğer bir kullanıyorsanız 32 bit işletim sistemi varsa, içeren tüm komutları dışında bırakmak zorunda x86_64 içinde 4. Adım ve bölümdeki tüm bu değişiklikleri nasıl geri alınır .


Aşama 1:

Yamamı aşağıdaki cevabında @whizzzkid tarafından sağlanan kolay bir yöntem kullanarak yükleyin:

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Adım 2:

Intel modundaki güç tüketimini azaltmak için ikinci yamamı uygulayın:

Hangi nvidia-sürücü sürümüne sahip olduğunuzu kontrol edin. Örneğin aşağıdaki komutla:

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module  378.13  Tue Feb  7 20:10:06 PST 2017
GCC version:  gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12)

Bu durumda nvidia-XYZ, nvidia-378'dir. Bu Stackoverflow iş parçacığına bakın .

Örneğin poweroff.sh adlı aşağıdaki içerikleri içeren bir bash dosyası oluşturun

#!/bin/bash
line=$(</etc/prime-discrete)
if [ "$line" == "off" ] 
   then
   rmmod nvidia-drm
   rmmod nvidia-modeset
   rmmod nvidia
   bash -c 'echo OFF > /proc/acpi/bbswitch'
fi 

Örneğin poweron.sh adlı aşağıdaki içerikleri içeren ikinci bir bash dosyası oluşturun ve XYZ yerine nvidia sürücü sürüm numaranızla değiştirin.

#!/bin/bash
modprobe nvidia-XYZ
modprobe nvidia-XYZ-modeset
modprobe nvidia-XYZ-drm
modprobe nvidia-XYZ-uvm
echo ON > /proc/acpi/bbswitch

Intel modunda, sudo ile giriş yaptıktan sonra ilk komut dosyasını ve sudo ile çıkış yapmadan önce ikinci komut dosyasını çalıştırmanız gerekir (aksi takdirde dizüstü bilgisayarım muhtemelen benim durumumda olduğu gibi çökecektir). Sadece onları idam ediyorum sudo bash FILENAME.

Şimdiye kadar, girişte ve çıkıştan önce bu komut dosyalarını otomatik olarak kök olarak otomatik olarak başlatamadım. Ancak, @ Fiximan'ın işaret ettiği gibi, uptart ile mümkün olabilir . Bunu yapmayı başarırsam, bu cevabı gelecekte tekrar güncelleyebilirim.


(muhtemelen) KDE Plazma ile ilgili hatalar:

Hala KDE Plazma'da düzeltemediğim bir hata var: PC'yi nvidia modunda başlattıktan sonra Nvidia'dan Intel'e her geçiş yaptığımda, ksmserver çöküyor ve PC kullanılamaz hale getiriliyor, tuşuna basarak kapatmam gerekiyor güç düğmesini yaklaşık 5-10 saniye basılı tutun. Bu bazen güncelleme alternatiflerinin başlangıçta siyah ekrana yol açan intel-mesa yerine nvidia-prime olarak değiştirilmesine yol açar .

Eğer ksmserver hatalarından etkilenirseniz, lütfen bugs.kde.org adresindeki resmi hata raporuna katkıda bulunun .

Ancak, bu sorun PC kapatma olmayacak önlenebilir daima kapatma önce istihbarat-modunu seçerek sen nvidia-modunu kullanmak bile,. Bunu yaparsanız, her şey ilk etapta olması gerektiği gibi çalışır ve bu kılavuzu nvidia modunda uygulamanız haricinde güç düğmesine uzun süre basarak bilgisayarınızı kapatmanız gerekmez.

Başlangıçta siyah ekran hatası için basit bir çözüm, çalışmayan güncelleme alternatiflerini tamamen kaldırmaktır:

Aşama 1:

Kurtarma moduna girdikten sonra root komut kabuğunu seçip aşağıdaki 2 komutu uyguladıktan sonra PC'nize tekrar erişebilirsiniz:

mount -o remount,rw /
prime-select nvidia

Adım 2:

Aşağıdaki komutları yürütün:

sudo update-alternatives --remove i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf
sudo update-alternatives --remove x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf

Tüm bu değişiklikler nasıl geri alınır?

Aşağıdaki komutları uygulamanız yeterlidir:

sudo rm /usr/bin/prime-select
sudo mv /home/YOUR-USERNAME/prime-select.backup /usr/bin/prime-select
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_GL.conf i386-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf i386-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/alt_ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf x86_64-linux-gnu_gl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603
sudo update-alternatives --install /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf x86_64-linux-gnu_egl_conf /usr/lib/nvidia-XYZ-prime/ld.so.conf 8603

1
Cevabımı aşağıdan kontrol edin.
whizzzkid

Hey dostum, bunun için çok teşekkürler! Ben senin poweroff betiğini çalıştırdığımda, benim com sadece (oturumdan önce) kilitleniyor. Başka bir düzeltme var mı?
Wboy

Ne yazık ki, başka bir düzeltme bilmiyorum. Bu benim durumumda işe yarıyor. Sorunum da yazdığım gibi benim durumumda ortaya çıkıyor, ama sadece ilk defa. Yazdığım gibi, çıkış yapmadan önce Intel'e geri dönmeniz gerekiyor. Sonra bu hata oluşmaz. (En azından benim durumumda).
C11235

Merhaba @ C11235 Düzeltme için teşekkürler. Size bir şey sormak istiyorum: Varsayılan olarak nvidia sürücüsünü ilk kez yüklediğimde nvidia'da ayarlanır. O zaman betiği ne zaman çalıştırmalıyım? ve root olarak giriş yapmak ne demek?
Glats

Maalesef cevabımın bu kısmı biraz belirsizdi. Ben oturum açmak ve daha sonra komut dosyası (örneğin sudo ile) çalıştırmak anlamına geliyordu. Yeni oturum açtığınızda ve zaten intel moduna geçtiğinizde komut dosyasını çalıştırmalısınız. Bu dönüşler, nvidia GPU'yu geçici olarak tamamen devre dışı bırakır. İkincisi intel modda oturumu kapatmadan önce yürütülmelidir.
C11235

2

@ C11235 tarafından yapılan yama çalışır, şimdi nvidia ve intel arasında geçiş yapabilirim, ancak bu güç tüketimini azaltmaz. : - / yani her ikisi de hala çalışıyor.

BTW bunu yapmanın daha kolay bir yoludur.

cd /usr/bin
sudo mv prime-select prime-select.bkup
sudo wget https://raw.githubusercontent.com/C11235/nvidia-prime-bugfix/master/prime-select
sudo chmod 755 prime-select

Teşekkür ederim! Maalesef haklısın, güncellenmiş soruma bakın. Cevabımı daha kolay kurulum yönteminizi içerecek şekilde güncelleyebilir miyim?
C11235

@ C11235 oh evet eminim. Tüm bunları anlayabildim: gist.github.com/whizzzkid/37c0d365f1c7aa555885d102ec61c048 Şu anda boşta 5.8W çalıştırıyorum.
whizzzkid

Tamam bu harika! Talimatlarınızı kontrol ettim ve düşük güç tüketiminin nedeni benim durumumla aynı. Başbakan seçimi intel modunu değiştirdiyse, nvidia GPU'yu devre dışı bırakmak için bbswitch kullanan bir komut dosyası yazdım. Benim durumumda bu daha uygundur, çünkü harici bir monitöre sahibim ve neredeyse sadece nvidia modunu kullanıyorum, bu yüzden yaban arısı yerine nvidia-prime kullanmak istedim. Ek olarak, nvidia-prime kullanıldığında performansın yaban arısı kullanımından daha iyi olduğu varsayılmaktadır.
C11235

2

Intel video kartına geçtikten sonra önyükleme yapmama çözümü:
Çekirdek önyükleme parametreleri ekleyin:

acpi_osi=! acpi_osi="Windows 2009"

Bu sorunun nedeni: hata # 156341 çekirdekte
Çözüm kaynak: bağlantı

biraz daha ayrıntılı, anlaşılması daha kolay olabilir:

sudo echo -e "GRUB_CMDLINE_LINUX_DEFAULT='acpi_osi=! acpi_osi='Windows 2009''"  | sudo tee -a /etc/default/grub
sudo update-grub

Mevcut haliyle cevabınız olabildiğince iyi değil. İncelemek Could İyi Cevap yaz nasıl ve cevabınızı genişleyen düşünün
J. Starnes

bu benim için gerçekten işe yaradı, ancak cevap geliştirilebilir. Ben iyileştirme önereceğim
Vladyslav Matviienko

1

2. Düzeltme ile ilgili olası sorun: "poweroff" komut istemlerinin son komutu

    bash: /proc/acpi/bbswitch: No such file or directory

Görünüşe göre, Intel modunda yeniden başlattığımda (Modun değiştirilmesi yeniden başlatılana kadar etkili olmaz, bunun normal olup olmadığını bilmiyorum), bbswitch-Module yüklenmez. Yani bbswitch dosyası ve nvidia GPU'yu kapatmanın bir yolu yoktur.

Kullanıyorum:

  • MSI-Dizüstü Bilgisayar (GL72 7RDX)
  • Tümleşik GPU: Intel® HD Grafik Kartı 630 (Kaby Lake GT2)
  • ayrı GPU: Geforce GTX 1050
  • İşletim Sistemi: Ubuntu 16.04 lts

Bu sorunun çözümü:

/ Etc / module dosyasını düzenleyin (kök ayrıcalıklarıyla) ve satırı ekleyin

    bbswitch

Şimdi bbswitch Intel modunda önyükleme yaptığımda bile çalışıyor ve C11235'in ikinci düzeltmesi gayet iyi çalışıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.