Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hertg/egpu-switcher
🖥🐧 Setup script for eGPUs in Linux (X.Org)
https://github.com/hertg/egpu-switcher
egpu hacktoberfest linux x11 xorg xorg-config xserver
Last synced: about 2 months ago
JSON representation
🖥🐧 Setup script for eGPUs in Linux (X.Org)
- Host: GitHub
- URL: https://github.com/hertg/egpu-switcher
- Owner: hertg
- License: gpl-3.0
- Created: 2019-02-09T23:57:29.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2023-03-15T13:48:31.000Z (over 1 year ago)
- Last Synced: 2024-06-20T11:11:52.658Z (3 months ago)
- Topics: egpu, hacktoberfest, linux, x11, xorg, xorg-config, xserver
- Language: Go
- Homepage:
- Size: 22.5 MB
- Stars: 564
- Watchers: 15
- Forks: 56
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Funding: FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- my-awesome - hertg/egpu-switcher - config,xserver pushed_at:2024-09 star:0.6k fork:0.1k 🖥🐧 Setup script for eGPUs in Linux (X.Org) (Go)
README
## Description
The goal of this CLI is to lower the barrier for Linux users to
use their eGPU on the Linux Desktop. With the `egpu-switcher config`
command the user can choose their external GPU.
On every bootup the service will check if the eGPU is connected
and if so, make X.Org prefer it.---
## Limitations
- No hotplugging is possible. Users still need to reboot their computer to connect / disconnect the eGPU.
---
## Requirements
- Running X.Org
- Thunderbolt connection to eGPU is authorized
- Necessary graphics drivers for eGPU are installed---
## Installation
### Ubuntu (apt)
*The PPA is no longer maintained for now (see [#90](https://github.com/hertg/egpu-switcher/issues/90))*
### Arch (aur)
```bash
paru -S egpu-switcher
```> :deciduous_tree::zap: Save time and energy by using the pre-compiled `egpu-switcher-bin` package
### Manual
#### Installation and setup
Download binary from [latest release](https://github.com/hertg/egpu-switcher/releases)
Copy binary to `/opt`, apply proper permissions, and link it in `/usr/bin`
```bash
sudo cp /opt/egpu-switcher
sudo chmod 755 /opt/egpu-switcher
sudo ln -s /opt/egpu-switcher /usr/bin/egpu-switcher
sudo egpu-switcher enable
```#### Uninstall
```bash
sudo egpu-switcher disable --hard
sudo rm /usr/bin/egpu-switcher
sudo rm /opt/egpu-switcher
```### Build
#### Prerequisites
Install the [go toolchain](https://go.dev/doc/install)
#### Installation and setup
```bash
git clone [email protected]:hertg/egpu-switcher.git
cd egpu-switcher
make build -s
sudo make install -s
sudo egpu-switcher enable
```#### Uninstall
```bash
sudo egpu-switcher disable --hard
sudo make uninstall -s
```---
## Commands
```txt
Usage:
egpu-switcher [command]Available Commands:
config Choose your external GPU
disable Disable egpu-switcher from running at startup
enable Enable egpu-switcher to run at startup
help Help about any command
switch Check if eGPU is present and configure X.org accordingly
version Print version informationFlags:
-h, --help help for egpu-switcher
-v, --verbose verbose outputUse "egpu-switcher [command] --help" for more information about a command.
```
---
## Configuration
The config file is created automatically and can be found at `/etc/egpu-switcher/config.yaml`.
Below you can see an example of a configuration file, annotated with additional information.```yaml
egpu:
# the 'driver' and 'id' configs are generated by 'egpu-switcher config'.
# you probably shouldn't change this manually unless you understand why.
driver: amdgpu
id: 1153611719250962689
# OPTIONAL: do not load 'modesetting' in the egpu config
nomodesetting: false# OPTIONAL: how many times 'egpu-switcher switch auto' should retry finding the egpu.
# this can be helpful if the egpu takes some time to connect on your machine,
# the following values are the default.
detection:
retries: 6
interval: 500 # milliseconds# OPTIONAL: if you want to execute a script after switching to egpu/internal.
# the values must be absolute paths to a shell script, this script will
# then be run with '/bin/sh $script'.
#
# it is required that the script is owned by root (uid 0)
# and has a permission of -rwx------ (0700).
hooks:
internal: /home/michael/tmp/internal.sh
egpu: /home/michael/tmp/egpu.sh
```---
## Troubleshooting
If you run into problems, please have a look at
[TROUBLESHOOT.md](https://github.com/hertg/egpu-switcher/blob/master/TROUBLESHOOT.md)
before reporting any issues.