Arch Linux NVIDIA 드라이버 설정 및 최적화 가이드
Arch Linux는 유연성과 사용자 정의의 자유로움으로 인기가 많지만, NVIDIA 드라이버 설정은 초보자에게는 다소 복잡하게 느껴질 수 있습니다. 이 가이드는 Arch Linux에서 NVIDIA 그래픽 드라이버를 성공적으로 설치하고 최적화하며, 발생할 수 있는 일반적인 문제를 해결하는 데 필요한 모든 단계를 자세히 설명합니다.
1. NVIDIA 드라이버 설치
1.1. 시스템 업데이트
드라이버 설치를 시작하기 전에 시스템을 최신 상태로 유지하는 것이 중요합니다. 이는 호환성 문제를 방지하고 최신 패키지를 보장합니다.
bash
sudo pacman -Syu
새로운 커널이 설치되었다면 재부팅하는 것이 좋습니다.
1.2. 기본 개발 도구 설치
커널 모듈을 컴파일하는 데 필요한 도구를 설치합니다.
bash
sudo pacman -S base-devel linux-headers
linux-headers는 현재 실행 중인 커널 버전에 맞게 설치해야 합니다. linux-lts 또는 linux-zen과 같은 다른 커널을 사용하는 경우, linux-lts-headers 또는 linux-zen-headers로 대체해야 합니다.
1.3. NVIDIA GPU 식별
어떤 NVIDIA 드라이버를 설치해야 할지 알아보기 위해 GPU 모델을 확인합니다.
“`bash
lspci | grep -i nvidia
또는
nvidia-detect
``nvidia-detect`는 시스템에 적합한 드라이버 패키지를 제안해줍니다.
1.4. NVIDIA 드라이버 선택 및 설치
Arch Linux는 여러 NVIDIA 드라이버 패키지를 제공합니다:
* nvidia: 대부분의 최신 NVIDIA GPU용.
* nvidia-dkms: 커스텀 커널을 사용하거나 커널 업데이트가 잦은 경우 권장됩니다. 커널 모듈을 동적으로 빌드합니다.
* nvidia-390xx (또는 유사한 레거시 드라이버): 구형 NVIDIA 카드용.
RTX 시리즈 카드에는 오픈 소스 커널 드라이버를 사용하는 것이 권장될 수 있습니다.
선택한 드라이버와 함께 nvidia-utils 및 nvidia-settings를 설치합니다.
“`bash
sudo pacman -S nvidia nvidia-utils nvidia-settings
또는 DKMS 버전의 경우:
sudo pacman -S nvidia-dkms nvidia-utils nvidia-settings
“`
1.5. Nouveau 드라이버 블랙리스트
오픈 소스 Nouveau 드라이버는 독점 NVIDIA 드라이버와 충돌할 수 있습니다. nvidia-utils 패키지가 이를 자동으로 처리하는 경우가 많지만, 문제가 발생하면 수동으로 블랙리스트에 추가할 수 있습니다.
/etc/modprobe.d/blacklist-nouveau.conf 파일을 생성하고 다음 내용을 추가합니다:
blacklist nouveau
1.6. DRM 커널 모드 설정 활성화 (KMS)
DRM KMS(Direct Rendering Manager Kernel Mode Setting)는 특히 Wayland 환경에서 NVIDIA 드라이버의 적절한 기능을 위해 중요합니다.
* GRUB 사용자의 경우: /etc/default/grub 파일을 편집하고 GRUB_CMDLINE_LINUX_DEFAULT 라인에 nvidia_drm.modeset=1을 추가합니다. 예시:
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1"
수정 후 GRUB를 업데이트합니다:
bash
sudo grub-mkconfig -o /boot/grub/grub.cfg
* systemd-boot 사용자의 경우: /boot/loader/entries/ 내의 해당 .conf 파일을 편집하고 options 라인에 nvidia_drm.modeset=1을 추가합니다.
필요에 따라 nvidia_drm.fbdev=1 또는 nvidia_drm.fbdev=0을 추가할 수도 있습니다.
1.7. Initramfs 업데이트
부팅 과정에서 NVIDIA 커널 모듈이 일찍 로드되도록 합니다. /etc/mkinitcpio.conf 파일을 편집하고 MODULES 배열에 nvidia, nvidia_modeset, nvidia_uvm, nvidia_drm을 추가합니다.
MODULES=(... nvidia nvidia_modeset nvidia_uvm nvidia_drm)
그 다음 initramfs를 재생성합니다:
bash
sudo mkinitcpio -P
1.8. Pacman 훅 생성 (권장)
NVIDIA 드라이버가 업데이트될 때마다 initramfs가 자동으로 재생성되도록 pacman 훅을 생성하는 것이 좋습니다. /etc/pacman.d/hooks/nvidia.hook 파일을 다음 내용으로 생성합니다:
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia # 또는 nvidia-dkms, nvidia-open 등
Target=linux # 또는 linux-lts, linux-zen 등
[Action]
Description=Updating NVIDIA module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux*) exit 0; esac; done; /usr/bin/mkinitcpio -P'
Target은 설치된 NVIDIA 드라이버 패키지와 커널에 맞게 조정해야 합니다.
1.9. 시스템 재부팅
모든 변경 사항을 적용하려면 시스템을 재부팅해야 합니다.
bash
sudo reboot
1.10. 설치 확인
재부팅 후 다음 명령어를 사용하여 드라이버 설치를 확인합니다:
* NVIDIA GPU 상태 확인: nvidia-smi
* 커널 모드 설정 활성화 확인: cat /sys/module/nvidia_drm/parameters/modeset (출력이 Y여야 함)
* 옵티머스(Optimus) 노트북의 경우: prime-run <command>를 사용하여 NVIDIA GPU에서 애플리케이션을 실행할 수 있습니다.
2. NVIDIA 드라이버 최적화
2.1. 시스템 최신 상태 유지
정기적인 업데이트는 최신 드라이버 버그 수정과 성능 향상을 보장합니다.
2.2. 성능 지향 커널 사용
linux-zen과 같은 성능 지향 커널을 설치하여 게임 성능을 향상시킬 수 있습니다.
bash
sudo pacman -S linux-zen linux-zen-headers
새로운 커널 설치 후에는 부트로더 구성을 업데이트해야 합니다.
2.3. GameMode 활성화
Feral Interactive의 GameMode는 게임 중 시스템 성능을 최적화할 수 있습니다.
bash
sudo pacman -S gamemode
systemctl --user enable gamemoded
systemctl --user start gamemoded
2.4. Xorg 성능 구성 (선택 사항)
최신 시스템에서는 xorg.conf 파일이 필수는 아니지만, 특정 최적화를 위해 사용될 수 있습니다.
* 기본 구성 생성:
bash
sudo nvidia-xconfig
생성된 파일을 Xorg 구성 디렉토리로 이동합니다:
bash
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.d/20-nvidia.conf
* 화면 찢어짐 방지 (Screen Tearing): /etc/X11/xorg.conf.d/20-nvidia.conf 파일의 Section "Screen"에 다음 옵션을 추가합니다:
Option "ForceCompositionPipeline" "On"
Option "ForceFullCompositionPipeline" "On"
* Coolbits 활성화 (오버클럭/팬 제어): nvidia-settings를 통한 오버클럭 및 수동 팬 제어를 위해 Section "Device"에 Option "Coolbits" "X"를 추가합니다. X 값은 일반적으로 28이며, 팬 속도 및 오버클럭을 활성화합니다. DRM KMS 활성화 시 오버클럭이 비활성화될 수 있다는 점에 유의하십시오.
* 트리플 버퍼링 (Triple Buffering): 화면 찢어짐을 줄이고 프레임 페이싱을 개선하기 위해 Section "Screen"에 Option "TripleBuffer" "on"을 추가할 수 있습니다.
2.5. 다이내믹 부스트 (Dynamic Boost)
NVIDIA Ampere(또는 그 이후) GPU를 사용하는 노트북의 경우, nvidia-powerd를 활성화하여 CPU와 GPU 간의 동적 전력 관리를 허용함으로써 GPU 집약적인 작업의 성능을 향상시킬 수 있습니다.
bash
sudo pacman -S nvidia-powerd
sudo systemctl enable nvidia-powerd
sudo systemctl start nvidia-powerd
2.6. 드라이버 지속성 (Driver Persistence)
NVIDIA는 드라이버 지속성을 위한 데몬을 제공하며, 특정 시나리오에서 유용할 수 있습니다.
2.7. 병목 현상 모니터링
nvidia-smi를 사용하여 GPU 사용량, 온도, 메모리를 모니터링하면 성능 병목 현상을 식별하는 데 도움이 됩니다.
2.8. Wayland 특정 사항
Wayland를 사용하는 경우, DRM 커널 모드 설정이 일찍 활성화되어 있는지 확인해야 합니다. GDM과 같은 디스플레이 관리자는 적절한 기능을 위해 nvidia-resume.service를 활성화해야 합니다.
bash
sudo systemctl enable nvidia-resume.service
2.9. 하이브리드 그래픽 (NVIDIA Optimus)
내장 그래픽과 NVIDIA GPU가 모두 있는 노트북의 경우, nvidia-prime 또는 optimus-manager 설치를 고려하십시오. optimus-manager는 내장, NVIDIA 또는 하이브리드 모드 간에 전환할 수 있도록 합니다.
bash
sudo pacman -S optimus-manager
optimus-manager --switch nvidia 명령으로 NVIDIA 모드로 전환할 수 있습니다.
3. 일반적인 문제 해결
-
부팅 실패 / 검은 화면:
- 커널 매개변수에
nvidia_drm.modeset=1이 올바르게 설정되어 있는지 다시 확인하십시오. - Nouveau가 올바르게 블랙리스트 처리되었는지 확인하십시오.
- 드라이버 설치 및 커널 매개변수 변경 후 initramfs가 재생성되었는지 확인하십시오.
- 커널 매개변수에
-
Xorg 로드 실패 / 죽음의 빨간 화면:
- 이는 종종 Xorg 구성 문제임을 나타냅니다. 사용자 정의
xorg.conf파일을 제거하여 Xorg가 기본 설정으로 시작할 수 있는지 확인하십시오. - 여러 GPU(예: 내장 그래픽 및 NVIDIA)가 있는 경우, Xorg가 “no screens found” 오류와 함께 실패할 수 있습니다. discrete 카드의
BusID를 X 구성에 명시적으로 추가해야 할 수 있습니다.lspci -d ::03xx를 사용하여BusID를 찾으십시오 (예:01:00.0은 십진수로PCI:1:0:0이 됩니다).
- 이는 종종 Xorg 구성 문제임을 나타냅니다. 사용자 정의
-
Modprobe Error: "Could not insert 'nvidia': No such device":- 이 오류는 일반적으로 설치된 NVIDIA 드라이버 버전이 현재 커널 또는 GPU와 호환되지 않음을 의미합니다. 하드웨어 및 커널에 맞는 올바른
nvidia또는nvidia-dkms패키지가 설치되어 있는지 확인하십시오.
- 이 오류는 일반적으로 설치된 NVIDIA 드라이버 버전이 현재 커널 또는 GPU와 호환되지 않음을 의미합니다. 하드웨어 및 커널에 맞는 올바른
-
절전 모드에서 복귀하지 않음:
- 커널 매개변수에
nvidia_drm.modeset=1이 설정되어 있는지 확인하십시오. - Wayland를 사용하거나 문제가 발생하는 경우
nvidia-resume.service를 활성화하십시오.
- 커널 매개변수에
-
화면 찢어짐 (Screen Tearing):
- 최적화 섹션에 설명된 대로 Xorg 구성에
Option "ForceCompositionPipeline" "On"또는Option "ForceFullCompositionPipeline" "On"을 구현하십시오.
- 최적화 섹션에 설명된 대로 Xorg 구성에
결론
Arch Linux에서 NVIDIA 드라이버를 설정하고 최적화하는 것은 몇 단계를 거쳐야 하지만, 올바른 지침을 따르면 원활한 경험을 할 수 있습니다. 이 가이드가 여러분의 시스템에서 NVIDIA GPU의 잠재력을 최대한 발휘하는 데 도움이 되기를 바랍니다. 문제가 발생하면 Arch Linux Wiki와 커뮤니티 포럼에서 추가적인 지원을 받을 수 있습니다.