1. Home
  2. Proxmox
  3. Hardware
  4. Intel iGPU/VGA dan Audio Onboard Passthrough di Proxmox VE

Intel iGPU/VGA dan Audio Onboard Passthrough di Proxmox VE

Fitur paling dicari di Proxmox Virtual Environment (PVE) adalah GPU dan Audio Passthrough, Dengan melakukan GPU passthrough langsung ke VM (Virtual Machine) seperti Windows atau Linux, Kita bisa mengubah VM tersebut menjadi Plex/Jellyfin Media Server dengan hardware transcoding, atau bahkan menjadikannya Home Theater PC yang terhubung langsung ke TV via HDMI.

Yuk bahas langkah demi langkah cara konfigurasi GPU Passthrough di Proxmox VE yang sudah terbukti berhasil saya coba.

Prasyarat & Persiapan

Artikel ini dibuat dengan real-case menggunakan :

  • Mini PC dengan prosesor J4125 (Gemini Lake) VGA Intel UHD Graphics 600 dan Intel Audio (LPE).
  • Proxmox VE menggunakan versi 9.2.4
  • OS LMDE 7 yang ter install di VM yang saya jadikan Home Theater PC.

Contoh step konfigurasi mungkin bisa berbeda pada spesifikasi hardware lain.

Contoh Skenario

Di artikel ini saya menggunakan 2 skenario untuk memunculkan tampilan desktop VM di monitor dan mengeluarkan suara audio VM ke speaker:

  1. iGPU onboard dan Audio onboard passthrough via kabel HDMI fisik (Passthrough GPU + AUDIO).
  2. iGPU onboard passthrough via port VGA 15-pin fisik dan Audio onboard via Jack 3.5mm fisik, menggunakan metode hybrid (Passthrough GPU + ALSA Backend Bridge Audio)

Karena dalam kondisi tersebut, perlakuannya menjadi berbeda (opsi 2 butuh trik khusus).

iGPU dan Audio onboard via kabel HDMI (Passthrough GPU + AUDIO)

Skenario pertama jika VM kita dihubungkan ke TV menggunakan kabel HDMI.

Step 1: Menambahkan Kernel Modules

Kita perlu memberi tahu Proxmox untuk load driver yang diperlukan untuk passthrough.

Edit file /etc/modules:

nano /etc/modules

Tambahkan baris-baris berikut di bagian bawah:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Save dan keluar.

Step 2: Melakukan Blacklist Driver VGA dan Audio pada Host

Agar GPU Intel UHD 600 dan Audio tidak dipakai oleh host Proxmox, kita harus mem-block (blacklist) drivernya agar bisa dilempar ke VM.

Buat file konfigurasi baru:

nano /etc/modprobe.d/blacklist.conf

Masukkan parameter berikut:

blacklist i915
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi

Save dan keluar.

Step 3: Mencari ID Hardware GPU dan Audio

Kita perlu mencari ID PCI dari GPU dan Audio onboard Prosesor J4125. Jalankan perintah:

lspci -nnk

Outputnya akan terlihat kurang lebih seperti ini:

00:02.0 VGA compatible controller [0300]: Intel Corporation GeminiLake [UHD Graphics 600] [8086:3185] (rev 06)
00:0e.0 Audio device [0403]: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06)

Angka 8086:3185 (GPU) dan 8086:3198 (Audio) adalah Vendor-Device ID hardware Anda.

Mapping ID tersebut ke file vfio.conf:

nano /etc/modprobe.d/vfio.conf

Tambahkan baris berikut (sesuaikan ID dengan hasil output Anda):

options vfio-pci ids=8086:3185,8086:3198 disable_vga=1

Save, lalu Reboot Proxmox Node Anda untuk menerapkan semua perubahan.

Step 4: Konfigurasi Virtual Machine (VM) di Web UI

Setelah Proxmox menyala kembali, saatnya memasang hardware tersebut ke VM Anda (Contoh: VM Windows atau Ubuntu Server).

  • Buka Proxmox Web UI, pilih VM Anda, lalu masuk ke tab Hardware.
  • Klik Add -> PCI Device.
  • Pilih Raw Device, lalu cari device GPU (00:02.0).
  • Centang opsi All Functions, ROM-Bar, dan PCI-Express.
  • Ulangi langkah di atas untuk Audio Device (00:0e.0).
  • Masuk ke opsi Display di VM Hardware, ubah nilainya menjadi none jika Anda ingin outputnya 100% keluar lewat port HDMI fisik J4125, atau biarkan Default untuk pengujian awal.

Step 5: Verifikasi & Pengujian

Setelah VM dinyalakan, lakukan pengecekan berikut:

  • Jika VM Windows: Buka Device Manager. Anda seharusnya melihat Intel(R) UHD Graphics 600 dan Intel Display Audio terdeteksi. Jika ada tanda seru kuning (Error Code 43), pastikan Anda sudah menambahkan argumen kvm=off pada konfigurasi CPU VM.
  • Pada VM Linux: Jalankan perintah lspci -k dan pastikan driver yang digunakan oleh kartu grafis tersebut adalah i915 di dalam VM, bukan di host Proxmox.

GPU Passthrough + ALSA Backend Bridge Audio (HYBRID)

Pada skenario ke 2 adalah langkah demi langkah yang sudah dispesifikasikan untuk kebutuhan saya pribadi: GPU Intel UHD 600 via port VGA 15-pin fisik dan Audio via Jack 3.5mm fisik, menggunakan metode hybrid (Passthrough GPU + ALSA Backend Bridge Audio) yang telah teruji berhasil pada Mini PC Intel Celeron J4125 Saya.

  • VGA: GPU Intel diisolasi dari host agar VM LMDE 7 bisa mengakses hardware secara penuh dan mengeluarkan visual langsung lewat port VGA fisik ke monitor.
  • Audio: Karena chip audio J4125 tidak stabil didelegasikan penuh saat mode non-HDMI, kendali audio fisik tetap dipegang oleh Host Proxmox. Suara dari VM kemudian “dijembatani” menggunakan emulator QEMU langsung menuju soundcard internal host (Jack 3.5mm).

Step 1: Konfigurasi Kernel & Modul pada Host Proxmox

Blacklist Driver VGA Host agar GPU dilepas oleh host pada file /etc/modprobe.d/blacklist.conf:

blacklist i915

(Catatan: Driver audio snd_hda_intel TIDAK boleh di-blacklist agar host tetap bisa mengontrol Jack 3.5mm).

Mapping ID Hardware GPU pada file /etc/modprobe.d/vfio.conf (Gunakan ID Intel UHD 600 Anda, tanpa parameter disable_vga=1 karena Anda menggunakan port VGA analog):

options vfio-pci ids=8086:3185

Reboot Host Proxmox Anda.

Step 2: Konfigurasi Virtual Machine (VM) di Web UI

Masuk ke Proxmox Web UI, pilih VM Anda (misal ID 100):

  1. Ubah BIOS ke SeaBIOS: Pada tab Hardware -> BIOS, pastikan diatur ke Default (SeaBIOS). Ini wajib karena port VGA analog membutuhkan interupsi BIOS legacy.
  2. Matikan Display Virtual Proxmox: Pada tab Hardware -> Display, ubah nilainya menjadi none. Langkah ini mencegah bentrok dual-monitor virtual dan memaksa visual 100% keluar ke port VGA fisik.
  3. Tambahkan GPU PCI Device: Klik Add -> PCI Device. Pilih ID GPU Anda (00:02.0). Centang opsi All Functions, ROM-Bar, dan PCI-Express.
  4. Pastikan Tidak Ada Device Audio Bawaan: Jika ada Audio Device di daftar Hardware, hapus (Remove).

Step 3: Suntik Parameter Audio QEMU Dengan Args (Manual)

Karena Web UI Proxmox membatasi konfigurasi audio langsung ke hardware, kita ngakalin secara permanen melalui opsi args.

Buka terminal Host Proxmox, edit file konfigurasi VM Anda:

nano /etc/pve/qemu-server/1003.conf

Tambahkan baris args berikut:

args: -device ich9-intel-hda,id=sound0 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=snd0 -audiodev alsa,id=snd0

Save dan keluar (Ctrl+O, Enter, Ctrl+X).

Step 4: Verifikasi & Pengujian Akhir

Jalankan VM Anda dari terminal host:

qm start 1003
  • Visual Check: Monitor yang tercolok ke port VGA fisik J4125 akan langsung menampilkan desktop OS (LMDE 7) sesaat setelah driver display dimuat (layar boot BIOS virtual memang akan dilewati/blank sesaat).
  • Audio Check: Colok speaker/headphone ke lubang Jack 3.5mm mini PC Anda. Di dalam VM LMDE 7, jalankan aplay -l atau cek pengaturan suara. Sistem akan mendeteksi kartu suara internal QEMU secara permanen dan suara akan keluar dengan jernih melalui jalur analog host.

Catatan Penting:

Supaya setup yang sudah stabil ini tetap aman ke depannya, ada dua hal yang perlu diingat:

  1. Jangan Mengubah Menu Audio di Web UI Proxmox: Karena kita menggunakan trik args: di file konfigurasi, hindari menambahkan atau mengutak-atik menu Audio di tab Hardware Web UI Proxmox untuk VM 1003 ini. Jika Anda menambahkannya dari Web UI, sistem bisa mendeteksi konflik jalur audio virtual dan VM berpotensi gagal booting kembali.
  2. Volume Control: Kontrol volume suara sekarang bisa diatur dari dua sisi. Jika suara dirasa terlalu kecil, pastikan volume di dalam VM LMDE 7 sudah maksimal, dan volume master pada host Proxmox juga tidak dalam kondisi muted (bisa dicek lewat perintah alsamixer di shell host Proxmox jika diperlukan).

Tags

How can we help?