I use two Docker with separated GPUs. The GPU Part works so far very good. But the Problem is mouse & keyboard. If i move the Mouse Docker 1 the mouse moves in Docker2 as well. But the interesting part ist, if i move the mouse in docker 2, the mouse in docker 1 isnt moving. Same with keyboard. if i disable the evdev in the dockers, the mouse isnt moving at all in moonlight. Over the Webui it works without problem.
To be honest, i tried different things but in the end, i dont know where to start to debug. Host ist Debian 11 with a nvidia 4070 ti super and 3090. For Streaming i use sunshine/moonlight
xconf.org on the host:
Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" Option "Xinerama" "0" EndSection Section "ServerLayout" Identifier "Layout1" Screen 0 "Screen1" InputDevice "Keyboard1" "CoreKeyboard" InputDevice "Mouse1" "CorePointer" Option "Xinerama" "0" EndSection Section "Files" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mouse0" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Mouse1" Driver "mouse" Option "Device" "/dev/input/mouse2" Option "Protocol" "auto" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" # generated from default Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" # generated from default Identifier "Keyboard1" Driver "kbd" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Unknown" ModelName "Unknown" Option "DPMS" EndSection Section "Monitor" Identifier "Monitor1" VendorName "Unknown" ModelName "Unknown" Option "DPMS" EndSection Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:1:0:0" EndSection Section "Device" Identifier "Device1" Driver "nvidia" VendorName "NVIDIA Corporation" BusID "PCI:9:0:0" EndSection Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Device1" Monitor "Monitor1" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
the compose-file Docker1:
services: steam-headless: image: josh5/steam-headless:latest restart: unless-stopped shm_size: ${SHM_SIZE} #privileged: true ipc: host # Could also be set to 'shareable' ulimits: nofile: soft: 1024 hard: 524288 cap_add: - NET_ADMIN - SYS_ADMIN - SYS_NICE security_opt: - seccomp:unconfined - apparmor:unconfined # NETWORK: ## NOTE: With this configuration, if we do not use the host network, then physical device input ## is not possible and your USB connected controllers will not work in steam games. network_mode: host hostname: ${NAME} extra_hosts: - "${NAME}:127.0.0.1" # ENVIRONMENT: ## Read all config variables from the .env file environment: # System - TZ=${TZ} - USER_LOCALES=${USER_LOCALES} - DISPLAY=${DISPLAY} # User - PUID=${PUID} - PGID=${PGID} - UMASK=${UMASK} - USER_PASSWORD=${USER_PASSWORD} # Mode - MODE=${MODE} # Web UI - WEB_UI_MODE=${WEB_UI_MODE} - ENABLE_VNC_AUDIO=${ENABLE_VNC_AUDIO} - PORT_NOVNC_WEB=${PORT_NOVNC_WEB} - NEKO_NAT1TO1=${NEKO_NAT1TO1} # Steam - ENABLE_STEAM=${ENABLE_STEAM} - STEAM_ARGS=${STEAM_ARGS} # Sunshine - ENABLE_SUNSHINE=${ENABLE_SUNSHINE} - SUNSHINE_USER=${SUNSHINE_USER} - SUNSHINE_PASS=${SUNSHINE_PASS} # Xorg - ENABLE_EVDEV_INPUTS=${ENABLE_EVDEV_INPUTS} - FORCE_X11_DUMMY_CONFIG=${FORCE_X11_DUMMY_CONFIG} # Nvidia specific config - NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES} - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} - NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION} runtime: nvidia # DEVICES: devices: # Use the host fuse device [REQUIRED]. - /dev/fuse # Add the host uinput device [REQUIRED]. - /dev/uinput # Add NVIDIA HW accelerated devices [OPTIONAL]. # Add NVIDIA HW accelerated devices [OPTIONAL]. # NOTE: If you use the nvidia container toolkit, this is not needed. # Installing the nvidia container toolkit is the recommended method for running this container #- /dev/nvidia3 # - /dev/nvidia0 # - /dev/nvidia1 # - /dev/nvidia2 # - /dev/nvidiactl # - /dev/nvidia-modeset # - /dev/nvidia-uvm # - /dev/nvidia-uvm-tools # - /dev/nvidia-caps/nvidia-cap1 # - /dev/nvidia-caps/nvidia-cap2 # - /dev/dri/ # Ensure container access to devices 13:* # NOTE: If you use the nvidia container toolkit, this is not needed. # Installing the nvidia container toolkit is the recommended method for running this container # GPU PASSTHROUGH deploy: resources: reservations: # Enable support for NVIDIA GPUs. # # Ref: https://docs.docker.com/compose/gpu-support/#enabling-gpu-access-to-service-containers devices: - capabilities: [gpu] device_ids: ["${NVIDIA_VISIBLE_DEVICES}"] device_cgroup_rules: - 'c 13:* rmw' # VOLUMES: volumes: # The location of your home directory. - ${HOME_DIR}/:/home/default/:rw # The location where all games should be installed. # This path needs to be set as a library path in Steam after logging in. # Otherwise, Steam will store games in the home directory above. - ${GAMES_DIR}/:/mnt/games/:rw # The Xorg socket. - ${SHARED_SOCKETS_DIR}/.X11-unix/:/tmp/.X11-unix/:rw # Pulse audio socket. - ${SHARED_SOCKETS_DIR}/pulse/:/tmp/pulse/:rw
the .env file Docker1:
NAME=SteamHeadless TZ=Pacific/Auckland USER_LOCALES=en_US.UTF-8 UTF-8 DISPLAY=:1 SHM_SIZE=2G HOME_DIR=/srv/dev-disk-by-uuid-2ba384f1-3b00-4b0d-8e09-007772e6f1bf/Docker/steamos1/home SHARED_SOCKETS_DIR=/opt/container-data/steam-headless/sockets GAMES_DIR=/srv/dev-disk-by-uuid-2ba384f1-3b00-4b0d-8e09-007772e6f1bf/Docker/steamos/games PUID=1000 PGID=100 UMASK=000 USER_PASSWORD=password MODE=primary WEB_UI_MODE=vnc ENABLE_VNC_AUDIO=false PORT_NOVNC_WEB=8084 NEKO_NAT1TO1= ENABLE_STEAM=true STEAM_ARGS=-silent ENABLE_SUNSHINE=true SUNSHINE_USER=admin SUNSHINE_PASS=admin ENABLE_EVDEV_INPUTS=true FORCE_X11_DUMMY_CONFIG=false NVIDIA_DRIVER_CAPABILITIES=all NVIDIA_VISIBLE_DEVICES=GPU-4d3a6b72-e370-87f2-721f-428302c1a40d NVIDIA_DRIVER_VERSION=565.57.01
The docker-compose file Docker 2:
services: steam-headless: image: josh5/steam-headless:latest restart: unless-stopped shm_size: ${SHM_SIZE} #privileged: true ipc: host # Could also be set to 'shareable' ulimits: nofile: soft: 1024 hard: 524288 cap_add: - NET_ADMIN - SYS_ADMIN - SYS_NICE security_opt: - seccomp:unconfined - apparmor:unconfined # NETWORK: ## NOTE: With this configuration, if we do not use the host network, then physical device input ## is not possible and your USB connected controllers will not work in steam games. network_mode: host hostname: ${NAME} extra_hosts: - "${NAME}:127.0.0.1" # ENVIRONMENT: ## Read all config variables from the .env file environment: # System - TZ=${TZ} - USER_LOCALES=${USER_LOCALES} - DISPLAY=${DISPLAY} # User - PUID=${PUID} - PGID=${PGID} - UMASK=${UMASK} - USER_PASSWORD=${USER_PASSWORD} # Mode - MODE=${MODE} # Web UI - WEB_UI_MODE=${WEB_UI_MODE} - ENABLE_VNC_AUDIO=${ENABLE_VNC_AUDIO} - PORT_NOVNC_WEB=${PORT_NOVNC_WEB} - NEKO_NAT1TO1=${NEKO_NAT1TO1} # Steam - ENABLE_STEAM=${ENABLE_STEAM} - STEAM_ARGS=${STEAM_ARGS} # Sunshine - ENABLE_SUNSHINE=${ENABLE_SUNSHINE} - SUNSHINE_USER=${SUNSHINE_USER} - SUNSHINE_PASS=${SUNSHINE_PASS} # Xorg - ENABLE_EVDEV_INPUTS=${ENABLE_EVDEV_INPUTS} - FORCE_X11_DUMMY_CONFIG=${FORCE_X11_DUMMY_CONFIG} # Nvidia specific config - NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES} - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} - NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION} runtime: nvidia # DEVICES: devices: # Use the host fuse device [REQUIRED]. - /dev/fuse # Add the host uinput device [REQUIRED]. - /dev/uinput # Add NVIDIA HW accelerated devices [OPTIONAL]. # Add NVIDIA HW accelerated devices [OPTIONAL]. # NOTE: If you use the nvidia container toolkit, this is not needed. # Installing the nvidia container toolkit is the recommended method for running this container #- /dev/nvidia3 # - /dev/nvidia0 # - /dev/nvidia1 # - /dev/nvidia2 # - /dev/nvidiactl # - /dev/nvidia-modeset # - /dev/nvidia-uvm # - /dev/nvidia-uvm-tools # - /dev/nvidia-caps/nvidia-cap1 # - /dev/nvidia-caps/nvidia-cap2 # - /dev/dri/ # Ensure container access to devices 13:* # NOTE: If you use the nvidia container toolkit, this is not needed. # Installing the nvidia container toolkit is the recommended method for running this container # GPU PASSTHROUGH deploy: resources: reservations: # Enable support for NVIDIA GPUs. # # Ref: https://docs.docker.com/compose/gpu-support/#enabling-gpu-access-to-service-containers devices: - capabilities: [gpu] device_ids: ["${NVIDIA_VISIBLE_DEVICES}"] device_cgroup_rules: - 'c 13:* rmw' # VOLUMES: volumes: # The location of your home directory. - ${HOME_DIR}/:/home/default/:rw # The location where all games should be installed. # This path needs to be set as a library path in Steam after logging in. # Otherwise, Steam will store games in the home directory above. - ${GAMES_DIR}/:/mnt/games/:rw # The Xorg socket. - ${SHARED_SOCKETS_DIR}/.X11-unix/:/tmp/.X11-unix/:rw # Pulse audio socket. - ${SHARED_SOCKETS_DIR}/pulse/:/tmp/pulse/:rw ```
.env file Docker2:
NAME=SteamHeadless2 TZ=Pacific/Auckland USER_LOCALES=en_US.UTF-8 UTF-8 DISPLAY=:1 SHM_SIZE=2G HOME_DIR=/srv/dev-disk-by-uuid-2ba384f1-3b00-4b0d-8e09-007772e6f1bf/Docker/steamos1/home SHARED_SOCKETS_DIR=/opt/container-data/steam-headless/sockets GAMES_DIR=/srv/dev-disk-by-uuid-2ba384f1-3b00-4b0d-8e09-007772e6f1bf/Docker/steamos/games PUID=1000 PGID=100 UMASK=000 USER_PASSWORD=password MODE=primary WEB_UI_MODE=vnc ENABLE_VNC_AUDIO=false PORT_NOVNC_WEB=8084 NEKO_NAT1TO1= STEAM_ARGS=-silent ENABLE_SUNSHINE=true SUNSHINE_USER=admin SUNSHINE_PASS=admin ENABLE_EVDEV_INPUTS=true FORCE_X11_DUMMY_CONFIG=false NVIDIA_DRIVER_CAPABILITIES=all NVIDIA_VISIBLE_DEVICES=GPU-4d3a6b72-e370-87f2-721f-428302c1a40d NVIDIA_DRIVER_VERSION=565.57.01 thanks for helping