결과
뭔 개짓거린가 싶겠지만 게임은 하고 싶은데
오블리비언 코리안패싱 사태로
마이크로소프트는 제 마음속에 X놈이 되었기 때문에
이악물고 뚫었고
간단한게 얘기하면 GPU 를 VM 에 완전히 넘겨서 VM을 Only 게임용으로 만드는 내용 입니다.
우분투는 작업용으로 쓰구요
얘기 들어가기 앞서 우여 곡절이 많았습니다. 걍 윈도우로 갈아 탈까 고민 ㅈㄴ 했습니다.
디질뻔 했어요
컴터 종료 시 GPU 가 이미 바인딩 되어있다는 수백줄 로그를 출력하고 종료를 한다던지...
GPU 를 넘기고 서 부터 CPU 쿨러가 미친듯이 돈다던지
VM 에서 겜 실행하면 더욱더 미친듯이 돈다던지
디스크 응답시간이 인터넷보다 느린 상태라던지
원스휴먼은 멀끔하게 돌아가나 마비노기 같은 옛날 게임은 오히려 렉이 걸린다던지
진짜 빡셌습니다.
정보가 너무 산재되어 있는 구글로는 가망이 보이지 않아
제가 선택한건 GPT, 다만 이놈의 자주 개소리를 한다는건
써보신 분들은 아실 겁니다.
너가 좀전에 말한거랑 다르다, 이거 진짜 맞냐 아닌거 같은데
이러면서 발생한 문제를 하나씩 깨부서 나갔습니다.
그리고 이제...
완벽한 VM 게이밍 환경을 만들 었습니다.
질문 채팅 페이지 렉걸려서 페이지 로딩하는것만 40초 정도 걸리네요
GPT 내용을 하기에 앞서 대충 플로우를 나열하면(밑으로 스크롤 쭈욱 내리면 나눴던 채팅 쥐피티가 요약한거 있어요)
QEMU + KVM 조합의 VM 프로그램
여기서 VM 정상 실행이 되는지만 확인하고 종료(꼬오오옥 SSD 쓰세요 안쓰면 피봅니다)
GPU Unbind -> VM 에 Bind -> 재부팅
여기서 부터 CPU 쿨러가 미친듯이 울어 대고
컴터 껏다 켤때 마다 GPU 가 이미 바인딩 되어 있다는
메세지를 화면 전체에 도배
이유는 우분투에 Nvidia 드라이버가 집나간 GPU 찾는다고 울부 짓는 중
Nvidia 드라이버 삭제(매정해도 어쩔 수 없음 울부짓느라 이웃주민들 힘들어하는데)
1차 입막음 완료, 처음 보다 엄청나게 조용해짐
이제 VM 윈도우를 켜보는데.....
참고로 14코어 2스레드 붙여놨음 성능이 딸린다는건 말이 안됌
그리고 이건 차원이 다를 정도로 시끄러움
그래서 캐물어보니 첨엔 "이거 하시면 잘될꺼에요!" 이지랄 하다
또 개소리라는걸 증명 해주고
CPU 클럭 조절 방식(governor) 을 변경해야한다는 것 까지 도달
나는 powersave 상태 였고 schedutil 로 변경
진짜 쿨러 소리가 안들릴 정도로 조용해짐
거의 다 왔다
이제 원스휴먼 키니
문제 발생, 로딩이 조오오오옹오온나 느림
이제 마비노기 차례 마찬가리로 로딩이 조오오옹오오온나 느림
다만 키고 서 부터는 할만해서 그냥 할까 하다
여기서 이상함을 감지 리소스 모니터를 켜서 확인해보니
무슨 디스크 응답속도가 외국 서버 갔다온것 마냥 100ms 를 넘김
또 물어물어 보니 VM 기본생성자가 .qcow2 이건 간편하지만 느림
해서 .row 로 컨버트(byte로만 기록하는거라 빠르다나),
실행 해서 확인해보니 100ms 아래로 떨어졌지만 0~50ms 로 널을 뜀
HDD가 용량이 커서 거기다 했더니 이지랄 난건가 싶어
SSD 로 옮긴 후 재실행
원스휴먼 로딩 빠름
마비노기 시팔 화면돌리면 티디디디디딕 하고 끈키면서 움직임
왜그런고 하니... 옛날 엔진이라 코어 많은 CPU 를 븅신같이 쓴다고 하길래
잉? 그런게어딨어 진짜? 의심하며 진짜로 코어를 2개로 줄여봄
와... 이게 되네....
작업관리자에 프로세스 사용 코어 지정 설정 간편하게 할 수 있어서
VM 을 껏다 켜야하는 불상사는 피함
이걸로 게이밍VM 설정 완료
아차차 모니터 HDMI나 DP 나 이런 포트 메인보드에 꼽을 수 있어야해요
아래 내용은 지피티 요약본인데 모르면 피보는건 옆에 빨강색으로 적어놓을께요
들어가기에 앞서 GPT 도 우분투도 완전히는 믿지 마세요
항상 어떻게 확인하면 확실한거야 라고 물어서 확인하는 방법 물어보셔야 합니다.
안그럼 설정 꼬일 수도 있어요
1. 시스템 요구사항 및 준비사항
하드웨어 요구사항
- CPU: VT-d (Intel) 또는 AMD-Vi (AMD IOMMU) 지원 (내장그래픽 있어야함, 안그럼 GPU 언바인드하는순간 벽돌 되는거임)
- 메인보드: IOMMU 지원
- 그래픽카드: 패스스루 대상 (예: NVIDIA RTX 3060)
- 모니터: 패스스루용 GPU에 물리적으로 연결 (모니터랑 본체랑 가까이 두셔요 언바인드 바인드 테스트 할때 뺏다꼇다 짜증남)
소프트웨어 요구사항
- Ubuntu 22.04 이상
- QEMU, KVM, virt-manager
- VFIO 커널 모듈
2. IOMMU 활성화
"4. 내장 GPU 출력으로 전환" 시키고 화면 나오는거 확인하고 진행하세요,
이거 안했다가 벽돌된줄 알고 식겁함
2-1. GRUB 설정 수정
3-2. VFIO 설정
같이 하세요 그 다음
2-2. 적용 후 재부팅
여기부터 GPU는 VM 설정 하기 전까지 벽돌
그리고 이제부터 Nvidia 드라이버가 집나간 GPU 찾기 시작함
Nvidia 드라이버 삭제 하세요
2-1. GRUB 설정 수정
sudo nano /etc/default/grub
아래 항목을 다음과 같이 수정:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on iommu=pt"
2-2. 적용
sudo update-grub
sudo update-initramfs -u
재부팅 후 확인:
dmesg | grep -i iommu
3. VFIO 바인딩 설정
3-1. GPU 및 오디오 장치 ID 확인
lspci -nn | grep -iE 'vga|audio'
예시 출력:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504]
01:00.1 Audio device [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228e]
3-2. VFIO 설정
sudo nano /etc/modprobe.d/vfio.conf
내용:
options vfio-pci ids=10de:2504,10de:228e
3-3. initramfs에 적용
sudo update-initramfs -u
4. 내장 GPU 출력으로 전환
BIOS에 진입하여:
- 내장 그래픽 우선 사용 (iGPU Primary / iGPU Multi-Monitor)
- 모니터는 내장 그래픽에 연결
5. virt-manager 설정
여기까지 왔으면 이제 VM 관련 영역
5-1. VM 생성 시 UI 로 설정 가능하긴 한데 세세한 설정은 XML로 수정 가능함
- CPU: host-passthrough, 코어 수 설정 CPU 클럭 조절 방식(governor) 설정 schedutil 로 해야함(안쓰는 코어 클럭을 극단적으로 낮춤, 똑똑함) 안그럼 쿨러 미친듯이 돌꺼임
- +@ 로 Cpu Pinning(사용 CPU 코어 고정, 배치 잘해야하니 CPU 모델 알려주고 알아서 잘 고르게 배치 해달라고 GPT 한테 얘기하면 알아서 XML 만들어줌)
- 메모리: HugePage 단위로 할당 (예: 8G, 16G 등) 이건 성능 옵션이긴 함, 쓸만하면 안해도 됌, 하겠다면 페이지 방식이라 메모리 할당이 바이트 단위로 딱딱 떨어져야함 안그럼 VM 안켜짐, 우분투가 1페이지 뽀려가니까 예상하고 + 2 로 페이징 설정
- 디스크: virtio + writeback virtio 이거, 이것때문에 개고생함 .iso 로 드라이버 다운로드 미리 받아놔야함 윈도우가 그냥은 인식못함, writeback 이건 ㄴㄴ 하지마셈 느림, none 으로하고 밑에 번역이 이상한데 "버립니다 mode" 라고 있는데 기본값으로 설정
- GPU: PCI 장치 추가 (GPU + 오디오 장치) 3-1. GPU 및 오디오 장치 ID 확인 이걸로 아이디 알아놔야함
- USB 마우스/키보드: 패스스루 또는 Spice 사용 본인꺼 쓰고 싶으면 USB 추가 하믄 됨 (동글이도 된다) 단, USB 소유권을 넘기는거라 VM 쓰는 순간부터 종료 될때까지 우분투로 안돌아옴, 마우스 남는거 있으면 VM긴급 탈출 용으로 하나 꼽아놓는게 좋음
5-2. XML 직접 편집 예시 이렇게 초라하지 않아 어디서 쉬운척이야
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
</hostdev>
이게 내꺼임 쫄지마셈 어차피 대부분 GUI 에서 해줌
6. Windows 설정
6-1. GPU 드라이버 설치
- NVIDIA 공식 사이트에서 해당 GPU 드라이버 다운로드 및 설치
6-2. virtio 드라이버 설치 이것도 구라 윈도우 설치 할때 하드디스크가 아무것도 안보임, 윈도우 설치 할때 ISO 드라이버 바인드 시켜서 드라이버 잡아야 어떤 파티션에 윈도우 설치할껀지 보임
- https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/ 에서 ISO 다운로드
- VM에 CD로 마운트 후, virtio-win-gt-x64.msi 설치
6-3. 성능 최적화
- 전원 옵션: 고성능
- Windows Defender 및 백그라운드 앱 비활성화 굳이 안해도 될것같은데 느린거 해결하려던 와중 그냥 함
- 예약 작업 제거 굳이 안해도 될것같은데 느린거 해결하려던 와중 그냥 함
7. 기타 팁
7-1. VFIO 자동 관리 스크립트 하지마셈 내장, 외장GPU 는 따로 가셈 그게 속편함 Nvidia 드라이버를 살려두겠단 말인데 그러면 드라이버가 GPU 찾는다고 개지랄떰
- VM 실행 시 VFIO 바인딩, 종료 시 복구 자동화
- /etc/libvirt/hooks/qemu 스크립트 활용 가능
7-2. 긴급 탈출용 입력장치 없으면 고통속에 포맷할거임
- 우분투에 유선/무선 키보드 하나 상시 연결 (RDP 실패 시 대비)
이제 미르님의 VM은 완벽한 GPU 패스스루 환경으로 운영될 수 있습니다!
GPT 요약 ㅈ 같이 했네 어차피 이걸 누가하나..
하다 막히면 댓글 달면 아는 한도내에서 알려줄께요(이미 막히는순간 컴퓨터는 걸레가 되거나 벽돌이 되었겠지만..ㅋㅋ)
'리눅스 > 우분투 테스크톱 24.04' 카테고리의 다른 글
Proton으로 리눅스에서 스팀 게임 돌리기 (0) | 2025.04.26 |
---|---|
폰트 설치 (1) | 2025.04.25 |
Wine 카카오톡 설치 (0) | 2025.04.25 |
Wine Mono 설치 (0) | 2025.04.25 |
Ubuntu 24.04 Wine 설치 방법 (0) | 2025.04.25 |