egpu-switcher
egpu-switcher copied to clipboard
Support selection of eGPUs
I currently switch between 3 different eGPU scenarios:
- Undocked (i.e. no eGPU)
- Docked with AMD eGPU
- Docked with Nvidia eGPU
Currently, it doesn't seem possible to have 3 different Xorg .confs that the startup script selects from. This means that whenever I switch from AMD to Nvidia, or vice-versa, I need to recreate the configuration for egpu-switcher
.
Thanks for your feedback. Did you come up with a workaround?
This issue is something I'm aware of, but wasn't able to address in the current egpu-switcher
script. It would require some bigger changes due to how the script works.
I am actually working on a rewrite of the script where I try to address the current limitations. You can find some more information about that on the Discussions tab. See the bullet point Multiple environments including non-eGPU docks, which covers your issue.
I'll leave that issue open for now, but would happily accept PRs if someone has a solid workaround. Sorry for the inconvenience.
My "workaround" has been to just manually switch to a TTY and rerun the script whenever I switch setups, which is luckily only ~once/week.
Very excited for the rewrite :+1:. Is there a branch that I can monitor progress/test out during your development?
Very excited for the rewrite +1. Is there a branch that I can monitor progress/test out during your development?
Not yet. The code I have is quite messy and rapidly changes, because I'm still figuring stuff out. There are some questions I need to be able to answer before I am confident enough to make it public I guess.
Two larger question that I don't have the answer to right now:
- A reliable and vendor agnostic way to identify eGPUs (like with a serial number). I could match them based on Vendor-ID/Device-ID, but that may be problematic if anyone has two eGPUs with the exact same GPU model. There is no straight forward way to differentiate those (at least solely based on PCI, because there seems to be no standardized way to get serial numbers of PCI devices). That's why I wanted to integrate with
bolt
, because I can identify different Thunderbolt devices from each other, as they have UUIDs. But that leads to the next question. - How to find out whether a PCI device is connected through Thunderbolt, and if so, through WHICH thunderbolt device they are connected. If I could solve this, I could potentially resolve the previous problem and differentiate eGPUs – because I can differentiate the Thunderbolt Bridges they are connected on.
Solving these two problems would be a pretty big step in order to figure out the final structure of the the overwrite. And would make it possible to break out of my current prototyping phase. Although some questions would still be left open; For example how I can make the project useful for people with "eGPUs" which are not connected through thunderbolt (I was made aware recently that there are people using egpu-switcher with express-cards :smile: https://github.com/hertg/egpu-switcher/issues/62#issuecomment-830819429)
@BryceBeagle It's been a while. Are you still using egpu-switcher? Or did you find another solution? With the rewrite that I've recently undertaken and am planning on releasing as stable soon, implementing this should be fairly easy.
I'm still using egpu-switcher
but I'm only using one eGPU now so I don't encounter this problem anymore.