Compare commits
20 Commits
47ae5c5770
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9ec1c7b70 | ||
|
|
0e1fa42b70 | ||
|
|
ecce39f51b | ||
|
|
6d7410b7ab | ||
|
|
ea97dd3782 | ||
|
|
381499863b | ||
|
|
5f897a13a8 | ||
|
|
5831636d85 | ||
|
|
4c0cbf3d91 | ||
|
|
a3f5db502b | ||
|
|
5aec36bd8e | ||
|
|
1c7f99147d | ||
|
|
f728ab5bdd | ||
|
|
3db6d273c2 | ||
|
|
272ad387fc | ||
|
|
a8c5355dc5 | ||
|
|
7fed5f0251 | ||
|
|
78e33823a6 | ||
|
|
aced3f9518 | ||
|
|
2b6babac22 |
3
Linux.md
3
Linux.md
@@ -1,3 +1,4 @@
|
|||||||
# Linux
|
# Linux
|
||||||
|
|
||||||
[[GPU Passthrough|Linux/GPU Passthrough]]
|
## Guides
|
||||||
|
- [[GPU Passthrough|Linux/Guides/GPU Passthrough]]
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
# GPU Passthrough on Linux
|
|
||||||
|
|
||||||
## Enable IOMMU
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo vim /etc/default/grub
|
|
||||||
```
|
|
||||||
|
|
||||||
Add amd_iommu=on iommu=pt
|
|
||||||
|
|
||||||
`GRUB_CMDLINE_LINUX_DEFAULT="... amd_iommu=on iommu=pt"`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
|
||||||
sudo reboot
|
|
||||||
```
|
|
||||||
|
|
||||||
Verify
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo dmesg | grep -i iommu
|
|
||||||
```
|
|
||||||
|
|
||||||
## Find GPU IDs
|
|
||||||
|
|
||||||
```bash
|
|
||||||
lspci -nn | grep -E "VGA|Audio"
|
|
||||||
```
|
|
||||||
4
Linux/Guides/GPU Passthrough.md
Normal file
4
Linux/Guides/GPU Passthrough.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Windows VM with GPU Passthrough
|
||||||
|
|
||||||
|
- [[Linux Host Setup|Linux/Guides/GPU Passthrough/Linux Host Setup]]
|
||||||
|
- [[Windows Virtual Machine Setup|Linux/Guides/GPU Passthrough/Windows Virtual Machine Setup]]
|
||||||
161
Linux/Guides/GPU Passthrough/Linux Host Setup.md
Normal file
161
Linux/Guides/GPU Passthrough/Linux Host Setup.md
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
# Linux Host Setup
|
||||||
|
|
||||||
|
## Enable IOMMU
|
||||||
|
|
||||||
|
### GRUB
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/default/grub
|
||||||
|
```
|
||||||
|
|
||||||
|
Add amd_iommu=on iommu=pt
|
||||||
|
|
||||||
|
`GRUB_CMDLINE_LINUX_DEFAULT="... amd_iommu=on iommu=pt"`
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
### rEFInd
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /boot/refind_linux.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
"Boot with standard options" "root=UUID=xxx rw quiet splash amd_iommu=on iommu=pt"
|
||||||
|
```
|
||||||
|
|
||||||
|
Verify
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dmesg | grep -i iommu
|
||||||
|
```
|
||||||
|
|
||||||
|
## Find GPU IDs
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lspci -nn | grep -E "VGA|Audio"
|
||||||
|
```
|
||||||
|
|
||||||
|
In my case, I get
|
||||||
|
|
||||||
|
- `10de:28a0`
|
||||||
|
- `10de:22be`
|
||||||
|
|
||||||
|
## VFIO Module Options
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/modprobe.d/vfio.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
> ### Arch
|
||||||
|
> ```bash
|
||||||
|
> options vfio-pci ids=10de:28a0,10de:22be
|
||||||
|
> ```
|
||||||
|
|
||||||
|
> ### Fedora
|
||||||
|
> ```bash
|
||||||
|
> options vfio-pci ids=10de:28a0,10de:22be disable_vga=1
|
||||||
|
> softdep nvidia pre: vfio-pci
|
||||||
|
> softdep nouveau pre: vfio-pci
|
||||||
|
> ```
|
||||||
|
|
||||||
|
## Blacklist GPU
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/modprobe.d/blacklist-gpu.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
> ### Arch
|
||||||
|
> ```
|
||||||
|
> blacklist nouveau
|
||||||
|
> blacklist nvidia
|
||||||
|
> blacklist nvidia_drm
|
||||||
|
> blacklist nvidia_modeset
|
||||||
|
> ```
|
||||||
|
|
||||||
|
> ### Fedora
|
||||||
|
> ```
|
||||||
|
> blacklist nouveau
|
||||||
|
> blacklist nvidia
|
||||||
|
> blacklist nvidia_drm
|
||||||
|
> blacklist nvidia_modeset
|
||||||
|
> blacklist nvidia_uvm
|
||||||
|
> blacklist rivafb
|
||||||
|
> blacklist nvidiafb
|
||||||
|
> blacklist snd_hda_intel
|
||||||
|
> ```
|
||||||
|
|
||||||
|
## Load VFIO
|
||||||
|
|
||||||
|
> ### Arch
|
||||||
|
> ```bash
|
||||||
|
> sudo vim /etc/mkinitcpio.conf
|
||||||
|
> ```
|
||||||
|
> ```
|
||||||
|
> MODULES=(vfio vfio_iommu_type1 vfio_pci)
|
||||||
|
> ```
|
||||||
|
> ```
|
||||||
|
> sudo mkinitcpio -P
|
||||||
|
> sudo reboot
|
||||||
|
> ```
|
||||||
|
|
||||||
|
> ### Fedora
|
||||||
|
> ```bash
|
||||||
|
> sudo vim /etc/dracut.conf.d/10-vfio.conf
|
||||||
|
> ```
|
||||||
|
> ```
|
||||||
|
> force_drivers+=" vfio vfio_iommu_type1 vfio_pci "
|
||||||
|
> ```
|
||||||
|
> ```bash
|
||||||
|
> sudo dracut -f
|
||||||
|
> ```
|
||||||
|
> ```bash
|
||||||
|
> sudo reboot
|
||||||
|
> ```
|
||||||
|
|
||||||
|
### Confirm Kernel Driver
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lspci -nnk -d 10de:28a0
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
lspci -nnk -d 10de:22be
|
||||||
|
```
|
||||||
|
|
||||||
|
## Install Virtualization Stack
|
||||||
|
|
||||||
|
> ### Arch
|
||||||
|
> ```bash
|
||||||
|
> sudo pacman -S --needed virt-manager qemu-full libvirt dnsmasq ovmf swtpm
|
||||||
|
> ```
|
||||||
|
|
||||||
|
> ### Fedora
|
||||||
|
> ```bash
|
||||||
|
> sudo dnf install @virtualization virt-manager qemu-kvm libvirt-daemon-config-network libvirt-daemon-kvm bridge-utils edk2-ovmf swtpm
|
||||||
|
> ```
|
||||||
|
|
||||||
|
## User Groups and Permissions
|
||||||
|
|
||||||
|
> ### Arch
|
||||||
|
> ```bash
|
||||||
|
> sudo usermod -aG libvirt,kvm,input,render,libvirt-qemu $USER
|
||||||
|
> ```
|
||||||
|
|
||||||
|
> ### Fedora
|
||||||
|
> ```bash
|
||||||
|
> sudo usermod -aG libvirt,kvm,input,render $USER
|
||||||
|
> ```
|
||||||
|
|
||||||
|
Reboot the system.
|
||||||
|
|
||||||
|
And now verify:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
virsh list --all
|
||||||
|
```
|
||||||
|
|
||||||
|
If it doesn't error, you're good.
|
||||||
139
Linux/Guides/GPU Passthrough/Windows Virtual Machine Setup.md
Normal file
139
Linux/Guides/GPU Passthrough/Windows Virtual Machine Setup.md
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
# Windows VM Setup
|
||||||
|
|
||||||
|
Start virt-manager
|
||||||
|
|
||||||
|
```bash
|
||||||
|
virt-manager
|
||||||
|
```
|
||||||
|
|
||||||
|
When creating VM:
|
||||||
|
|
||||||
|
- Local ISO
|
||||||
|
- Windows 11 ISO
|
||||||
|
- Firmware: UEFI (OVMF)
|
||||||
|
- Chipset: Q35
|
||||||
|
- TPM: emulated
|
||||||
|
|
||||||
|
Before you start the VM:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/default/ufw
|
||||||
|
```
|
||||||
|
|
||||||
|
Find `DEFAULT_FORWARD_POLICY="DROP"` and change it to `DEFAULT_FORWARD_POLICY="ACCEPT"`
|
||||||
|
|
||||||
|
Now boot the VM.
|
||||||
|
|
||||||
|
## Network Issues
|
||||||
|
|
||||||
|
If the network is being wonky, or if you want to bypass updates... Shift-F10
|
||||||
|
|
||||||
|
```
|
||||||
|
OOBE\BYPASSNRO
|
||||||
|
```
|
||||||
|
|
||||||
|
Now add the PCI devices in virt-manager.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
yay -S looking-glass
|
||||||
|
```
|
||||||
|
|
||||||
|
On Windows, download the host from https://looking-glass.io/downloads
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo virsh edit win11
|
||||||
|
```
|
||||||
|
|
||||||
|
Inside `<devices>`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<shmem name="looking-glass">
|
||||||
|
<model type="ivshmem-plain"/>
|
||||||
|
<size unit="M">128</size>
|
||||||
|
</shmem>
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo vim /etc/tmpfiles.d/10-looking-glass.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
# Type Path Mode UID GID Age Argument
|
||||||
|
f /dev/shm/looking-glass 0660 YOURUSER kvm -
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo rm -f /dev/shm/looking-glass
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
sudo systemd-tmpfiles --create /etc/tmpfiles.d/10-looking-glass.conf
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
ls -l /dev/shm/looking-glass
|
||||||
|
```
|
||||||
|
|
||||||
|
Should be owned by my user.
|
||||||
|
|
||||||
|
## Install Virtual Display Driver on Windows.
|
||||||
|
|
||||||
|
## Configure Looking Glass
|
||||||
|
|
||||||
|
```bash
|
||||||
|
vim ~/.looking-glass-client.ini
|
||||||
|
```
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[win]
|
||||||
|
fullscreen=yes
|
||||||
|
size=2880x18900
|
||||||
|
dontUpscale=yes
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
env -u WAYLAND_DISPLAY looking-glass-client
|
||||||
|
```
|
||||||
|
|
||||||
|
## Audio
|
||||||
|
|
||||||
|
Edit XML. Inside `<devices>`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<sound model="ich9"/>
|
||||||
|
<audio id="1" type="spice"/>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Clipboard
|
||||||
|
|
||||||
|
Edit XML. Inside `<devices>`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<channel type="spicevmc">
|
||||||
|
<target type="virtio" name="com.redhat.spice.0"/>
|
||||||
|
</channel>
|
||||||
|
```
|
||||||
|
|
||||||
|
## File Sharing
|
||||||
|
|
||||||
|
Enable Memory → Shared in the virt-manager
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo pacman -S virtiofsd
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p ~/vmshare
|
||||||
|
```
|
||||||
|
|
||||||
|
Edit XML. Inside `<devices>`
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<filesystem type="mount" accessmode="passthrough">
|
||||||
|
<driver type="virtiofs"/>
|
||||||
|
<source dir="/home/USERNAME/vmshare"/>
|
||||||
|
<target dir="vmshare"/>
|
||||||
|
</filesystem>
|
||||||
|
```
|
||||||
|
|
||||||
|
Install virtio-guest-tools. Hey guess what, this also seems to make the windows key work.
|
||||||
|
|
||||||
|
Also install winfsp
|
||||||
Reference in New Issue
Block a user