• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
가이드

Proxmox LXC에 1060 passthrough 하기

DarkAcid 215

1

0

NVIDIA GPU Passthrough in Proxmox LXCs • clait.sh

안녕하세요 항상 제가 무서워하는 proxmox 업데이트 시간이 왔습니다 :) tteck의 스크립트를 사용한 기존의 Plex는 업데이트만 돌리면 gpu passthrough가 풀렸거든요...풀리기만하면 문제 없지만 제대로 다시 잡아줘도 Plex로 트랜스코딩이 안되는 문제가 있었습니다. 이제 tteck에서 7.4는 스크립트 지원을 하지 않기 때문에 죽더라도 업데이트를 해줘야 할 때가 오고 만겁니다. 

 결론만 이야기하자면 이번 업데이트에서 무엇이 바뀌었는지 모르지만 8.1로 업데이트가 성공적이었습니다. GPU Passthrough는 풀리고 다시 설정해줘야 했지만 nvidia-smi으로 plex 트랜스코딩을 확인했습니다.

 

제가 참고한 가이드는 위에 링크를 걸어뒀습니다.

개요

  1. 호스트 준비하기 (Proxmox shell)
    •  필수 패치지 설치하기
      • apt install pve-headers dkms 
      • nano /etc/default/grub 
      • GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt" 와 같이 grub 수정하기
      • 팁. 인텔은 intel_iommu=on으로 변경해주세요
      • Grub 변경사항 반영GRUB수정
    • GRUB 반영
      • update-grub2 
    • 시스템 GPU 블랙리스트
      • echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
        echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
        echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf 

         

    • /etc/modules을 수정하기
      • nano /etc/modules 
      • 추가
      • vfio
        vfio_iommu_type1
        vfio_pci
        vfio_virqfd 
    • 저장하고 Initramfs 업데이트
      • update-initramfs -u -k all 
    • 호스트 재부팅 (헤놀은 웹GUI 에서 미리 종료해주셔야합니다)
    • 엔당 드라이버를 받아줍니다. (NVIDIA Drivers) 직접다운하시려면 wget으로 원하시는 드라이버를 지정하시면 됩니다. 다운로드를 한번 누르시면 Agree&Download의 링크를 사용하셔야합니다.
      • wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.67/NVIDIA-Linux-x86_64-550.67.run 
    • 실행가능하게 다운받은 파일을 설정해줍니다.
      • chmod +x NVIDIA-Linux-* 
    • 설치합니다
      • ./NVIDIA-Linux-x86_64-535.113.01.run 
    • 호스트 재부팅 (헤놀은 웹GUI 에서 미리 종료해주셔야합니다)
    • 쉘에서 드라이버가 정상적으로 작동하는지 확인해줍니다.
      • ./NVIDIA-Linux-x86_64-535.113.01.run 
    • NVIDIA ID를 체크해줍니다.
      • ls -al /dev/nvidia* 
    • 아래와 비슷한화면이 나오면 5번째줄에 숫자들을 기억해주세요
      • root@nugget:~# ls -al /dev/nvidia*
        crw-rw-rw- 1 root root 195,   0 Oct 30 12:32 /dev/nvidia0
        crw-rw-rw- 1 root root 195, 255 Oct 30 12:32 /dev/nvidiactl
        crw-rw-rw- 1 root root 509,   0 Oct 30 12:32 /dev/nvidia-uvm
        crw-rw-rw- 1 root root 509,   1 Oct 30 12:32 /dev/nvidia-uvm-tools
        
        /dev/nvidia-caps:
        total 0
        drwxr-xr-x  2 root root     80 Oct 30 12:32 .
        drwxr-xr-x 20 root root   4580 Oct 30 14:07 ..
        cr--------  1 root root 235, 1 Oct 30 12:32 nvidia-cap1
        cr--r--r--  1 root root 235, 2 Oct 30 12:32 nvidia-cap2 
    • 195, 255,509 그리고 235를 적어둡니다. (저는 업데이트하면서 이부분이 변경되었습니다.)
  2. LXC 컨테이너 셋업
    • tteck를 사용해서 미리 Plex를 세팅하셨으면 좋습니다.
    • LXC 설정파일을 변경해줍니다 (/etc/pve/lxc/xxx.conf)
    • 아래 설정을 추가해줍니다.
      • lxc.cgroup2.devices.allow: c 195:* rwm
        lxc.cgroup2.devices.allow: c 235:* rwm
        lxc.cgroup2.devices.allow: c 255:* rwm
        lxc.cgroup2.devices.allow: c 509:* rwm
        lxc.mount.entry: /dev/nvidia0 /dev/nvidia0 none bind,optional,create=file
        lxc.mount.entry: /dev/nvidiactl /dev/nvidiactl none bind,optional,create=file
        lxc.mount.entry: /dev/nvidia-modeset /dev/nvidia-modeset none bind,optional,create=file
        lxc.mount.entry: /dev/nvidia-uvm /dev/nvidia-uvm none bind,optional,create=file
        lxc.mount.entry: /dev/nvidia-uvm-tools /dev/nvidia-uvm-tools none bind,optional,create=file 
    • LXC를 시작합니다. 
    • 엔당 드라이버를 받아줍니다. (NVIDIA Drivers) 직접다운하시려면 wget으로 원하시는 드라이버를 지정하시면 됩니다. 다운로드를 한번 누르시면 Agree&Download의 링크를 사용하셔야합니다.
      • wget https://us.download.nvidia.com/XFree86/Linux-x86_64/550.67/NVIDIA-Linux-x86_64-550.67.run 
    • LXC 내부에서의 설치는 --no-kernel-modules를 붙여서 설치합니다.
      • ./NVIDIA-Linux-x86_64-535.113.01.run --no-kernel-modules 
    • nvidia-smi로 체크해줍니다.

제 경험으로는 플랙스에서 hw가 나오면 대부분 하드웨어 트랜스코딩을 해주고 있다고 보시면 됩니다!

신고공유스크랩
0

DarkAcid
31Lv. 20197P
다음 레벨까지 283P

서버운영 초보

메인컴퓨터: 5800x/x570itx/16G/1080evga se

서버컴퓨터1: Proxmox/2700x/B450m/24GB/1060 msi 3gb

- Plex, Docker, Pihole, Xenology, Home Assistant

서버컴퓨터2: Proxmox/2400G/B450ITX ASUS/16GB

- Xenology, Canvas, Window

 

클라우드

Oracle: Zerotie, Vultr: Pritunl, AWS: 미디어 프로덕션

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 제목 글쓴이 날짜 조회 추천
오픈소스 개인 구독 추적기 Wallos 7 달소 2일 전23:26 323 +2
/var/www 폴더가 삭제되었습니다. ㅜ,.ㅜ 2 니속사정 4일 전20:42 289 +1
jellyfin 자원 진짜 안쓰네요 1 kmw_ 4일 전19:26 442 +1
3712
image
달소 24.05.01.22:22 448 +3
3711
image
ljr10 24.05.01.08:20 197 0
3710
image
달소 24.05.01.06:46 236 +1
3709
image
달소 24.04.26.19:06 170 0
3708
image
달소 24.04.26.18:33 314 +1
3707
image
달소 24.04.26.18:09 401 0
3706
image
달소 24.04.26.17:40 346 +2
3705
image
달소 24.04.25.23:10 182 +1
3704
image
달소 24.04.25.22:54 145 0
3703
image
달소 24.04.25.07:24 422 0
3702
file
펜타네스트 24.04.15.18:39 337 +1
3701
image
달소 24.04.11.23:10 760 +3
3700
image
opq! 24.04.02.21:25 493 +9
3699
image
ExpBox 24.03.30.18:06 161 +3
normal
DarkAcid 24.03.30.13:09 215 +1
3697
normal
minis 24.03.22.14:20 188 0
3696
image
달소 24.02.20.21:38 170 0
3695
image
달소 24.02.20.15:37 146 0
3694
image
달소 24.02.19.00:07 189 0
3693
image
달소 24.02.16.14:35 513 +2