vstevenphan
Senior Member
Chào, mình biết nhiều bạn đang muốn tận dụng passthrough iGPU của AMD vào máy ảo để khai thác hết iGPU. iGPU của AMD càng ngày càng mạnh, thậm chí có thể thay thế luôn card rời để xử lí nhiều tác vụ. Các mẫu minipc mạnh cũng kèm CPU có card tích hợp AMD. Do đó nay mình viết bài chia sẻ cách passthrough iGPU AMD trên Promox cho anh em nào chưa làm được. Nếu làm thành công "buy me a coffee" bên dưới là okila rồi
Để có động lực viết tiếp nhiều hướng dẫn hay và hấp dẫn nữa. Bài này chỉ hướng dẫn passthrough, các bài như cài đặt Promox và vấn đề khác liên quan mình sẽ đăng sau.
Trong bài dưới lấy ví dụ passthrough iGPU 780m trên 8700G
Nôm na passthrough là cùng 1 con miniPC, bạn có thể tạo Linux server, Android, Windows, chạy tá lả docker, NAS,...bạn muốn "GÁN" iGPU hay GPU của phần cứng cho 1 máy ảo cụ thể. Dưới đây là Windows.
BƯỚC 1: BIOS
Bios mỗi hãng sẽ khác nhau một tí ở câu chữ, nên bạn xem các tính năng dưới đây tương tự mà chỉnh cho đúng.
SVM Mode: Enabled - Bật ảo hóa
Primary Video Adapter: External Graphic - Xuất hình chính chọn card
IOMMU: Enabled (Quan trọng)
iGPU Configuration: UMA_Auto
iGPU cũng phải bật song song với card rời nhé, nếu có option Multiple Display/Monitor thì chọn Enabled, hoặc iGPU chọn Force
BƯỚC 2:
Bạn chỉnh SSH vào PVE Promox, hoặc tại trang chọn PVE (Tên Promox host), và Shell
Soạn:
Để có động lực viết tiếp nhiều hướng dẫn hay và hấp dẫn nữa. Bài này chỉ hướng dẫn passthrough, các bài như cài đặt Promox và vấn đề khác liên quan mình sẽ đăng sau.Trong bài dưới lấy ví dụ passthrough iGPU 780m trên 8700G
Nôm na passthrough là cùng 1 con miniPC, bạn có thể tạo Linux server, Android, Windows, chạy tá lả docker, NAS,...bạn muốn "GÁN" iGPU hay GPU của phần cứng cho 1 máy ảo cụ thể. Dưới đây là Windows.
BƯỚC 1: BIOS
Bios mỗi hãng sẽ khác nhau một tí ở câu chữ, nên bạn xem các tính năng dưới đây tương tự mà chỉnh cho đúng.
SVM Mode: Enabled - Bật ảo hóa
Primary Video Adapter: External Graphic - Xuất hình chính chọn card
IOMMU: Enabled (Quan trọng)
iGPU Configuration: UMA_Auto
iGPU cũng phải bật song song với card rời nhé, nếu có option Multiple Display/Monitor thì chọn Enabled, hoặc iGPU chọn Force
BƯỚC 2:
Bạn chỉnh SSH vào PVE Promox, hoặc tại trang chọn PVE (Tên Promox host), và Shell
Soạn:
nano /etc/default/grub
Tại đây bạn chú ý dòng: GRUB_CMDLINE_LINUX_DEFAULT="quiet"
Chỉnh nó thành GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt". Không thêm gì thêm nữa nhé, nhiều bài hướng dẫn chỉnh tùm lum. Nhưng với Promox mới nhất chỉ vậy là đủ
Bạn Ctrl+O rồi bấm Enter save lại và Ctrl+X thoát file
Soạn
Chỉnh nó thành GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt". Không thêm gì thêm nữa nhé, nhiều bài hướng dẫn chỉnh tùm lum. Nhưng với Promox mới nhất chỉ vậy là đủ
Bạn Ctrl+O rồi bấm Enter save lại và Ctrl+X thoát file
Soạn
update-grub
Để update lại grub mới
Tiện tay thì check luôn xem IOMMU đã bật chưa bằng
Tiện tay thì check luôn xem IOMMU đã bật chưa bằng
dmesg | grep -e DMAR -e IOMMU
Hiện như hình dưới là ok
Tại Promox, nó sẽ chia PCI theo ID, bạn sẽ xác định ID của iGPU passthrough bằng
Tại Promox, nó sẽ chia PCI theo ID, bạn sẽ xác định ID của iGPU passthrough bằng
lspci -nn | grep -e 'AMD/ATI'
Trong trường hợp của mình
ID nó sẽ là 1002:15f và 1002:1640, lưu lại cái này nhé
Chỉnh VFIO
ID nó sẽ là 1002:15f và 1002:1640, lưu lại cái này nhé
Chỉnh VFIO
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
Kế tiếp, kết nối VFIO với cái ID nãy mình kêu bạn nhớ đó, cách nhau bởi dấu phẩy
echo "options vfio-pci ids=1002:15f,1002:1640," >> /etc/modprobe.d/vfio.conf
Thêm cái này để chắc là VFIO bắt được cái PCI
echo "softdep amdgpu pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
echo "softdep radeon pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
echo "softdep snd_hda_intel pre: vfio-pci" >> /etc/modprobe.d/vfio.conf
Thiệt ra là như vậy cũng được rồi, hoặc có cách là blacklist iGPU, này bạn muốn passthrough GPU Nvidia, Intel gì đó thì thêm vào blacklist cũng được. Mấy lệnh phía dưới là optional nhé
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia*" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
Update lại hết
update-initramfs -u -k all
Rồi reboot
reboot
BƯỚC 3:
Tách BIOS
Bạn tải file BIOS của mainboard bạn về, main đang chạy bios nào thì tải về phiên bản đó. Giải nén nó nếu file BIOS ở dạng ZIP, nó sẽ có 1 file BIOS như này (cái file nặng nhất)
Sau đó tải cái phần mềm này về
Tải file ZIP
Giải nén nó ra bằng 7zip, giải nén mặc định Win bị lỗi
Bạn copy cái file BIOS ở trên quăng vào thư mục phần mềm đã giải nén, bạn chạy Run as Administrator cái file UBU
Đợi 1 chút để nó detect file BIOS
Sau khi detect được xong thì nó sẽ list ra nhiều cái như hình bên dưới
Chọn số 2 cho mình rồi bấm Enter
Tại mục kế tiếp chọn X, bấm Enter để Extract
Đọc tới đây ngại gì mà không "buy a coffee for me" ủng hộ tinh thần nào bạn

Xem tiếp hướng dẫn bên dưới nha!
Tệp đính kèm
Sửa lần cuối: