Ubuntu 16.04
Wyjście uname -a
:
Linux HOST 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Klasa komputerowa:
- Procesor: Intel
- GPU: Nvidia z 361,42
Czego chcę:
- procesor graficzny Intel uruchomi serwer xserver i mój monitor, który jest podłączony do wbudowanego DP
- GPU nvidia będzie wykorzystywane wyłącznie do obliczeń specyficznych dla CUDA itp.
- pełna kontrola nad NVIDIA GPU (w czasie rzeczywistym, statystyki, prędkości wentylatora Temps ...)
Mój problem:
- ani
nvidia-smi
nienvidia-settings
pracuję i nie mogę kontrolować mojej karty graficznej NVIDIA (błędy są cytowane dalej)
Moja historia:
Po krótkim podsumowaniu mojego problemu chcę zagłębić się w temat; Od czasu wydania Ubuntu 16.04 majstruję i nie osiągam następujących celów:
- Chcę, aby mój procesor graficzny Intel (i7 6700K) napędzał mój serwer Xserver i wszystko, co było z nim związane.
- Chcę, aby moja dedykowana karta graficzna nvidia była używana tylko do obliczeń opartych na Cuda i tym podobnych.
- Dodam więcej niż jeden procesor graficzny NVIDIA do systemu, po rozwiązaniu problemów.
Krótkie podsumowanie mojego stanu początkowego:
Zainstalowałem zastrzeżone sterowniki dla NVIDIA i Intel (intel-microcode i nvidia-361.42) poprzez apt-get i wyłączony bezpieczny rozruch poprzez mokutul - wyłącz-sprawdzanie poprawności.
Potem ustawiłem nvidia-prime na używanie karty wywiadowczej.
Następnie edytowałem mój xorg.conf, aby zawierał tylko jeden ekran z Intel GPU i sterownikiem Intel. (w razie potrzeby zapytaj o szczegóły)
Testując procesor graficzny do renderowania za pomocą Blendera, wszystko wydawało się w porządku, poza tym, że nie mogłem uzyskać żadnych statystyk mojego GPU, a ustawienia NVIDII wyglądały na puste.
Błędy:
sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
Czego do tej pory nauczyłem się przez wszystkie moje próby i badania od czasu wydania (krótka wersja, pytaj o szczegóły w dowolnym momencie):
Moje dwa problemy są powiązane, ale nie takie same:
Nvidia-settings Pusty:
- dzieje się tak, ponieważ ustawienia te pojawiają się tylko wtedy, gdy Xserver jest podłączony do procesora graficznego nvidia
- rozwiązaniem tego byłoby dodanie nowego ekranu w xorg.conf, który zmusza i nieużywany serwer do uruchamiania na GPU nvidia
- ale obecnie nie jest to możliwe (zobacz inny problem) i niepożądane, ponieważ po prostu chcę, aby procesor graficzny NVIDIA skupił się na Cuda
Nvidia-smi nie działa:
- bbswitch nie jest problemem, ponieważ mój GPU (550ti) go nie obsługuje (błędy w dmesg)
- nvidia prime zmienia wpis dla x86_64-linux-gnu_gl_conf na
/usr/lib/nvidia-361/ld.so.conf
(nvidia GPU wybrana) lub/usr/lib/nvidia-361-prime/ld.so.conf
(wybrana Intel GPU) - w konfiguracji wyboru danych wywiadowczych brakuje istotnych ścieżek do podstawowych modułów NVIDIA, które wszystkie są obecne w conf dla wyboru NVIDII
- po przejściu na nvidię za pomocą wyboru głównego, nie mam Xservera, ponieważ Display jest podłączony do zintegrowanego procesora graficznego, ale logowanie do wirtualnej konsoli nvidia-smi działa
Moje założenie:
- Nvidia prime jest zła i nie chce tego, co chcę.
- Muszę jakoś przezwyciężyć liczbę pierwszą i skonfigurować system (nawet ręcznie pisać nowe konfiguracje?)
Moje próby:
- Próbowałem odinstalować nvidia-prime, ale później zrozumiałem, że to nie działa. Po usunięciu pliku conf dla x86_64-linux-gnu_gl_conf, wynikiem jest czysty bałagan ...
- Próbowałem nawet ręcznie dodać brakujące ścieżki do plików x86_64-linux-gnu_gl_conf, ale tak naprawdę nie wiedziałem, co robię i nie miałem sukcesu.
Moje pytania:
1) Jak mogę rozwiązać problem NVIDIA-SMI? Czy jestem na dobrej drodze? Czy ktoś ma instrukcje, jak mogę postępować?
2) Czy można włączyć kontrolę wentylatora i dalsze sterowanie dla nvidii gpu (coolbits w xorg.conf) bez Xservera na gpu (bez ekranu dla gpu w xorg.conf)?
Ogromne dzięki z góry za wszelkie odpowiedzi. Dosłownie przeczesałem sieć, grzebień jest moim problemem.
Jeśli coś przeoczyłem, powiedz mi i nie wahaj się poprosić o pliki dziennika itp.
DZIĘKI
źródło
Odpowiedzi:
Zaakceptowana odpowiedź wykorzystuje serwer X do włączenia urządzeń Nvidia. Nie jest to konieczne i oznacza, że serwer X zużyje trochę pamięci karty.
Zamiast tego
nvidia-modprobe
należy zainstalować zgodnie z opisem w często zadawanych pytaniach dotyczących sterowników (można je znaleźć pod linkiem poniżej).Więc moim zalecanym rozwiązaniem jest:
1) Zainstaluj najnowszy sterownik Nvidia za pomocą pliku run z ftp://download.nvidia.com/XFree86/Linux-x86_64/ z flagą
--no-opengl-files
i--dkms
.2) Instalacja odpowiadający
nvidia-modprobe
wersji przezmake all
isudo make install
od ftp://download.nvidia.com/XFree86/nvidia-modprobe/--dkms
Flagi zapewnia, że moduł jądra zrekompilowane po aktualizacji jądra.źródło
Ja (twórca tego postu) sam znalazłem rozwiązanie, którego potrzebuję!
Wyjaśnię teraz rozwiązanie każdemu, kto znajduje się w podobnej sytuacji i potrzebuje tej pomocy!
ROZWIĄZANIE:
ZAINSTALUJ STEROWNIK NVIDIA PRZEZ RUNFILE DOSTARCZONY NA http://www.nvidia.com/object/unix.html Z FLAGĄ „--no-opengl-files” !!
Zapobiega to nie tylko zastąpieniu istniejących plików mesa przez pliki nvidia opengl, ale także instaluje sterownik bez nvidia prime !!
Więc wszystkie moje problemy zostały rozwiązane, po prostu instalując sterownik ręcznie, zamiast instalować go z repozytoriów. Pakiet z repozytoriów jest „przyjazny dla Optimusa”, a zatem zawiera wszystkie niepotrzebne kłopoty.
PO DRUGIE
xorg.conf musi zostać rozszerzony o kolejny ekran dla dedykowanych procesorów graficznych, tak aby zawierał / miał wpisy w ustawieniach nvidia.
moje wygląda tak
źródło
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Otrzymałem żądaną konfigurację (ja też tego chciałem;)):
za pomocą
bumblebee
.Ale zanim przejdę do kilku szczegółów, powinienem cię ostrzec, że zmieniając konfigurację ustawień nvidia lub xorg.conf lub nvidia prime, musisz ponownie uruchomić system (być może już wiesz). Brak ponownego uruchomienia może spowodować niespójność systemu.
W mojej konfiguracji nie dotknąłem
xorg.conf
. Robiąc to dla mnie zawsze było źródłem bólu. Pozostaw to w oryginalnym stanie. Jeśli nie chcesz wykonywać nowej instalacji, możesz znaleźć kopie zapasowe w/etc/X11/
(ls /etc/X11/xorg.conf*
).Pierwszym krokiem jest próba wykonania
nvidia-settings
pracy. Jeśli ci się to uda, możesz użyć NVIDIA PRIME, aby przełączyć się na procesor graficzny Intel, jak już wspomniałeś. Posiadanie nvidia prime point do procesora graficznego Intel jest potrzebne, jeśli chcesz używać procesora graficznego NVIDIA tylko do obliczeń CUDA (jest to szczególnie potrzebne, jeśli chcesz korzystać z debuggera cudacuda-gdb
).Następnie możesz spróbować zainstalować trzmiel :
Restart. Możesz monitorować stan trzmiela za pomocą
lub
Trzmiel aktywuje procesor graficzny NVIDIA i próbuje wstawić sterownik nvidia do jądra tylko wtedy, gdy jest to wymagane. Możesz użyć trzmiela, oczekując
optirun
na polecenie, które chcesz uruchomić.Aby trzmiel działał, musiałem ręcznie edytować,
/etc/bumblebee/bumblebee.conf
aby poprawnie ustawić nazwę i ścieżkę sterownika nvidia.Potem, po pewnym czasie
sudo service bumblebeed restart
, udało mi się aktywować system trzmiela.W rzeczywistości
nvidia-smi
powracaale
optirun nvidia-smi
:Mam nadzieję że to pomoże.
źródło
Ponownie zainstalowałem sterowniki NVIDIA bez OpenGL, jak wspomniano w powyższych rozwiązaniach, ale to nie działało dla mnie. Ponadto rozwiązania te są dość niezadowalające, ponieważ implikują usunięcie niektórych możliwości sterowników (opengl).
Znalazłem znacznie prostsze rozwiązanie, dla którego nie trzeba ponownie instalować sterownika:
export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH
Uwaga: w zależności od zainstalowanego sterownika może być konieczne dodanie innego folderu do ścieżki biblioteki, na przykład / usr / lib / nvidia-384 .
Możesz dodać to polecenie do pliku ~ / .bashrc, aby automatycznie eksportować ścieżkę podczas ładowania nowego basha.
źródło
przede wszystkim dla mnie: w Ubuntu 18.04 używam igpu do renderowania i nvidia gpu dla cuda, instaluję domyślne sterowniki nvidia, otwieram ustawienia nvidia i ustawiasz korzystanie z intel gpu. Następnie umieść na czarnej liście nowe sterowniki i część sterowników NVIDIA:
otwórz /etc/modprobe.d/blacklist-nvidia.conf i skomentuj linie w ten sposób:
po tym otwórz /etc/modprobe.d/blacklist-nvidia-nouveau.conf i dodaj te linie:
aby być pewnym, że nowe są wyłączone, możesz umieścić je na czarnej liście w /etc/modprobe.d/blacklist.conf: na końcu dodaj:
następnie uruchom ponownie.
wpisz,
nvidia-smi
aby sprawdzić, czy nvidia jest załadowana, a wpisz,lspci -nnk | grep -iA2 3D
aby sprawdzić, czy używany sterownik to nvidia, a nie nouveau.źródło