All Projects → rosineygp → proxmox-pci-switcher

rosineygp / proxmox-pci-switcher

Licence: MIT license
Switch among Guest VMs organized by Resource Pool

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Makefile
30231 projects
kvlang
13 projects

Projects that are alternatives of or similar to proxmox-pci-switcher

uberswitch
A header-only, unobtrusive, almighty alternative to the C++ switch statement that looks just like the original.
Stars: ✭ 83 (-20.19%)
Mutual labels:  switch
xiaomiplug
Xiaomi Mi Smart WiFi Socket integration for Home Assistant
Stars: ✭ 99 (-4.81%)
Mutual labels:  switch
freenas-proxmox
ZFS over iSCSI to FreeNAS API's from Proxmox VE
Stars: ✭ 129 (+24.04%)
Mutual labels:  proxmox
PokemonRNGGuides
A repository of Pokemon RNG abuse guides
Stars: ✭ 62 (-40.38%)
Mutual labels:  switch
proxtop
Proxmox resource monitor -- list top resource users of your proxmox VM platform
Stars: ✭ 25 (-75.96%)
Mutual labels:  proxmox
rcli
Simplified R version handling
Stars: ✭ 33 (-68.27%)
Mutual labels:  switch
GDCheckbox
Customizable CheckBox / RadioButton component for iOS
Stars: ✭ 23 (-77.88%)
Mutual labels:  switch
dab templates
DAB Templates for Proxmox
Stars: ✭ 21 (-79.81%)
Mutual labels:  proxmox
SHSliderSwitch
SHSliderSwitch is a simple lightweight library to implement an animated slider switch.
Stars: ✭ 18 (-82.69%)
Mutual labels:  switch
ng-toggle
Bootstrap-styled Angular Toggle Component
Stars: ✭ 14 (-86.54%)
Mutual labels:  switch
terraform-provider-proxmox
terraform provider for proxmox
Stars: ✭ 28 (-73.08%)
Mutual labels:  proxmox
simple-switch
Vanilla JS/CSS Switch UI element
Stars: ✭ 18 (-82.69%)
Mutual labels:  switch
PygameWidgets
A module for use with Pygame. Includes fully customisable buttons, textboxes, sliders and many more, as well as the ability to create and run animations on these widgets.
Stars: ✭ 34 (-67.31%)
Mutual labels:  switch
NodePingManage
可用于监控交换机/服务器/防火墙的存活状态的ping监控报警系统
Stars: ✭ 47 (-54.81%)
Mutual labels:  switch
nx
Userland library for Nintendo Switch homebrew (and other potential purposes), written in pure Rust and some assembly bits
Stars: ✭ 67 (-35.58%)
Mutual labels:  switch
ModuleMania
Various useful sysmodules (kip files) for Nintendo Switch, to be used with CFW
Stars: ✭ 30 (-71.15%)
Mutual labels:  switch
jw-bootstrap-switch-ng2
Bootstrap Switch for Angular 2+
Stars: ✭ 45 (-56.73%)
Mutual labels:  switch
emusak-ui
This is a tool which allows you to download saves or mods for Nintendo Switch emulators using a compatible Emusak backend
Stars: ✭ 877 (+743.27%)
Mutual labels:  switch
madalynn-packer
Packer configuration for Ubuntu Server 18.04, 20.04 and 22.04 for Proxmox.
Stars: ✭ 48 (-53.85%)
Mutual labels:  proxmox
lily
Hosts管理工具,双击切换立即生效,告别重启浏览器! Hosts manager takes effect immediately on switch
Stars: ✭ 69 (-33.65%)
Mutual labels:  switch

logo

Proxmox PCI Switcher

GitHub all releases PyPI - Downloads Quality Gate Status

Switch among Guest VMs organized by Resource Pool.

main features:

  • ONE GPU card, N OS (at once)
  • Guest VM command client
  • Handler power off
  • Reset framebuffer

TOC

Proxmox Configuration

Create Resource Pool

Resource Pool

Assign Guest VM

Assign Guest VM

Install Proxmox Snippet

curl -fsSL https://github.com/rosineygp/proxmox-pci-switcher/releases/latest/download/pci-group-switcher.sh > pci-group-switcher.sh

# set execution permission
chmod +x pci-group-switcher.sh

# move for your snippets <storage>/<folder>

Proxmox Config

Snippet Variables

NAME Default Description
_POOL_NAME * <auto_discovery> The name of Resource Pool
_SHUTDOWN_TIMEOUT 300 Checking if resource was released (Current VM Running is down)
_RESET_GPU_FRAMEBUFFER true Reset GPU framebuffer
_PIN_CPU_IDS false Pin CPU using taskset (syntax equals taskset cpu-list parameter)
_RENICE_PRIORITY false Renice process using renice

All variables must be changed in pci-group-switcher.sh at proxmox ve.

_POOL_NAME * By default it will scan for VMID in all Resource Pools, in case of long delays replace function call to Resource Pool name (eg. desktop, gpu, ...).

The following variables can be passed using /etc/pve/qemu-server/<vmid>.vars file, the script will load variables from file if it exists.

If you need to overwrite an Default value set at /etc/environment the variable name without the _ prefix. (eg. RESET_GPU_FRAMEBUFFER=false)

Assign VM to Snippet

qm set <vmid> -hookscript <storage>:snippets/pci-group-switcher.sh

After proxmox configuration is possible to switch using proxmox api or web interface.

Guest Client Switcher

  • requirements: python 3
pip install proxmox-pci-switcher

# create config folder
mkdir -p ~/.config/proxmox-pci-switcher/

# create config file
cat <<EOF > ~/.config/proxmox-pci-switcher/config.yaml
proxmox:
  host: '<ip or dns>'
  user: '<user>@<method>'
  password: '<password>'
  api_id: '<name>'          # only for api access
  api_token: '<token>'      # only for api access
  verify_ssl: false

gui:                        # optional
  theme: Dark               # Light or Dark

pools:
  - '<desktop>'
  - '<gpu-nvidia>'
  - '<gpu-amd>'

EOF

Edit config.yaml with your proxmox credentials and pools.

API access has priority over user and password access.

List Resources

proxmox-pci-switcher list

pool(s)       vmid  name             status    type
----------  ------  ---------------  --------  ------
desktop        119  catalina         stopped   qemu
desktop        116  win10-desktop    stopped   qemu
desktop        117  mini-desktop     stopped   qemu
desktop        103  u20-desktop      running   qemu
desktop        115  u20-srv-desktop  stopped   qemu

Switch Resource

# run command directly
proxmox-pci-switcher switch win10-desktop

# create a alias for better experience
alias windows="proxmox-pci-switcher switch win10-desktop"

# and just run
windows

Using GUI

proxmox-pci-switcher gui

GUI

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].