You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can use it by simply downloading the latest [release](https://github.com/HikariKnight/quickpassthrough/releases/) and run it inside a terminal/shell or by downloading and compiling it yourself with the commands below.
6
+
You can use it by simply downloading the latest [release](https://github.com/HikariKnight/quickpassthrough/releases/) and run it inside a terminal or by downloading and compiling it yourself with the commands below.
7
+
8
+
This project is aimed at **desktops with 2 GPUs** and **headless servers**, where the only GPU is not needed.
9
+
10
+
**Note:** Quickpassthrough is not designed to be installed by a package manager! As you would usually have to only run it once, unless you change the GPU.
11
+
12
+
## Features
13
+
* Show general warning to user and inform about making a backup and general expectations
14
+
* Detect if user has an amd or intel CPU and provide the correct IOMMU kernel args based on that
15
+
* Configure your 2nd GPU for GPU Passthrough (1 for host, 1 for VM)
16
+
* Use [ls-iommu](https://github.com/HikariKnight/ls-iommu) to find PCI devices like graphic cards, usb controllers, etc and see what IOMMU group they are in
17
+
* Enable and configure vfio modules (initramfs-tools, dracut, modprobe and mkinitcpio)
18
+
* Generate the correct kernel arguments for grub and systemd-boot
19
+
* Generate a script to use for dumping the vbios rom (as some cards require a romfile for passthrough to work), however no rom patching support planned.
20
+
* Configure kernel arguments for systemd-boot (using kernelstub or grubby)
21
+
* Configure kernel arguments for grub2 (editing /etc/default/grub or using grubby)
22
+
* A menu system you can navigate through.
23
+
* Make sure [vendor-reset](https://github.com/gnif/vendor-reset) module is loaded before vfio, check the repository for the list of cards that require it!
24
+
* Provides you with the correct kernel arguments to add to your bootloader entry if a supported bootloader is not found
25
+
26
+
## Features handled by [ls-iommu](https://github.com/HikariKnight/ls-iommu)
27
+
* Automatically handle GPUs where parts of it might be in separate IOMMU groups (ex: RX6600XT)
28
+
* Fetch the ID and PCI Address of devices
29
+
* Locate the vbios rom path on the system
30
+
* Tell the user to enable IOMMU (VT-d/AMD-v) on their motherboard and bootloader
31
+
* Get a list of devices, their IOMMU groups and various other information
Currently no, there might be support for ostree (fedora silverblue, kinoite, etc) at a later time.
51
+
Currently no, however [Bazzite](https://bazzite.gg) has an `ujust` command that does a very similar job.
52
+
In Bazzite you run `ujust setup-virtualization` and follow the prompts to `Enable Virtualization` and `Enable VFIO drivers`.
27
53
28
54
## How do I undo the changes?
29
-
There is a "backup/" folder generated on the first run that will have a copy of all your files (and their paths) from before we edited anything.
30
-
Copy the files back to your system (blank files inside .d/ folders will be used to "undo" any new config files we wrote) and rebuild your initramfs then remove the kernel arguments listed in config/kernel_args from your bootloader (if your system use kernelstub, grubby or you had to manually add them).
55
+
There is a `backup/` folder generated on the first run that will have a copy of all your files (and their paths) from before we edited anything.
56
+
Compare that folder with the `config/` folder to see which files you need to delete in addition to copying the files from `backup/` to your system before rebuilding your initramfs and updating your bootloader config.
31
57
32
58
## How do I just disable vfio for 1 boot?
33
59
Remove the vfio kernel arguments from your bootloader by pressing E on the boot menu. The kernel arguments added to the bootloader can be found in the config/kernel_args file. <br>
@@ -40,34 +66,11 @@ NOTE: You can also just remove them from your bootloader permanently and update
40
66
* Setup and configure GPU Passthrough on systems with 1 graphic card (iGPU counts as 1 Graphic Card by itself, so iGPU with another GPU will work)
41
67
* Does not configure passthrough of 3D controllers, as it will not work (this is most gaming laptops so do not even think about it). If you try run this on a laptop with a 3D controller, the "2nd GPU" will not show up.
42
68
43
-
NOTE: This project is aimed at desktops and headless servers.
44
-
45
-
## Features
46
-
* Show general warning to user and inform about making a backup and general expectations
47
-
* Detect if user has an amd or intel CPU and provide the correct IOMMU kernel args based on that
48
-
* Configure your 2nd GPU for GPU Passthrough (1 for host, 1 for VM)
49
-
* Use [ls-iommu](https://github.com/HikariKnight/ls-iommu) to find PCI devices like graphic cards, usb controllers, etc and see what IOMMU group they are in
50
-
* Enable and configure vfio modules (initramfs-tools, dracut, modprobe and mkinitcpio)
51
-
* Generate the correct kernel arguments for grub and systemd-boot
52
-
* Generate a script to use for dumping the vbios rom (as some cards require a romfile for passthrough to work), however no rom patching support planned.
53
-
* Configure kernel arguments for systemd-boot (using kernelstub or grubby)
54
-
* Configure kernel arguments for grub2 (editing /etc/default/grub or using grubby)
55
-
* A menu system you can navigate through.
56
-
* Make sure [vendor-reset](https://github.com/gnif/vendor-reset) module is loaded before vfio, check the repository for the list of cards that require it!
57
-
* Provides you with the correct kernel arguments to add to your bootloader entry if a supported bootloader is not found
58
-
59
-
## Features now handled by [ls-iommu](https://github.com/HikariKnight/ls-iommu)
60
-
* Automatically handle GPUs where parts of it might be in separate IOMMU groups (ex: RX6600XT)
61
-
* Fetch the ID and PCI Address of devices
62
-
* Locate the vbios rom path on the system
63
-
* Tell the user to enable IOMMU (VT-d/AMD-v) on their motherboard and bootloader
64
-
* Get a list of devices, their IOMMU groups and various other information
This project originally started out as a bash only project, upon completing the proof of concept it became very clear that bash would become very messy with all the weird quirks and regex and inline editing of files. <br>
70
-
So the project moved over to golang, this lets us utilize TUI toolkits like to build a proper menu system for the project. <br>
73
+
So the project moved over to golang, this lets us utilize TUI toolkits to build a proper menu system for the project. <br>
71
74
72
75
If you know golang, passthrough or qemu, you are welcome to help! Just make a pull request!<br>
73
76
Just remember to add comments to document the work and explain it for people who are less familiar with the golang syntax or anything else you use. 😄
0 commit comments