Merge pull request #2 from philclifford/first-thoughts

First thoughts - just readme
This commit is contained in:
HikariKnight 2022-03-04 00:15:14 +01:00 committed by GitHub
commit 9e9aabb234
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,18 +1,20 @@
# VFIO-enabler (name pending) # VFIO-enabler (name pending)
A project to simplify setting up GPU passthrough for [QuickEMU](https://github.com/quickemu-project/quickemu) and libvirt A project to simplify setting up GPU passthrough for [QuickEMU](https://github.com/quickemu-project/quickemu) and libvirt
Currently this project does NO MODIFICATIONS to your system, all it does is generate the files needed for testing inside `./config/`<br> Currently this project does **NO MODIFICATIONS** to your system, all it does is generate the files needed for testing inside `./config/`
In a future version it will ask if you want changes applied to your system, however I am not enabling that until I have confirmation that this generates a working configuration for other systems than my own. In a future version it will ask if you want changes applied to your system, however I am not enabling that until I have confirmation that this generates a working configuration for other systems than my own.
You can use it by simply running You can use it by simply running
```bash ```bash
git clone https://github.com/HikariKnight/VFIO-enabler.git git clone https://github.com/HikariKnight/VFIO-enabler.git
cd VFIO-enabler cd VFIO-enabler
chmod +x ./vfio-setup
./vfio-setup ./vfio-setup
``` ```
## Features ## Features
* General warning and info about what you will be needing * General warning and info about what you will be needing
* Enable and configure vfio modules * Enable and configure vfio modules
* Configure 2nd GPU for GPU Passthrough * Configure 2nd GPU for GPU Passthrough
@ -21,17 +23,19 @@ chmod +x ./vfio-setup
* Provides you with the correct kernel arguments to add to your bootloader entry * Provides you with the correct kernel arguments to add to your bootloader entry
## Contributing ## Contributing
<img src="https://user-images.githubusercontent.com/2557889/156038229-4e70352f-9182-4474-8e32-d14d3ad67566.png" width="250px"><br>
I know my bash skills are not great, so help is always welcome! And help is wanted here.<br> <img src="https://user-images.githubusercontent.com/2557889/156038229-4e70352f-9182-4474-8e32-d14d3ad67566.png" width="250px">
If you know bash well, you will be able to help! Just make a pull request with your changes!<br>
Just remember to add comments to document the work and explain it for people who are less familiar with the bash syntax or anything else you use. 😄<br> I know my bash skills are not great, so help is always welcome! And help is wanted here.
<br> If you know bash well, you will be able to help! Just make a pull request with your changes!
Also if you know english, you can just help proof reading. English is not my native language, plus I have dyslexia so I often make spelling mistakes.<br> Just remember to add comments to document the work and explain it for people who are less familiar with the bash syntax or anything else you use. 😄
Also if you know English, you can help by just proof reading. English is not my native language, plus I have dyslexia so I often make spelling mistakes.
Proof reading is still contribution! Proof reading is still contribution!
## TODO ## TODO
* ~~Everything~~
* ~~Everything
* ~~Show general warning to user and inform about making a backup and general expectations~~ * ~~Show general warning to user and inform about making a backup and general expectations~~
* ~~Detect if user has an amd or intel CPU and provide the correct IOMMU kernel args based on that~~ * ~~Detect if user has an amd or intel CPU and provide the correct IOMMU kernel args based on that~~
* ~~Tell user to enable IOMMU (VT-d/AMD-v) on their motherboard and bootloader~~ * ~~Tell user to enable IOMMU (VT-d/AMD-v) on their motherboard and bootloader~~
@ -40,16 +44,17 @@ Proof reading is still contribution!
* ~~Fetch the ID for the GPUs and generate the correct kernel arguments for grub and systemd-boot~~ * ~~Fetch the ID for the GPUs and generate the correct kernel arguments for grub and systemd-boot~~
* ~~Dump the GPU rom, just in case it will be needed for passthrough~~ (no rom patching planned due to complexity) * ~~Dump the GPU rom, just in case it will be needed for passthrough~~ (no rom patching planned due to complexity)
* Get help to actually make the scripts better * Get help to actually make the scripts better
* A non hacky menu system? (I will need help by some bash wizards for this) * A non-hacky menu system? (I will need help by some bash wizards for this)
* Colored highlight/text for important information? * Coloured highlight/text for important information?
* Blacklist drivers? (some cards require blacklisting as softdep is not enough) * Blacklist drivers? (some cards require blacklisting as softdep is not enough)
* Install vendor_reset kernel module? (maybe far future) * Install vendor_reset kernel module? (maybe far future)
* Setup looking-glass? (far future maybe) * Setup looking-glass? (far future maybe)
<br> ----
### Why bash? ### Why bash?
I wanted the dependencies to be minimal without the need for compilation and not have a potential breaking change in the future (like with the transition from python2 to python3).
I wanted the dependencies to be minimal without the need for compilation and to avoid potential breaking changes in the future (like with the transition from python2 to python3).
I know enough bash to make things work, but I am in no way a professional in writing bash scripts as I usually write python and golang. I know enough bash to make things work, but I am in no way a professional in writing bash scripts as I usually write python and golang.