사용자 도구

사이트 도구


linux:nvidia

Linux Nvidia Graphic Card

Ubuntu Nvidia 최신 드라이버

nvidia-settings 에서 xorg.conf 저장 안 될 때

  • /usr/share/screen-resolution-extra/nvidia-polkit 파일에 실행 권한이 없어서 /etc/X11/xorg.conf 파일 생성을 못하기도 한다.
Error executing /usr/share/screen-resolution-extra/nvidia-polkit: Permission denied
ERROR: Unable to open X config file '/etc/X11/xorg.conf' for writing.
  • 다음과 같이 실행권한을 추가하면 된다.
sudo chmod +x /usr/share/screen-resolution-extra/nvidia-polkit

Screen tearing

Screen Tearing 이 발생할 때의 동영상에 나타나는 느낌

  • nvidia 사용시에 화면 갱신시 찦어지는 듯한 현상이 나타나서 눈을 아프게 할 수 있다.
  • 단, Screen Tearing 을 방지할 경우에는 Video 성능이 떨어질 수 있다. 안 좋은 비디오 카드에서는 성능 저하를 경험할 수 있다.
  • Wayland 에서는 이 현상이 해결 됐다고 한다.
  • Xorg 사용시에 저 현상이 발생한다면 nvidia xorg.confOption “ForceFullCompositionPipeline” “true” 혹은 Option “ForceCompositionPipeline” “true”가 필요하다.
  • 이는 nvidia-settings에서 해당 옵션을 선택하고 xorg.conf를 저장하는 것만으로도 해결 가능하다.

nvidia-settings save xorg.conf

  • 단, 이 때 Laptop 등에 PRIME Display 가 있을 경우 PRIME display 에 대해서는 nvidia-settings가 저장을 안 해줘서 사용할 수 없는 문제가 발생했다.
  • 가장 좋은 해결책은 화면 자체를 저장하는게 아니라 nvidia 드라이버에 대한 설정만 저장하는 것이었다.

부팅/로그인 후 자동 명령 실행으로 해결

  • 아래 명령을 ~/.config/autostart로 등록한다.
nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"

X11 설정 파일 변경으로 해결

  • /etc/X11/xorg.conf.d/99-nvidia-myoptions.conf 파일을 생성하고서 아래 내용으로 저장하고 재부팅한다.
  • 이제 다시 Screen Tearing 테스트를 해본다. ForceFullCompositionPipeline 대신 ForceCompositionPipeline로도 충분하면 이를 사용해도 된다.
Section "OutputClass"
    Identifier "nvidia"
    MatchDriver "nvidia-drm"
    Driver "nvidia"
    Option "ForceCompositionPipeline" "true"
    #Option "ForceFullCompositionPipeline" "true"
EndSection

참조

nvidia/intel dual 에서 intel 로만 강제하기

GPU Monitoring

''nvidia-smi''

# 잘 정리된 현 상황을 지속적으로 보여줌.
nvidia-smi -q -g 0 -d UTILIZATION -l 1
 
nvidia-smi -l 1

Multi/Dual Graphic Card

  • 동일 nvidia 계열의 그래픽 카드를 여러개 설치했다면, 그래픽 카드 정보를 /etc/X11/xorg.conf에 기록하고
    #  -a, --enable-all-gpus
    sudo nvidia-xconfig -a
  • 재부팅하고,
  • nvidia-settings 명령을 통해 그래픽 카드별 모니터 설정을 하고,
  • 재부팅한다.
  • 참조

nvidia/intel switch

# Ubuntu 22.10 에서는 별도 패키지 설치 필요.
sudo apt install nvidia-prime 
# 현재 사용중인 그래픽 카드 프로필 확인
prime-select query
 
# intel 로 전환
sudo prime-select on-demand
 
# intel 로 전환
sudo prime-select intel
 
# nvidia 로 전환
sudo prime-select nvidia
 
# 재부팅 필요.
sudo reboot
  • intel 모드 사용시 외부 모니터 연결에 대한 인식률이 떨어지는 현상이 발생했음.(nvidia 455 드라이버)
  • 또한 on-demand, intel 일 경우 4k Dual Monitor 로 사용할 때 성능저하가 너무 심했음(60Hz로 해도). nvidia 모드로 했더니 4K Dual 도 잘작동했음.
  • on-demand 일 경우에 vaapi 가 작동했음.

Xinerama

  • Nvidia 드라이버에 따라 Xinerama가 안될 수 있으므로 다양한 버전 시도. NVS 310, GeForce 8500 GT 그래픽 카드 사용시 304 버전에서 성공했음
  • 2014 현재 최신 nvidia 드라이버는 버그 때문에 오히려 xinerama가 안된다고 한다.
  • 한 그래픽 카드에 여러 모니터가 달렸을 경우에 모니터 별로 Xscreen 번호를 다르게 가져가야 창 확대시 모니터를 넘나들지 않게 된다.
    • 모든 모니터에 대해 Xinerama를 켜주고
    • Resolusion을 모두 직접 지정해줄 것.(Auto로 두지 말 것)
  • Xinerama를 하지 않으면 그래픽 카드가 달라질 때 DISPLAY도 달라져서 창을 모니터 단위로 옮겨 다닐 수 없다.
  • 주의
    • Composition(합성)이 작동하지 않으므로 Composition 기능을 모두 끈다.
    • Google Chrome의 경우 --disable-cpu명령으로 실행하거나, chrome://flags에서 GPU composition on all pages로 설정할 수 있다.
    • Flash Player에서도 하드웨어 가속을 꺼야 한다. Linux Flash 참조.

envycontrol

  • EnvyControl is a program aimed to provide an easy way to switch GPU modes on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations) under Linux.

부팅 후 화면이 안나오거나 성능이 저하될 때

오래된 정보. 최근에 발생한적 없었음.
  • NVIDIA 그래픽 카드가 작동하지 않거나 성능이 안나오면 linux kernel 파라미터에 nomodeset 설정을 넣어야 한다.

Grub 설정에서

  • /etc/default/grub 파일
    GRUB_CMDLINE_LINUX_DEFAULT="기타내용... nomodeset"
  • sudo update-grub

부팅하면서 Grub 메뉴에서

  • 부팅할 커널에서 e를 눌러 편집모드로 가서 linux /boot/vmlinuz-linux …. 로 시작하는 줄의 맨 끝에 추가
    linux /boot/vmlinuz-linux ..... quiet splash nomodeset
  • 부팅 진행
linux/nvidia.txt · 마지막으로 수정됨: 2023/07/19 17:01 저자 kwon37xi