Open jefflewis opened 4 weeks ago
Thanks for the detailed issue, running a Docker container inside an LXC container might get tricky, but I'll try to help where I can.
The system does run, but will often disconnect the moonlight client with either a termination error or a UDP port error.
Wolf will definitely log something here, someone on Discord reported random warnings about binding the RTP port, could that be your case too?
When I launch a game, I only get a black screen
Bear in mind that the very first time you launch a game that is expected since Docker is actually downloading the image (and we don't have an easy way to report that progress, yet). The stream should stay open with a black screen until the app is actually running.
In the container logs, I see many errors around inputs.
From the few log lines that you've posted it seems that our custom compositor is not able to access the virtual devices (mouse and keyboard) that Wolf creates. I've noticed that you have a bunch of lxc.mount.entry
in your config; our virtual mouse and keyboard will have major 13
so maybe you should add something like
lxc.cgroup2.devices.allow: c 13:* rwm
What can I do to further troubleshoot what is wrong with my setup?
Generally setting WOLF_LOG_LEVEL=DEBUG
is helpful in troubleshooting issues. You can post a full log run here, and I'll try to help you!
Thanks so much for the help! I know this is one of the more complex ways to run this. My goal is to be able to share this GPU with other services for when it's not used for game streaming (ML, etc).
Adding the extra conf for control group 13 seemed to let me actually start up into a game further than I had before! I still see the machine drop its connection and not be able to resume. When I've seen it launch to a black screen, it seems more than a "loading" state, as I've let it sit for 30 minutes and it just stays. I
I looked at the host machine's /dev/input
directory, and it is in fact missing any event > 16, which are all events that fail in the wolf logs. I don't know what those events correlate to or why they are missing on the host.
root@pve1:~# ls -al /dev/input
total 0
drwxr-xr-x 4 root root 440 Jun 5 08:17 .
drwxr-xr-x 21 root root 5340 Jun 4 13:25 ..
drwxr-xr-x 2 root root 80 Jun 4 12:57 by-id
drwxr-xr-x 2 root root 100 Jun 4 12:57 by-path
crw-rw---- 1 root input 13, 64 Jun 4 12:57 event0
crw-rw---- 1 root input 13, 65 Jun 4 12:57 event1
crw-rw---- 1 root input 13, 74 Jun 4 12:57 event10
crw-rw---- 1 root input 13, 75 Jun 4 12:57 event11
crw-rw---- 1 root input 13, 76 Jun 4 12:57 event12
crw-rw---- 1 root input 13, 77 Jun 4 12:57 event13
crw-rw---- 1 root input 13, 78 Jun 4 12:57 event14
crw-rw---- 1 root input 13, 79 Jun 4 12:57 event15
crw-rw---- 1 root input 13, 80 Jun 4 12:57 event16
crw-rw---- 1 root input 13, 66 Jun 4 12:57 event2
crw-rw---- 1 root input 13, 67 Jun 4 12:57 event3
crw-rw---- 1 root input 13, 68 Jun 4 12:57 event4
crw-rw---- 1 root input 13, 69 Jun 4 12:57 event5
crw-rw---- 1 root input 13, 70 Jun 4 12:57 event6
crw-rw---- 1 root input 13, 71 Jun 4 12:57 event7
crw-rw---- 1 root input 13, 72 Jun 4 12:57 event8
crw-rw---- 1 root input 13, 73 Jun 4 12:57 event9
crw-rw---- 1 root input 13, 63 Jun 4 12:57 mice
Here's an example launch session log with the connection being terminated before steam ever launches:
wolf-wolf-1 | 12:16:48.602991894 DEBUG | 10.0.0.157 [GET] HTTPS://10.0.0.9/launch
wolf-wolf-1 | 12:16:48.603068404 DEBUG | Host app state folder: /etc/wolf/1782870069566224235/Steam, creating paths
wolf-wolf-1 | 12:16:48.605797557 DEBUG | [STREAM_SESSION] Create virtual audio sink
wolf-wolf-1 | 12:16:48.605832738 DEBUG | [STREAM_SESSION] Create wayland compositor
wolf-wolf-1 | 12:16:48.605842558 DEBUG | [WAYLAND] Creating wayland display
wolf-wolf-1 | 12:16:48.606208759 DEBUG | [PULSE] Created virtual sink: 19
wolf-wolf-1 | 12:16:48.620569332 DEBUG | [RTSP] received command OPTIONS
wolf-wolf-1 | 12:16:48.631846205 DEBUG | [RTSP] received command DESCRIBE
wolf-wolf-1 | 12:16:48.633157134 DEBUG | WAYLAND_DISPLAY=/tmp/sockets/wayland-2
wolf-wolf-1 | 12:16:48.641026876 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation
wolf-wolf-1 | 12:16:48.641046713 INFO | Mounting nvidia driver nvidia-driver-vol:/usr/nvidia
wolf-wolf-1 | 12:16:48.648119580 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:16:48.649374917 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation
wolf-wolf-1 | 12:16:48.649412762 DEBUG | [DOCKER] Using fake-udev, creating /etc/wolf/1782870069566224235/Steam/udev/data
wolf-wolf-1 | 12:16:48.663863475 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:16:48.679351545 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:16:48.692810576 DEBUG | [RTSP] received command ANNOUNCE
wolf-wolf-1 | 12:16:48.692867929 DEBUG | [RTSP] Moonlight requested video format HEVC
wolf-wolf-1 | 12:16:48.692897189 INFO | RTP server started on port: 48101
wolf-wolf-1 | 12:16:48.692961287 INFO | RTP server started on port: 48201
wolf-wolf-1 | 12:16:48.692975070 DEBUG | Video session 1782870069566224235, waiting for PING...
wolf-wolf-1 | 12:16:48.693023555 DEBUG | Audio session 1782870069566224235, waiting for PING...
wolf-wolf-1 | 12:16:48.704036330 DEBUG | [RTSP] received command PLAY
wolf-wolf-1 | 12:16:48.706543945 DEBUG | [ENET] connected client: 10.0.0.157:57838
wolf-wolf-1 | 12:16:48.706763482 DEBUG | RTP server on port: 48101 stopped
wolf-wolf-1 | 12:16:48.706839662 DEBUG | Starting video pipeline: appsrc name=wolf_wayland_source is-live=true block=false format=3 stream-type=0 ! queue ! cudaupload ! cudaconvertscale !
wolf-wolf-1 | video/x-raw(memory:CUDAMemory), width=1280, height=720,
wolf-wolf-1 | chroma-site=mpeg2, format=NV12, colorimetry=bt601, pixel-aspect-ratio=1/1
wolf-wolf-1 | ! nvh265enc preset=low-latency-hq zerolatency=true gop-size=-1 rc-mode=cbr-ld-hq bitrate=7500 aud=false !
wolf-wolf-1 | h265parse !
wolf-wolf-1 | video/x-h265, profile=main, stream-format=byte-stream
wolf-wolf-1 | ! rtpmoonlightpay_video name=moonlight_pay
wolf-wolf-1 | payload_size=1392 fec_percentage=20 min_required_fec_packets=2 !
wolf-wolf-1 | udpsink bind-port=48101 host=10.0.0.157 port=56881 sync=true
wolf-wolf-1 |
wolf-wolf-1 | 12:16:48.788078387 DEBUG | Setting up wolf_wayland_source
wolf-wolf-1 | 12:16:48.788787508 WARN | [GSTREAMER] cudaconvertscale - Can't calculate borders ../subprojects/gst-plugins-bad/sys/nvcodec/gstcudaconvertscale.c:gst_cuda_base_convert_set_info:1265
wolf-wolf-1 | 12:16:49.184964437 DEBUG | RTP server on port: 48201 stopped
wolf-wolf-1 | 12:16:49.185280407 DEBUG | Starting audio pipeline: pulsesrc device="virtual_sink_1782870069566224235.monitor" server="/tmp/sockets/pulse-socket"
wolf-wolf-1 | ! audio/x-raw, channels=2 ! opusenc bitrate=48000 bitrate-type=constrained-vbr frame-size=5 bandwidth=fullband
wolf-wolf-1 | audio-type=restricted-lowdelay max-payload-size=1400
wolf-wolf-1 | ! rtpmoonlightpay_audio name=moonlight_pay packet_duration=5 encrypt=true
wolf-wolf-1 | aes_key="7ebf8a965d4b89de5a3176bc7ff0831b" aes_iv="241433879" !
wolf-wolf-1 | udpsink bind-port=48201 host=10.0.0.157 port=59460 sync=true
wolf-wolf-1 |
wolf-wolf-1 | 12:16:49.561243103 DEBUG | [GSTREAMER] Forcing IDR
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event20)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event20
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event21)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event21
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event22)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event22
wolf-wolf-1 | 12:16:55.061484464 DEBUG | [GSTREAMER] Forcing IDR
wolf-wolf-1 | 12:16:58.163225248 INFO | [DOCKER] Starting container: /WolfSteam_1782870069566224235
wolf-wolf-1 | 12:16:58.163286934 DEBUG | [DOCKER] Starting container: {
wolf-wolf-1 | id: c8ecfab9644ff0391d8fd5ac186bf23d68565edfa1584b70eb42c43efb73bbe1
wolf-wolf-1 | name: /WolfSteam_1782870069566224235
wolf-wolf-1 | image: ghcr.io/games-on-whales/steam:edge
wolf-wolf-1 | status: 0
wolf-wolf-1 | ports: []
wolf-wolf-1 | mounts: [/tmp/sockets/pulse-socket:/tmp/sockets/pulse-socket:rw, /tmp/sockets/wayland-2:/tmp/sockets/wayland-2:rw, /etc/wolf/1782870069566224235/Steam:/home/retro:rw, nvidia-driver-vol:/usr/nvidia:rw, /etc/wolf/1782870069566224235/Steam/udev:/run/udev/:rw, /etc/wolf/fake-udev:/usr/bin/fake-udev:ro]
wolf-wolf-1 | devices: [/dev/dri/card2:/dev/dri/card2:mrw, /dev/dri/renderD129:/dev/dri/renderD129:mrw, /dev/dri/card2:/dev/dri/card2:mrw, /dev/nvidia0:/dev/nvidia0:mrw, /dev/nvidia-modeset:/dev/nvidia-modeset:mrw, /dev/nvidia-uvm:/dev/nvidia-uvm:mrw, /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools:mrw, /dev/nvidiactl:/dev/nvidiactl:mrw]
wolf-wolf-1 | env: ["PROTON_LOG=1", "RUN_GAMESCOPE=true", "GOW_REQUIRED_DEVICES=/dev/input/* /dev/dri/* /dev/nvidia*", "PULSE_SOURCE=virtual_sink_1782870069566224235.monitor", "GAMESCOPE_REFRESH=60", "PULSE_SINK=virtual_sink_1782870069566224235", "WAYLAND_DISPLAY=wayland-2", "GAMESCOPE_HEIGHT=720", "PULSE_SERVER=/tmp/sockets/pulse-socket", "XDG_RUNTIME_DIR=/tmp/sockets", "GAMESCOPE_WIDTH=1280", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "PUID=1000", "PGID=1000", "UMASK=000", "UNAME=retro", "HOME=/home/retro", "TZ=Europe/London", "DEBIAN_FRONTEND=noninteractive", "NEEDRESTART_SUSPEND=1", "GAMESCOPE_VERSION=3.12.5", "BUILD_ARCHITECTURE=amd64", "DEB_BUILD_OPTIONS=noddebs"]
wolf-wolf-1 | }
wolf-wolf-1 | 12:16:58.163330790 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/1782870069566224235/Steam/udev/data/c13:84
wolf-wolf-1 | 12:16:58.163469153 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/1782870069566224235/Steam/udev/data/c13:85
wolf-wolf-1 | 12:16:58.163577960 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event20 c 13 84 && chmod 777 /dev/input/event20 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDIwAERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMyMy9ldmVudDIwAElEX0lOUFVUPTEASURfSU5QVVRfTU9VU0U9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODQAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTg5ODE4AA==
wolf-wolf-1 | 12:16:58.209594187 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event21 c 13 85 && chmod 777 /dev/input/event21 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDIxAERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMyNC9ldmVudDIxAElEX0lOUFVUPTEASURfSU5QVVRfVE9VQ0hQQUQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODUAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTg5ODE4AA==
wolf-wolf-1 | 12:16:58.244738381 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/1782870069566224235/Steam/udev/data/c13:86
wolf-wolf-1 | 12:16:58.244867471 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event22 c 13 86 && chmod 777 /dev/input/event22 && fake-udev -m LklOUFVUX0NMQVNTPWtleWJvYXJkAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDIyAERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMyNS9ldmVudDIyAElEX0lOUFVUPTEASURfSU5QVVRfS0VZQk9BUkQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODYAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTg5ODE4AA==
wolf-wolf-1 exited with code 0
Here's a session log of when I receive a UDP port error on launch:
wolf-wolf-1 | 12:31:11.668767081 DEBUG | 10.0.0.35 [GET] HTTPS://10.0.0.9/launch
wolf-wolf-1 | 12:31:11.669022775 DEBUG | Host app state folder: /etc/wolf/14937286610247286775/Steam, creating paths
wolf-wolf-1 | 12:31:11.669443783 DEBUG | [STREAM_SESSION] Create virtual audio sink
wolf-wolf-1 | 12:31:11.673464846 DEBUG | [STREAM_SESSION] Create wayland compositor
wolf-wolf-1 | 12:31:11.673571369 DEBUG | [WAYLAND] Creating wayland display
wolf-wolf-1 | 12:31:11.682773724 DEBUG | [PULSE] Created virtual sink: 4
wolf-wolf-1 | 12:31:11.712636070 DEBUG | [RTSP] received command OPTIONS
wolf-wolf-1 | 12:31:11.716347773 DEBUG | WAYLAND_DISPLAY=/tmp/sockets/wayland-1
wolf-wolf-1 | 12:31:11.728017913 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation
wolf-wolf-1 | 12:31:11.728181892 INFO | Mounting nvidia driver nvidia-driver-vol:/usr/nvidia
wolf-wolf-1 | 12:31:11.729260258 DEBUG | [RTSP] received command DESCRIBE
wolf-wolf-1 | 12:31:11.734292101 DEBUG | /dev/dri/renderD129 vendor: NVIDIA Corporation
wolf-wolf-1 | 12:31:11.734497443 DEBUG | [DOCKER] Using fake-udev, creating /etc/wolf/14937286610247286775/Steam/udev/data
wolf-wolf-1 | 12:31:11.747819040 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:31:11.759162748 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:31:11.780531658 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 12:31:11.798914598 DEBUG | [RTSP] received command ANNOUNCE
wolf-wolf-1 | 12:31:11.799223080 WARN | [RTSP] Received unparsable value ("a", "x-nv-aqo")
wolf-wolf-1 | 12:31:11.799371207 DEBUG | [RTSP] Moonlight requested video format HEVC
wolf-wolf-1 | 12:31:11.800392597 WARN | [RTP] Unable to start RTP server on 48100: bind: Address already in use [system:98 at /usr/include/boost/asio/detail/reactive_socket_service.hpp:161:33 in function 'bind']
wolf-wolf-1 | 12:31:11.800686103 INFO | RTP server started on port: 48200
wolf-wolf-1 | 12:31:11.801213466 DEBUG | Video session 14937286610247286775, waiting for PING...
wolf-wolf-1 | 12:31:11.801423058 DEBUG | Audio session 14937286610247286775, waiting for PING...
wolf-wolf-1 | 12:31:12.011626033 INFO | [DOCKER] Starting container: /WolfSteam_14937286610247286775
wolf-wolf-1 | 12:31:12.011807802 DEBUG | [DOCKER] Starting container: {
wolf-wolf-1 | id: 51d426ba70fb89c8a4d2248946f0e409901959fce161e0075a0c61630d346140
wolf-wolf-1 | name: /WolfSteam_14937286610247286775
wolf-wolf-1 | image: ghcr.io/games-on-whales/steam:edge
wolf-wolf-1 | status: 0
wolf-wolf-1 | ports: []
wolf-wolf-1 | mounts: [/tmp/sockets/pulse-socket:/tmp/sockets/pulse-socket:rw, /tmp/sockets/wayland-1:/tmp/sockets/wayland-1:rw, /etc/wolf/14937286610247286775/Steam:/home/retro:rw, nvidia-driver-vol:/usr/nvidia:rw, /etc/wolf/14937286610247286775/Steam/udev:/run/udev/:rw, /etc/wolf/fake-udev:/usr/bin/fake-udev:ro]
wolf-wolf-1 | devices: [/dev/dri/card2:/dev/dri/card2:mrw, /dev/dri/renderD129:/dev/dri/renderD129:mrw, /dev/dri/card2:/dev/dri/card2:mrw, /dev/nvidia0:/dev/nvidia0:mrw, /dev/nvidia-modeset:/dev/nvidia-modeset:mrw, /dev/nvidia-uvm:/dev/nvidia-uvm:mrw, /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools:mrw, /dev/nvidiactl:/dev/nvidiactl:mrw]
wolf-wolf-1 | env: ["PROTON_LOG=1", "RUN_GAMESCOPE=true", "GOW_REQUIRED_DEVICES=/dev/input/* /dev/dri/* /dev/nvidia*", "PULSE_SOURCE=virtual_sink_14937286610247286775.monitor", "GAMESCOPE_REFRESH=60", "PULSE_SINK=virtual_sink_14937286610247286775", "WAYLAND_DISPLAY=wayland-1", "GAMESCOPE_HEIGHT=720", "PULSE_SERVER=/tmp/sockets/pulse-socket", "XDG_RUNTIME_DIR=/tmp/sockets", "GAMESCOPE_WIDTH=1280", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "PUID=1000", "PGID=1000", "UMASK=000", "UNAME=retro", "HOME=/home/retro", "TZ=Europe/London", "DEBIAN_FRONTEND=noninteractive", "NEEDRESTART_SUSPEND=1", "GAMESCOPE_VERSION=3.12.5", "BUILD_ARCHITECTURE=amd64", "DEB_BUILD_OPTIONS=noddebs"]
wolf-wolf-1 | }
wolf-wolf-1 | 12:31:12.012503957 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14937286610247286775/Steam/udev/data/c13:81
wolf-wolf-1 | 12:31:12.012625777 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14937286610247286775/Steam/udev/data/c13:82
wolf-wolf-1 | 12:31:12.012736633 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event17 c 13 81 && chmod 777 /dev/input/event17 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE3AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMyOS9ldmVudDE3AElEX0lOUFVUPTEASURfSU5QVVRfTU9VU0U9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODEAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTkwNjcyAA==
wolf-wolf-1 | 12:31:12.064908663 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event18 c 13 82 && chmod 777 /dev/input/event18 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE4AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMzMC9ldmVudDE4AElEX0lOUFVUPTEASURfSU5QVVRfVE9VQ0hQQUQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODIAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTkwNjcyAA==
wolf-wolf-1 | 12:31:12.119997538 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14937286610247286775/Steam/udev/data/c13:83
wolf-wolf-1 | 12:31:12.120167384 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event19 c 13 83 && chmod 777 /dev/input/event19 && fake-udev -m LklOUFVUX0NMQVNTPWtleWJvYXJkAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE5AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDMzMS9ldmVudDE5AElEX0lOUFVUPTEASURfSU5QVVRfS0VZQk9BUkQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODMAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NTkwNjcyAA==
wolf-wolf-1 | 12:31:13.379512460 DEBUG | 10.0.0.157 [GET] HTTP://10.0.0.9/serverinfo
wolf-wolf-1 | 12:31:13.561317481 DEBUG | 10.0.0.157 [GET] HTTPS://10.0.0.9/serverinfo
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event17)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event17
wolf-wolf-1 | 12:31:15.685738881 DEBUG | [DOCKER] Container logs:
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | J[2024-06-05 13:31:12] [ /etc/cont-init.d/10-setup_user.sh: executing... ]
wolf-wolf-1 | 7[2024-06-05 13:31:12] **** Configure default user ****
wolf-wolf-1 | K[2024-06-05 13:31:12] Setting default user uid=1000(retro) gid=1000(retro)
wolf-wolf-1 | 8userdel: ubuntu mail spool (/var/mail/ubuntu) not found
wolf-wolf-1 | Auseradd: warning: the home directory /home/retro already exists.
wolf-wolf-1 | ;useradd: Not copying any file from skel directory into it.
wolf-wolf-1 | +[2024-06-05 13:31:12] Setting umask to 000
wolf-wolf-1 | >[2024-06-05 13:31:12] Ensure retro home directory is writable
wolf-wolf-1 | 9[2024-06-05 13:31:12] Ensure XDG_RUNTIME_DIR is writable
wolf-wolf-1 | DONE
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | M[2024-06-05 13:31:12] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]
wolf-wolf-1 | 2[2024-06-05 13:31:12] **** Configure devices ****
wolf-wolf-1 | )[2024-06-05 13:31:12] Exec device groups
wolf-wolf-1 | L[2024-06-05 13:31:12] Adding user 'retro' to groups: gow-gid-104,video,root
wolf-wolf-1 | DONE
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | F[2024-06-05 13:31:12] [ /etc/cont-init.d/30-nvidia.sh: executing... ]
wolf-wolf-1 | -[2024-06-05 13:31:12] Nvidia driver detected
wolf-wolf-1 | .[2024-06-05 13:31:12] [nvidia] Add Vulkan ICD
wolf-wolf-1 | 9[2024-06-05 13:31:12] [nvidia] Add EGL external platform
wolf-wolf-1 | .[2024-06-05 13:31:12] [nvidia] Add egl-vendor
wolf-wolf-1 | /[2024-06-05 13:31:12] [nvidia] Add gbm backend
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | K[2024-06-05 13:31:12] [ /etc/cont-init.d/init-gamescope.sh: executing... ]
wolf-wolf-1 | 5[2024-06-05 13:31:12] **** Setting up Gamescope ****
wolf-wolf-1 | [2024-06-05 13:31:12]
wolf-wolf-1 | L[2024-06-05 13:31:12] [ /etc/cont-init.d/system-services.sh: executing... ]
wolf-wolf-1 | *** DBus started ***
wolf-wolf-1 | *** Bluez started ***
wolf-wolf-1 | 'bluetoothd[169]: Bluetooth daemon 5.72
wolf-wolf-1 | Tbluetoothd[169]: src/adapter.c:adapter_init() Failed to access management interface
wolf-wolf-1 | Jbluetoothd[169]: src/main.c:main() Adapter handling initialization failed
wolf-wolf-1 | *** NetworkManager started ***
wolf-wolf-1 | O[2024-06-05 13:31:12] Launching the container's startup script as user 'retro'
wolf-wolf-1 | 3[2024-06-05 13:31:12] Starting Steam with DISPLAY=
wolf-wolf-1 | IClaimed global gamescope stats session at "/tmp/sockets/gamescope-stats"
wolf-wolf-1 | GNo CAP_SYS_NICE, falling back to regular-priority compute and threads.
wolf-wolf-1 | Performance will be affected.
wolf-wolf-1 | Dwlserver: [backend/headless/backend.c:68] Creating headless backend
wolf-wolf-1 | gamescope failed
wolf-wolf-1 |
wolf-wolf-1 | 12:31:15.685755410 DEBUG | [DOCKER] Stopping container: /WolfSteam_14937286610247286775
wolf-wolf-1 | 12:31:15.697608515 INFO | Stopped container: /WolfSteam_14937286610247286775
wolf-wolf-1 | 12:31:15.697828455 DEBUG | [STREAM_SESSION] Remove virtual audio sink
wolf-wolf-1 | 12:31:15.701483896 DEBUG | [PULSE] Removed virtual sink, status: 1
wolf-wolf-1 | 12:31:15.701797202 DEBUG | Deleting WaylandSession 14937286610247286775
wolf-wolf-1 | 12:31:15.701945120 DEBUG | [ENET] Unable to find enet client 14937286610247286775
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event18)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event18
wolf-wolf-1 | 12:31:16.660778850 DEBUG | 10.0.0.157 [GET] HTTP://10.0.0.9/serverinfo
wolf-wolf-1 | 12:31:16.820182561 DEBUG | 10.0.0.157 [GET] HTTPS://10.0.0.9/serverinfo
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event19)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event19
wolf-wolf-1 | 12:31:19.889003808 DEBUG | 10.0.0.157 [GET] HTTP://10.0.0.9/serverinfo
wolf-wolf-1 | 12:31:20.023180637 DEBUG | 10.0.0.157 [GET] HTTPS://10.0.0.9/serverinfo
I think there are two different issues here:
I've just pushed an update that should fix this. Make sure to update the Wolf Docker image by downloading the latest with:
docker pull ghcr.io/games-on-whales/wolf:stable
There's something in that LXC container that is blocking creating and/or accessing the virtual devices that Wolf needs to create in order to relay the remote inputs.
I looked at the host machine's /dev/input directory, and it is in fact missing any event > 16, which are all events that fail in the wolf logs. I don't know what those events correlate to or why they are missing on the host.
If they are missing from the host it probably means that Wolf is not able to access /dev/uinput
(notice the u
): normally when you start a session from Moonlight, Wolf will create the necessary virtual devices (mouse, keyboard, joypad, ...) and they'll be visible under /dev/input
but in your case you get the error message:
libinput error: libinput bug: udev device never initialized
Now one thing I noticed is that you've missed the LXC mount for /run/udev
, which is required, but I don't think that's going to fix this. We have to figure out why uinput
doesn't work inside your container..
Can I suggest trying out with a privileged LXC container first and then, if that works, trying to drop the privileges?
The latest stable container image seems to have cleared up the UDP errors, thanks!
I am running a privileged container (I planned to try it unprivileged once I got a known container working 😅)
I may have mispoken for the "host". By that I meant physical Proxmox install is missing those inputs. Without them in the root Debian install, they are naturally missing from being passed into the container.
For missing /dev/uinput
... that is odd. That file is mounted in the container config and has the appropriate major allow group. I'll note that when running on an android tablet with a gamepad, the gamepad controls do control the steam library UI. I've not yet gotten any game past the launch screens, but it feels so close.
I'd love to be able to add a setup wiki page for running wolf on proxmox, as if this can get to be working well feels very slick. I really love all that you've done with wolf
and gow
❤️
Here's a log with the updated container and mounted /run/udev
directory. I started the container and immediately attempted to run with a connected moonlight client. The connection started and then terminated with code -1 on the client display, and with these associated server logs.
wolf-wolf-1 | [2024-06-05 22:59:32]
wolf-wolf-1 | [2024-06-05 22:59:32] [ /etc/cont-init.d/10-setup_user.sh: executing... ]
wolf-wolf-1 | [2024-06-05 22:59:32] **** Configure default user ****
wolf-wolf-1 | [2024-06-05 22:59:32] Container running as root. Nothing to do.
wolf-wolf-1 | [2024-06-05 22:59:32] DONE
wolf-wolf-1 | [2024-06-05 22:59:32]
wolf-wolf-1 | [2024-06-05 22:59:32] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]
wolf-wolf-1 | [2024-06-05 22:59:32] **** Configure devices ****
wolf-wolf-1 | [2024-06-05 22:59:32] Exec device groups
wolf-wolf-1 | [2024-06-05 22:59:32] Adding user 'root' to groups: messagebus,root
wolf-wolf-1 | [2024-06-05 22:59:32] DONE
wolf-wolf-1 | [2024-06-05 22:59:32]
wolf-wolf-1 | [2024-06-05 22:59:32] [ /etc/cont-init.d/30-nvidia.sh: executing... ]
wolf-wolf-1 | [2024-06-05 22:59:32]
wolf-wolf-1 | [2024-06-05 22:59:32]
wolf-wolf-1 | [2024-06-05 22:59:32] [ /etc/cont-init.d/init-gamescope.sh: executing... ]
wolf-wolf-1 | [2024-06-05 22:59:32] **** Setting up Gamescope ****
wolf-wolf-1 | [2024-06-05 22:59:32] Launching the container's startup script as user 'root'
wolf-wolf-1 | 0:00:00.009385205 138 0x57f8983b1d80 WARN default gstvaapi.c:231:plugin_init: Cannot create a VA display
wolf-wolf-1 | 0:00:00.027512692 138 0x57f8983b1d80 WARN GST_PLUGIN_LOADING gstplugin.c:534:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise
wolf-wolf-1 | 0:00:00.056010479 138 0x57f8983b1d80 WARN vadisplay gstvadisplay.c:316:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error
wolf-wolf-1 | libva info: VA-API version 1.20.0
wolf-wolf-1 | libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
wolf-wolf-1 | libva info: Found init function __vaDriverInit_1_20
wolf-wolf-1 | libva info: va_openDriver() returns 0
wolf-wolf-1 | 0:00:00.100863608 138 0x57f8983b1d80 WARN default ges-meta-container.c:236:_set_value:<GESAsset@0x57f898fcafb0> Could not set value on item: format-version
wolf-wolf-1 | 0:00:00.100880203 138 0x57f8983b1d80 WARN default ges-meta-container.c:236:_set_value:<GESAsset@0x57f8987c5470> Could not set value on item: format-version
wolf-wolf-1 | 0:00:00.100886291 138 0x57f8983b1d80 WARN default ges-meta-container.c:236:_set_value:<GESAsset@0x57f8987c5a50> Could not set value on item: format-version
wolf-wolf-1 | 0:00:00.101235724 138 0x57f8983b1d80 WARN structure gststructure.c:2334:priv_gst_structure_parse_fields: Failed to find delimiter, r=mimetype
wolf-wolf-1 | 0:00:00.128988250 138 0x57f8983b1d80 WARN vadisplay gstvadisplay.c:316:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error
wolf-wolf-1 | 0:00:00.167945231 138 0x57f8983b1d80 WARN adaptivedemux2 gstadaptivedemuxelement.c:41:adaptivedemux2_base_element_init: Failed to load libsoup library
wolf-wolf-1 | 0:00:00.168024286 138 0x57f8983b1d80 WARN adaptivedemux2 gstadaptivedemuxelement.c:41:adaptivedemux2_base_element_init: Failed to load libsoup library
wolf-wolf-1 | 0:00:00.168092991 138 0x57f8983b1d80 WARN adaptivedemux2 gstadaptivedemuxelement.c:41:adaptivedemux2_base_element_init: Failed to load libsoup library
wolf-wolf-1 | 0:00:00.170253699 138 0x57f8983b1d80 WARN cudaloader gstcudaloader.c:169:gst_cuda_load_library: Could not open library libcuda.so.1, libcuda.so.1: cannot open shared object file: No such file or directory
wolf-wolf-1 | 0:00:00.170264236 138 0x57f8983b1d80 WARN nvcodec plugin.c:94:plugin_init: Failed to load cuda library
wolf-wolf-1 | 0:00:00.171671127 138 0x57f8983b1d80 WARN GST_PLUGIN_LOADING gstplugin.c:534:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise
wolf-wolf-1 | 0:00:00.173227875 1 0x6312cbbd2880 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
wolf-wolf-1 | 0:00:00.172445233 138 0x57f8983b1d80 WARN GST_PLUGIN_LOADING gstplugin.c:534:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so" failed to initialise
wolf-wolf-1 | 0:00:00.174358726 138 0x57f8983b1d80 WARN GST_PLUGIN_LOADING gstplugin.c:534:gst_plugin_register_func: plugin "/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so" failed to initialise
wolf-wolf-1 | 0:00:00.178258417 1 0x6312cbbd2880 WARN GST_REGISTRY gstregistry.c:457:gst_registry_add_plugin:<registry0> Not replacing plugin because new one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvalidatessim.so) is blacklisted but for a different location than existing one (/usr/local/lib/x86_64-linux-gnu/gstreamer-1.0/validate/libgstvalidatessim.so)
wolf-wolf-1 | 21:59:32.502100427 INFO | Gstreamer version: 1.22.7-0
wolf-wolf-1 | 21:59:32.502620807 DEBUG | XDG_RUNTIME_DIR=/tmp/sockets
wolf-wolf-1 | 21:59:32.502639402 INFO | Reading config file from: /etc/wolf/cfg/config.toml
wolf-wolf-1 | 0:00:00.197511555 1 0x6312cbbd2880 WARN GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh264enc"!
wolf-wolf-1 | 0:00:00.202697989 1 0x6312cbbd2880 WARN vadisplay gstvadisplay.c:316:gst_va_display_initialize:<vadisplaydrm1> vaInitialize: unknown libva error
wolf-wolf-1 | libva info: VA-API version 1.20.0
wolf-wolf-1 | libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
wolf-wolf-1 | libva info: Found init function __vaDriverInit_1_20
wolf-wolf-1 | libva info: va_openDriver() returns 0
wolf-wolf-1 | 0:00:00.235484814 1 0x6312cbbd2880 WARN vadisplay gstvadisplay.c:316:gst_va_display_initialize:<vadisplaydrm3> vaInitialize: unknown libva error
wolf-wolf-1 | 21:59:32.582727372 INFO | Selected H264 encoder: qsv
wolf-wolf-1 | 0:00:00.266739674 1 0x6312cbbd2880 WARN GST_ELEMENT_FACTORY gstelementfactory.c:712:gst_element_factory_make_with_properties: no such element factory "nvh265enc"!
wolf-wolf-1 | 21:59:32.582833239 INFO | Selected HEVC encoder: qsv
wolf-wolf-1 | 21:59:32.583319799 DEBUG | Loading server certificates from disk: /etc/wolf/cfg/cert.pem /etc/wolf/cfg/key.pem
wolf-wolf-1 | XDG_RUNTIME_DIR (/tmp/sockets) is not owned by us (uid 0), but by uid 1000! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
wolf-wolf-1 | 21:59:32.584289755 DEBUG | [PULSE] Connecting...
wolf-wolf-1 | 21:59:32.584325229 DEBUG | [PULSE] Context failed
wolf-wolf-1 | 21:59:32.584331060 WARN | [PULSE] Unable to connect, Access denied
wolf-wolf-1 | 21:59:32.585532818 INFO | HTTPS server listening on port: 47984
wolf-wolf-1 | 21:59:32.585581331 INFO | RTSP server started on port: 48010
wolf-wolf-1 | 21:59:32.585620624 INFO | Starting PulseAudio docker container
wolf-wolf-1 | 21:59:32.585829004 INFO | HTTP server listening on port: 47989
wolf-wolf-1 | 21:59:32.586240304 WARN | [DOCKER] Container WolfPulseAudio already present, removing first
wolf-wolf-1 | 21:59:32.586290837 INFO | Control server started on port: 47999
wolf-wolf-1 | 21:59:37.423338824 DEBUG | 10.0.20.204 [GET] HTTP://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.442336138 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.446177807 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.449550508 DEBUG | 10.0.20.204 [GET] HTTP://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.462442403 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/applist
wolf-wolf-1 | 21:59:37.469193613 DEBUG | 10.0.20.204 [GET] HTTP://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.469204876 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:37.481402554 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:39.093541514 DEBUG | [PULSE] Connecting...
wolf-wolf-1 | 21:59:39.094028014 DEBUG | [PULSE] Pulse connection ready
wolf-wolf-1 | 21:59:39.494129519 DEBUG | 10.0.20.204 [GET] HTTP://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:39.527234154 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:40.055703726 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/serverinfo
wolf-wolf-1 | 21:59:40.072419078 DEBUG | 10.0.20.204 [GET] HTTPS://10.0.20.100/launch
wolf-wolf-1 | 21:59:40.072487611 DEBUG | Host app state folder: /etc/wolf/14820504867156543389/Steam, creating paths
wolf-wolf-1 | 21:59:40.073294291 DEBUG | [STREAM_SESSION] Create virtual audio sink
wolf-wolf-1 | 21:59:40.073365623 INFO | RTP server started on port: 48200
wolf-wolf-1 | 21:59:40.073436597 INFO | RTP server started on port: 48100
wolf-wolf-1 | 21:59:40.073544581 DEBUG | [STREAM_SESSION] Create wayland compositor
wolf-wolf-1 | 21:59:40.073555095 DEBUG | [WAYLAND] Creating wayland display
wolf-wolf-1 | 21:59:40.074014780 DEBUG | [PULSE] Created virtual sink: 3
wolf-wolf-1 | 21:59:40.085770090 DEBUG | [RTSP] received command OPTIONS
wolf-wolf-1 | 21:59:40.090013942 DEBUG | [RTSP] received command DESCRIBE
wolf-wolf-1 | 21:59:40.096758785 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 21:59:40.106370729 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 21:59:40.112910215 DEBUG | [RTSP] received command SETUP
wolf-wolf-1 | 21:59:40.118985545 DEBUG | [RTSP] received command ANNOUNCE
wolf-wolf-1 | 21:59:40.119049727 DEBUG | [RTSP] Moonlight requested video format HEVC
wolf-wolf-1 | 21:59:40.119184185 DEBUG | Video session 14820504867156543389, waiting for PING...
wolf-wolf-1 | 21:59:40.119292163 DEBUG | Audio session 14820504867156543389, waiting for PING...
wolf-wolf-1 | 21:59:40.123922404 DEBUG | [RTSP] received command PLAY
wolf-wolf-1 | 21:59:40.125611952 DEBUG | [ENET] connected client: 10.0.20.204:34295
wolf-wolf-1 | 21:59:40.145043885 DEBUG | WAYLAND_DISPLAY=/tmp/sockets/wayland-1
wolf-wolf-1 | 21:59:40.145251026 DEBUG | Starting video pipeline: appsrc name=wolf_wayland_source is-live=true block=false format=3 stream-type=0 ! queue !
wolf-wolf-1 | vapostproc !
wolf-wolf-1 | video/x-raw(memory:VAMemory), chroma-site=mpeg2, width=1920,
wolf-wolf-1 | height=1080, format=NV12, colorimetry=bt601
wolf-wolf-1 | ! qsvh265enc low-latency=true b-frames=0 gop-size=0 idr-interval=1 ref-frames=1 bitrate=100000 !
wolf-wolf-1 | h265parse !
wolf-wolf-1 | video/x-h265, profile=main, stream-format=byte-stream
wolf-wolf-1 | ! rtpmoonlightpay_video name=moonlight_pay
wolf-wolf-1 | payload_size=1024 fec_percentage=20 min_required_fec_packets=2 !
wolf-wolf-1 | udpsink bind-port=48100 host=10.0.20.204 port=53141 sync=true
wolf-wolf-1 |
wolf-wolf-1 | 21:59:40.145314513 DEBUG | /proc/driver/nvidia/gpus/0000:00:02.0/information doesn't exists, this might be normal if the GPU is not Nvidia
wolf-wolf-1 | 21:59:40.152484499 DEBUG | /dev/dri/renderD128 vendor: Intel Corporation
wolf-wolf-1 | 21:59:40.169315772 DEBUG | Setting up wolf_wayland_source
wolf-wolf-1 | 21:59:40.172106920 DEBUG | /dev/dri/renderD128 vendor: Intel Corporation
wolf-wolf-1 | 21:59:40.172416800 DEBUG | [DOCKER] Using fake-udev, creating /etc/wolf/14820504867156543389/Steam/udev/data
wolf-wolf-1 | 21:59:40.174538532 DEBUG | [WAYLAND] Start feeding app-src
wolf-wolf-1 | 21:59:40.631811001 DEBUG | Starting audio pipeline: pulsesrc device="virtual_sink_14820504867156543389.monitor" server="/tmp/sockets/pulse-socket"
wolf-wolf-1 | ! audio/x-raw, channels=2 ! opusenc bitrate=48000 bitrate-type=constrained-vbr frame-size=5 bandwidth=fullband
wolf-wolf-1 | audio-type=restricted-lowdelay max-payload-size=1400
wolf-wolf-1 | ! rtpmoonlightpay_audio name=moonlight_pay packet_duration=5 encrypt=true
wolf-wolf-1 | aes_key="6D9100B578A1A830DD190EF8386AD22F" aes_iv="-857191049" !
wolf-wolf-1 | udpsink bind-port=48200 host=10.0.20.204 port=61444 sync=true
wolf-wolf-1 |
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event17)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event17
wolf-wolf-1 | 21:59:44.074931020 DEBUG | RTP server on port: 48100 stopped
wolf-wolf-1 | 21:59:44.075358761 DEBUG | RTP server on port: 48200 stopped
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event18)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event18
wolf-wolf-1 | libinput error: libinput bug: udev device never initialized (/dev/input/event19)
wolf-wolf-1 | libinput error: client bug: Invalid path /dev/input/event19
wolf-wolf-1 | 21:59:48.246218354 DEBUG | [GSTREAMER] Forcing IDR
wolf-wolf-1 | 21:59:48.753205805 INFO | [DOCKER] Starting container: /WolfSteam_14820504867156543389
wolf-wolf-1 | 21:59:48.753725113 DEBUG | [DOCKER] Starting container: {
wolf-wolf-1 | id: 51d250ad79785a0b6018b7d57a0750ae3254cc5dcc6f89a8cd58cb4c3ba8fd14
wolf-wolf-1 | name: /WolfSteam_14820504867156543389
wolf-wolf-1 | image: ghcr.io/games-on-whales/steam:edge
wolf-wolf-1 | status: 0
wolf-wolf-1 | ports: []
wolf-wolf-1 | mounts: [/tmp/sockets/pulse-socket:/tmp/sockets/pulse-socket:rw, /tmp/sockets/wayland-1:/tmp/sockets/wayland-1:rw, /etc/wolf/14820504867156543389/Steam:/home/retro:rw, /etc/wolf/14820504867156543389/Steam/udev:/run/udev/:rw, /etc/wolf/fake-udev:/usr/bin/fake-udev:ro]
wolf-wolf-1 | devices: [/dev/dri/card1:/dev/dri/card1:mrw, /dev/dri/renderD128:/dev/dri/renderD128:mrw, /dev/dri/card1:/dev/dri/card1:mrw]
wolf-wolf-1 | env: ["PROTON_LOG=1", "RUN_GAMESCOPE=true", "GOW_REQUIRED_DEVICES=/dev/input/* /dev/dri/* /dev/nvidia*", "PULSE_SOURCE=virtual_sink_14820504867156543389.monitor", "GAMESCOPE_REFRESH=60", "INTEL_DEBUG=norbc", "PULSE_SINK=virtual_sink_14820504867156543389", "WAYLAND_DISPLAY=wayland-1", "GAMESCOPE_HEIGHT=1080", "PULSE_SERVER=/tmp/sockets/pulse-socket", "XDG_RUNTIME_DIR=/tmp/sockets", "GAMESCOPE_WIDTH=1920", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "PUID=1000", "PGID=1000", "UMASK=000", "UNAME=retro", "HOME=/home/retro", "TZ=Europe/London", "DEBIAN_FRONTEND=noninteractive", "NEEDRESTART_SUSPEND=1", "GAMESCOPE_VERSION=3.12.5", "BUILD_ARCHITECTURE=amd64", "DEB_BUILD_OPTIONS=noddebs"]
wolf-wolf-1 | }
wolf-wolf-1 | 21:59:48.754321646 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14820504867156543389/Steam/udev/data/c13:81
wolf-wolf-1 | 21:59:48.754529415 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14820504867156543389/Steam/udev/data/c13:82
wolf-wolf-1 | 21:59:48.754700025 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event17 c 13 81 && chmod 777 /dev/input/event17 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE3AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDQ5OC9ldmVudDE3AElEX0lOUFVUPTEASURfSU5QVVRfTU9VU0U9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODEAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NjI0Nzg4AA==
wolf-wolf-1 | 21:59:48.808000208 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event18 c 13 82 && chmod 777 /dev/input/event18 && fake-udev -m LklOUFVUX0NMQVNTPW1vdXNlAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE4AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDQ5OS9ldmVudDE4AElEX0lOUFVUPTEASURfSU5QVVRfVE9VQ0hQQUQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODIAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NjI0Nzg4AA==
wolf-wolf-1 | 21:59:48.844326878 DEBUG | [DOCKER] Writing hwdb file: /etc/wolf/14820504867156543389/Steam/udev/data/c13:83
wolf-wolf-1 | 21:59:48.844474050 DEBUG | [DOCKER] Executing command: mkdir -p /dev/input && mknod /dev/input/event19 c 13 83 && chmod 777 /dev/input/event19 && fake-udev -m LklOUFVUX0NMQVNTPWtleWJvYXJkAEFDVElPTj1hZGQAQ1VSUkVOVF9UQUdTPTpzZWF0OnVhY2Nlc3M6AERFVk5BTUU9L2Rldi9pbnB1dC9ldmVudDE5AERFVlBBVEg9L2RldmljZXMvdmlydHVhbC9pbnB1dC9pbnB1dDUwMC9ldmVudDE5AElEX0lOUFVUPTEASURfSU5QVVRfS0VZQk9BUkQ9MQBJRF9TRVJJQUw9bm9zZXJpYWwATUFKT1I9MTMATUlOT1I9ODMAU0VRTlVNPTcAU1VCU1lTVEVNPWlucHV0AFRBR1M9OnNlYXQ6dWFjY2VzczoAVVNFQ19JTklUSUFMSVpFRD0xNzE3NjI0Nzg4AA==
wolf-wolf-1 | 22:00:04.452330296 DEBUG | [DOCKER] Container logs:
wolf-wolf-1 | [2024-06-05 22:59:48]
wolf-wolf-1 | J[2024-06-05 22:59:48] [ /etc/cont-init.d/10-setup_user.sh: executing... ]
wolf-wolf-1 | 7[2024-06-05 22:59:48] **** Configure default user ****
wolf-wolf-1 | K[2024-06-05 22:59:48] Setting default user uid=1000(retro) gid=1000(retro)
wolf-wolf-1 | 8userdel: ubuntu mail spool (/var/mail/ubuntu) not found
wolf-wolf-1 | Auseradd: warning: the home directory /home/retro already exists.
wolf-wolf-1 | ;useradd: Not copying any file from skel directory into it.
wolf-wolf-1 | +[2024-06-05 22:59:48] Setting umask to 000
wolf-wolf-1 | >[2024-06-05 22:59:48] Ensure retro home directory is writable
wolf-wolf-1 | 9[2024-06-05 22:59:48] Ensure XDG_RUNTIME_DIR is writable
wolf-wolf-1 | DONE
wolf-wolf-1 | [2024-06-05 22:59:48]
wolf-wolf-1 | M[2024-06-05 22:59:48] [ /etc/cont-init.d/15-setup_devices.sh: executing... ]
wolf-wolf-1 | 2[2024-06-05 22:59:48] **** Configure devices ****
wolf-wolf-1 | )[2024-06-05 22:59:48] Exec device groups
wolf-wolf-1 | :[2024-06-05 22:59:48] Path '/dev/nvidia*' is not present.
wolf-wolf-1 | L[2024-06-05 22:59:48] Adding user 'retro' to groups: gow-gid-104,video,root
wolf-wolf-1 | DONE
wolf-wolf-1 | [2024-06-05 22:59:49]
wolf-wolf-1 | F[2024-06-05 22:59:49] [ /etc/cont-init.d/30-nvidia.sh: executing... ]
wolf-wolf-1 | [2024-06-05 22:59:49]
wolf-wolf-1 | [2024-06-05 22:59:49]
wolf-wolf-1 | K[2024-06-05 22:59:49] [ /etc/cont-init.d/init-gamescope.sh: executing... ]
wolf-wolf-1 | 5[2024-06-05 22:59:49] **** Setting up Gamescope ****
wolf-wolf-1 | [2024-06-05 22:59:49]
wolf-wolf-1 | L[2024-06-05 22:59:49] [ /etc/cont-init.d/system-services.sh: executing... ]
wolf-wolf-1 | *** DBus started ***
wolf-wolf-1 | *** Bluez started ***
wolf-wolf-1 | 'bluetoothd[131]: Bluetooth daemon 5.72
wolf-wolf-1 | Tbluetoothd[131]: src/adapter.c:adapter_init() Failed to access management interface
wolf-wolf-1 | Jbluetoothd[131]: src/main.c:main() Adapter handling initialization failed
wolf-wolf-1 | *** NetworkManager started ***
wolf-wolf-1 | O[2024-06-05 22:59:49] Launching the container's startup script as user 'retro'
wolf-wolf-1 | 3[2024-06-05 22:59:49] Starting Steam with DISPLAY=
wolf-wolf-1 | IClaimed global gamescope stats session at "/tmp/sockets/gamescope-stats"
wolf-wolf-1 | GNo CAP_SYS_NICE, falling back to regular-priority compute and threads.
wolf-wolf-1 | Performance will be affected.
wolf-wolf-1 | Dwlserver: [backend/headless/backend.c:68] Creating headless backend
wolf-wolf-1 | :Couldn't open plugin directory: No such file or directory
wolf-wolf-1 | 1No plugins found, falling back on no decorations
wolf-wolf-1 | pvulkan: physical device 8086:a7a0 compute queue doesn't support presenting on our surface, using graphics queue
wolf-wolf-1 | Nvulkan: selecting physical device 'Intel(R) Graphics (RPL-P)': queue family 0
wolf-wolf-1 | 6vulkan: physical device supports DRM format modifiers
wolf-wolf-1 | 2vulkan: supported DRM formats for sampling usage:
wolf-wolf-1 | vulkan: AR24 (0x34325241)
wolf-wolf-1 | vulkan: XR24 (0x34325258)
wolf-wolf-1 | vulkan: AB24 (0x34324241)
wolf-wolf-1 | vulkan: XB24 (0x34324258)
wolf-wolf-1 | vulkan: NV12 (0x3231564E)
wolf-wolf-1 | vulkan: AB4H (0x48344241)
wolf-wolf-1 | vulkan: XB4H (0x48344258)
wolf-wolf-1 | vulkan: AB48 (0x38344241)
wolf-wolf-1 | vulkan: XB48 (0x38344258)
wolf-wolf-1 | vulkan: AB30 (0x30334241)
wolf-wolf-1 | vulkan: XB30 (0x30334258)
wolf-wolf-1 | vulkan: AR30 (0x30335241)
wolf-wolf-1 | vulkan: XR30 (0x30335258)
wolf-wolf-1 | >wlserver: Running compositor on wayland display 'gamescope-0'
wolf-wolf-1 | Dwlserver: [backend/headless/backend.c:16] Starting headless backend
wolf-wolf-1 | �wlserver: [xwayland/sockets.c:118] Created /tmp/.X11-unix ourselves -- other users will be unable to create X11 UNIX sockets of their own
wolf-wolf-1 | :wlserver: [xwayland/server.c:108] Starting Xwayland on :0
wolf-wolf-1 | 1The XKEYBOARD keymap compiler (xkbcomp) reports:
wolf-wolf-1 | D> Warning: Could not resolve keysym XF86CameraAccessEnable
wolf-wolf-1 | E> Warning: Could not resolve keysym XF86CameraAccessDisable
wolf-wolf-1 | D> Warning: Could not resolve keysym XF86CameraAccessToggle
wolf-wolf-1 | => Warning: Could not resolve keysym XF86NextElement
wolf-wolf-1 | A> Warning: Could not resolve keysym XF86PreviousElement
wolf-wolf-1 | G> Warning: Could not resolve keysym XF86AutopilotEngageToggle
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86MarkWaypoint
wolf-wolf-1 | 5> Warning: Could not resolve keysym XF86Sos
wolf-wolf-1 | :> Warning: Could not resolve keysym XF86NavChart
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86FishingChart
wolf-wolf-1 | B> Warning: Could not resolve keysym XF86SingleRangeRadar
wolf-wolf-1 | @> Warning: Could not resolve keysym XF86DualRangeRadar
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86RadarOverlay
wolf-wolf-1 | B> Warning: Could not resolve keysym XF86TraditionalSonar
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86ClearvuSonar
wolf-wolf-1 | => Warning: Could not resolve keysym XF86SidevuSonar
wolf-wolf-1 | 9> Warning: Could not resolve keysym XF86NavInfo
wolf-wolf-1 | 2Errors from xkbcomp are not fatal to the X server
wolf-wolf-1 | [wlserver: [types/wlr_compositor.c:681] New wlr_surface 0x61ab9a9251c0 (res 0x61ab9a8ff210)
wolf-wolf-1 | 3wlserver: [xwayland/server.c:273] Xserver is ready
wolf-wolf-1 | ;xwm: Failed to load host cursor. Falling back to left_ptr.
wolf-wolf-1 | 4steam.sh[197]: Running Steam on ubuntu 24.04 64-bit
wolf-wolf-1 | 6steam.sh[197]: STEAM_RUNTIME is enabled automatically
wolf-wolf-1 | 5setup.sh[267]: Steam runtime environment up-to-date!
wolf-wolf-1 | 9steam.sh[197]: Steam client's requirements are satisfied
wolf-wolf-1 | 506/05 22:59:49 minidumps folder is set to /tmp/dumps
wolf-wolf-1 | i06/05 22:59:49 Init: Installing breakpad exception handler for appid(steam)/version(1716584667)/tid(332)
wolf-wolf-1 | [wlserver: [types/wlr_compositor.c:681] New wlr_surface 0x61ab9a906810 (res 0x61ab9a901ba0)
wolf-wolf-1 | [[2024-06-05 22:59:49.486] [info] [config.cpp:123] parsing config: '/tmp/mangohud.tdgWYRnZ'
wolf-wolf-1 | T[2024-06-05 22:59:49.514] [error] [cpu.cpp:568] Failed to initialize CPU power data
wolf-wolf-1 | �[2024-06-05 22:59:49.514] [error] [loader_nvctrl.cpp:39] Failed to open 64bit libXNVCtrl.so.0: libXNVCtrl.so.0: cannot open shared object file: No such file or directory
wolf-wolf-1 | P[2024-06-05 22:59:49.514] [error] [nvctrl.cpp:45] XNVCtrl loader failed to load
wolf-wolf-1 | �[2024-06-05 22:59:49.514] [error] [file_utils.cpp:46] Error opening directory '/sys/class/drm/card0/device/hwmon/': No such file or directory
wolf-wolf-1 | ][2024-06-05 22:59:49.514] [info] [overlay.cpp:808] Uploading is disabled (permit_upload = 0)
wolf-wolf-1 | =xwm: Rejecting WM_CHANGE_STATE to ICONIC for window 0x400007
wolf-wolf-1 | �dbus-daemon[196]: [session uid=1000 pid=196] Activating service name='org.freedesktop.portal.IBus' requested by ':1.0' (uid=1000 pid=332 comm="/home/retro/.steam/debian-installation/ubuntu12_32" label="unconfined")
wolf-wolf-1 | jdbus-daemon[196]: [session uid=1000 pid=196] Successfully activated service 'org.freedesktop.portal.IBus'
wolf-wolf-1 | =steamwebhelper.sh[387]: === Wed Jun 5 22:59:50 BST 2024 ===
wolf-wolf-1 | �steamwebhelper.sh[387]: Starting steamwebhelper under bootstrap sniper steam runtime at /home/retro/.steam/debian-installation/ubuntu12_64/steam-runtime-sniper
wolf-wolf-1 | dWARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
wolf-wolf-1 | C[2024-06-05 22:59:49] Startup - updater built May 24 2024 20:46:19
wolf-wolf-1 | �[2024-06-05 22:59:49] Startup - Steam Client launched with: '/home/retro/.steam/debian-installation/ubuntu12_32/steam' '-nominidumps' '-nobreakpad' '-bigpicture'
wolf-wolf-1 | �[2024-06-05 22:59:49] Loading cached metrics from disk (/home/retro/.steam/debian-installation/package/steam_client_metrics.bin)
wolf-wolf-1 | r[2024-06-05 22:59:49] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
wolf-wolf-1 | W[2024-06-05 22:59:49] Using the following download hosts for Public, Realm steamglobal
wolf-wolf-1 | w[2024-06-05 22:59:49] 1. https://cdn.steamstatic.com, /client/, Realm 'steamglobal', weight was 1, source = 'baked in'
wolf-wolf-1 | 0[2024-06-05 22:59:49] Verifying installation...
wolf-wolf-1 | ,[2024-06-05 22:59:49] Verification complete
wolf-wolf-1 | UpdateUI: skip show logo
wolf-wolf-1 | RSteam logging initialized: directory: /home/retro/.steam/debian-installation/logs
wolf-wolf-1 |
wolf-wolf-1 | KXRRGetOutputInfo Workaround: initialized with override: 1 real: 0xe201e370
wolf-wolf-1 | IXRRGetCrtcInfo Workaround: initialized with override: 1 real: 0xe201ccc0
wolf-wolf-1 | BCAppInfoCacheReadFromDiskThread took 0 milliseconds to initialize
wolf-wolf-1 | �flock /sys/power/suspend_stats/success LOCK_SH failed. errno = 13Steam Runtime Launch Service: starting steam-runtime-launcher-service
wolf-wolf-1 | PSteam Runtime Launch Service: steam-runtime-launcher-service is running pid 472
wolf-wolf-1 | >bus_name=com.steampowered.PressureVessel.LaunchAlongsideSteam
wolf-wolf-1 | [wlserver: [types/wlr_compositor.c:681] New wlr_surface 0x61ab9a8f9770 (res 0x61ab9a919490)
wolf-wolf-1 | Jxwm: Unhandled NET_WM_STATE property change: _NET_WM_STATE_MAXIMIZED_VERT
wolf-wolf-1 | Jxwm: Unhandled NET_WM_STATE property change: _NET_WM_STATE_MAXIMIZED_HORZ
wolf-wolf-1 | 4xwm: got the same buffer committed twice, ignoring.
wolf-wolf-1 | 1The XKEYBOARD keymap compiler (xkbcomp) reports:
wolf-wolf-1 | ?> Warning: Unsupported maximum keycode 708, clipping.
wolf-wolf-1 | ;> X11 cannot support keycodes above 255.
wolf-wolf-1 | D> Warning: Could not resolve keysym XF86CameraAccessEnable
wolf-wolf-1 | E> Warning: Could not resolve keysym XF86CameraAccessDisable
wolf-wolf-1 | D> Warning: Could not resolve keysym XF86CameraAccessToggle
wolf-wolf-1 | => Warning: Could not resolve keysym XF86NextElement
wolf-wolf-1 | A> Warning: Could not resolve keysym XF86PreviousElement
wolf-wolf-1 | G> Warning: Could not resolve keysym XF86AutopilotEngageToggle
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86MarkWaypoint
wolf-wolf-1 | 5> Warning: Could not resolve keysym XF86Sos
wolf-wolf-1 | :> Warning: Could not resolve keysym XF86NavChart
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86FishingChart
wolf-wolf-1 | B> Warning: Could not resolve keysym XF86SingleRangeRadar
wolf-wolf-1 | @> Warning: Could not resolve keysym XF86DualRangeRadar
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86RadarOverlay
wolf-wolf-1 | B> Warning: Could not resolve keysym XF86TraditionalSonar
wolf-wolf-1 | >> Warning: Could not resolve keysym XF86ClearvuSonar
wolf-wolf-1 | => Warning: Could not resolve keysym XF86SidevuSonar
wolf-wolf-1 | 9> Warning: Could not resolve keysym XF86NavInfo
wolf-wolf-1 | 2Errors from xkbcomp are not fatal to the X server
wolf-wolf-1 | [wlserver: [types/wlr_compositor.c:681] New wlr_surface 0x61ab9a9087a0 (res 0x61ab9a91bb60)
wolf-wolf-1 | [wlserver: [types/wlr_compositor.c:681] New wlr_surface 0x61ab9a908b00 (res 0x61ab9a91c580)
wolf-wolf-1 | Qxwm: error 3: BadWindow (invalid Window parameter) request 8 minor 0 serial 2017
wolf-wolf-1 | 4xwm: got the same buffer committed twice, ignoring.
wolf-wolf-1 | 4xwm: got the same buffer committed twice, ignoring.
wolf-wolf-1 | Rxwm: error 3: BadWindow (invalid Window parameter) request 41 minor 0 serial 2246
wolf-wolf-1 | Rxwm: error 3: BadWindow (invalid Window parameter) request 20 minor 0 serial 2804
wolf-wolf-1 | [2024-06-05 23:00:02] Shutdown
wolf-wolf-1 |
wolf-wolf-1 | 22:00:04.452351707 DEBUG | [DOCKER] Stopping container: /WolfSteam_14820504867156543389
wolf-wolf-1 | 22:00:04.463823110 INFO | Stopped container: /WolfSteam_14820504867156543389
wolf-wolf-1 | 22:00:04.465738429 DEBUG | [STREAM_SESSION] Remove virtual audio sink
wolf-wolf-1 | 22:00:04.466375306 DEBUG | [PULSE] Removed virtual sink, status: 1
wolf-wolf-1 | 22:00:04.466441935 DEBUG | [GSTREAMER] Stopping pipeline: 14820504867156543389
wolf-wolf-1 | 22:00:04.466465811 DEBUG | [GSTREAMER] Stopping pipeline: 14820504867156543389
wolf-wolf-1 | 22:00:04.466505931 DEBUG | Deleting WaylandSession 14820504867156543389
wolf-wolf-1 | 0:00:32.151299683 1 0x74d974001a60 WARN audiosrc gstaudiosrc.c:227:audioringbuffer_thread_func:<pulsesrc0> error reading data -1 (reason: Success), skipping segment
wolf-wolf-1 | 22:00:04.493897486 WARN | [ENET] Received packet from unrecognised client 10.0.20.204:34295
After a few config tweaks and lots of reboots, I was able to get multiple clients running and playing games. I had one playing Cyberpunk 2077 at near 60fps 😃. The original container config I had was woefully underpowered, so I suspect some of my issues were from the system trying to do too much. I gave it 26GB of RAM and 12 CPU cores and things seemed to start to be more reliable.
I've still seen lots of immediate disconnects when starting up the app for the first time. But continuing to retry does seem to eventually boot into a valid session. I'll get a good log file showing this soon.
I also haven't seen my keyboard and mouse work when connecting from a PC client (vs the mobile devices with gamepads). Could input events 17+ be those perhaps?
Thanks again for your help and hopefully this can be used to help others get a similar setup running.
I've still seen lots of immediate disconnects when starting up the app for the first time. But continuing to retry does seem to eventually boot into a valid session. I'll get a good log file showing this soon.
If you could gather those I'd be happy to look into it!
I also haven't seen my keyboard and mouse work when connecting from a PC client (vs the mobile devices with gamepads). Could input events 17+ be those perhaps?
That is very odd.. If gamepads works that means that Wolf is indeed able to create those devices using uinput
. They'll too will appear as additional /dev/input/event**
and /dev/input/js**
in your host, can you check if they are present?
Btw, have you added the /run/udev
mount in the LXC container like I've mentioned before?
If you could gather those I'd be happy to look into it!
It's hard for me to get a good log set for these... I'll get that soon, but after more use, when this errors is when the app is quit and then restarted. Connections on restart can take quite a few connections to get started. I've not seen mid-session dropouts since boosting the container's resource specs.
That is very odd.. If gamepads works that means that Wolf is indeed able to create those devices using uinput. They'll too will appear as additional /dev/input/event and /dev/input/js in your host, can you check if they are present?
Agreed! Here's the listing for /dev
and /dev/input
for the proxmox host and lxc container
In the proxmox host (pve1):
root@pve1:~# ls /dev/input
by-id event1 event12 event15 event18 event20 event5 event8 js1 mouse1
by-path event10 event13 event16 event19 event3 event6 event9 mice
event0 event11 event14 event17 event2 event4 event7 js0 mouse0
root@pve1:~# ls /dev
autofs i2c-15 nvme0n1 tty15 tty56 udmabuf
block i2c-16 nvme0n1p1 tty16 tty57 uhid
btrfs-control i2c-17 nvme0n1p9 tty17 tty58 uinput
bus i2c-2 nvme1 tty18 tty59 urandom
char i2c-3 nvme1n1 tty19 tty6 userfaultfd
console i2c-4 nvme1n1p1 tty2 tty60 userio
core i2c-5 nvme1n1p9 tty20 tty61 vcs
cpu i2c-6 nvme2 tty21 tty62 vcs1
cpu_dma_latency i2c-7 nvme2n1 tty22 tty63 vcs2
cuse i2c-8 nvme2n1p1 tty23 tty7 vcs3
disk i2c-9 nvme2n1p2 tty24 tty8 vcs4
dm-0 initctl nvme2n1p3 tty25 tty9 vcs5
dm-1 input nvram tty26 ttyprintk vcs6
dm-2 iommu port tty27 ttyS0 vcsa
dm-3 kmsg ppp tty28 ttyS1 vcsa1
dm-4 kvm pps0 tty29 ttyS10 vcsa2
dm-5 log pps1 tty3 ttyS11 vcsa3
dm-6 loop0 psaux tty30 ttyS12 vcsa4
dm-7 loop1 ptmx tty31 ttyS13 vcsa5
dm-8 loop2 ptp0 tty32 ttyS14 vcsa6
dma_heap loop3 ptp1 tty33 ttyS15 vcsu
dri loop4 ptp2 tty34 ttyS16 vcsu1
drm_dp_aux0 loop5 ptp3 tty35 ttyS17 vcsu2
drm_dp_aux1 loop6 pts tty36 ttyS18 vcsu3
drm_dp_aux2 loop7 pve tty37 ttyS19 vcsu4
drm_dp_aux3 loop-control random tty38 ttyS2 vcsu5
ecryptfs mapper rfkill tty39 ttyS20 vcsu6
fb0 mcelog rtc tty4 ttyS21 vfio
fb1 mei0 rtc0 tty40 ttyS22 vga_arbiter
fd mem shm tty41 ttyS23 vhci
full mqueue snapshot tty42 ttyS24 vhost-net
fuse mtd0 snd tty43 ttyS25 vhost-vsock
gpiochip0 mtd0ro stderr tty44 ttyS26 zd0
hidraw0 net stdin tty45 ttyS27 zd16
hidraw1 ng0n1 stdout tty46 ttyS28 zd16p1
hpet ng1n1 tpm0 tty47 ttyS29 zd16p2
hugepages ng2n1 tpmrm0 tty48 ttyS3 zd16p3
hwrng null tty tty49 ttyS30 zero
i2c-0 nvidia0 tty0 tty5 ttyS31 zfs
i2c-1 nvidia-caps tty1 tty50 ttyS4 zvol
i2c-10 nvidiactl tty10 tty51 ttyS5
i2c-11 nvidia-modeset tty11 tty52 ttyS6
i2c-12 nvidia-uvm tty12 tty53 ttyS7
i2c-13 nvidia-uvm-tools tty13 tty54 ttyS8
i2c-14 nvme0 tty14 tty55 ttyS9
In the lxc-container running the docker container (dockge):
root@dockge:~# ls /dev/input
by-id event1 event12 event15 event18 event20 event5 event8 js1 mouse1
by-path event10 event13 event16 event19 event3 event6 event9 mice
event0 event11 event14 event17 event2 event4 event7 js0 mouse0
root@dockge:~# ls /dev
console hugepages null nvidiactl stderr ttyACM0 zero
core initctl nvidia-caps ptmx stdin ttyACM1
dri input nvidia-modeset pts stdout ttyUSB0
fb0 log nvidia-uvm random tty ttyUSB1
fd mqueue nvidia-uvm-tools serial tty1 uinput
full net nvidia0 shm tty2 urandom
Btw, have you added the /run/udev mount in the LXC container like I've mentioned before?
Yep!
Here's the full lxc conf being used:
#<div align='center'><a href='https%3A//Helper-Scripts.com' target='_blank' rel='noopener noreferrer'><img src='https%3A//raw.githubusercontent.com/tteck/Proxmox/main/misc/images/logo-81x112.png'/></a>
#
# # Dockge LXC
#
# <a href='https%3A//ko-fi.com/D1D7EP4GF'><img src='https%3A//img.shields.io/badge/☕-Buy me a coffee-blue' /></a>
# </div>
arch: amd64
cores: 12
features: nesting=1
hostname: dockge
memory: 26624
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:59:13:EA,ip=dhcp,tag=20,type=veth
onboot: 1
ostype: debian
rootfs: local-zfs-2:subvol-306-disk-0,size=300G
swap: 512
tags: proxmox-helper-scripts
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 13:* rwm
lxc.cgroup2.devices.allow: c 189:*
lxc.mount.entry: /dev/serial/by-id dev/serial/by-id none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1 dev/ttyUSB1 none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1 dev/ttyACM1 none bind,optional,create=file
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD129 dev/dri/renderD129 none bind,optional,create=file
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,optional,create=dir
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
lxc.cgroup2.devices.allow: c 10:223 rwm
lxc.mount.entry: /dev/uinput dev/uinput none bind,optional,create=file
lxc.mount.entry: /dev/input dev/input none bind,optional,create=dir
lxc.cgroup2.devices.allow: c 195:* rwm
lxc.cgroup2.devices.allow: c 506:* rwm
lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/ dev/nvidia-caps none bind,optional,create=dir
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap1 dev/nvidia-caps/nvidia-cap1 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-caps/nvidia-cap2 dev/nvidia-caps/nvidia-cap2 none bind,optional,create=file
lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file
lxc.mount.entry: /run/udev run/udev none bind,optional,create=dir
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
And here is the lxc container's /run
directory listing:
root@dockge:~# ls /run
agetty.reload dbus initctl network sudo utmp
containerd dhclient.eth0.pid lock sendsigs.omit.d systemd
credentials docker log shm tailscale
crond.pid docker.pid motd.dynamic sshd udev
crond.reboot docker.sock mount sshd.pid user
I can see that the list of devices under /dev/input
is the same in the host and in the LXC container but are those mouse0
and mouse1
the virtual devices from Wolf? Are you checking this whilst running a stream (or at least with an app paused)? Is the same list available inside the Wolf
container?
(btw it might be worth continuing this on Discord so that we can go back and forth faster, if you'd like)
Yea! I'll start a message in the moonlight discord #games-on-whales channel. Thanks again for all of your help!
Hi guys, I also managed to create a Privileged LXC on Proxmox running Wolf.
This is how I did:
On PVE Host
nvidia-smi
, ls -l /dev/nividia*
the output should look like the below images:nvidia-smi
ls -l /dev/nividia*
If you are missing some devices when listing ls -l /dev/nividia*
, you can follow the first part of this guide "Making Sure the NVIDIA GPU Kernel Modules Are Loaded in Proxmox VE 8 Automatically"
cat /sys/module/nvidia_drm/parameters/modeset
, the expected result is Y
If you got an "N", you can enable it by changing the grub config nano /etc/default/grub
and adding the "nvidia-drm.modeset=1" to the
GRUB_CMDLINE_LINUX_DEFAULT line
Then update-grub
and reboot
.
nano /etc/udev/rules.d/85-wolf-virtual-inputs.rules
and paste the below content (extracted from Wolf's quickstart )# Allows Wolf to acces /dev/uinput
KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"
# Move virtual keyboard and mouse into a different seat
SUBSYSTEMS=="input", ATTRS{id/vendor}=="ab00", MODE="0660", GROUP="input", ENV{ID_SEAT}="seat9"
# Joypads
SUBSYSTEMS=="input", ATTRS{name}=="Wolf X-Box One (virtual) pad", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf PS5 (virtual) pad", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf gamepad (virtual) motion sensors", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf Nintendo (virtual) pad", MODE="0660", GROUP="input"
Create your LXC container with docker, I've used tteck's script to create a privileged docker LXC with Debian 12, make sure you select Y when asked to install docker-compose.
Edit you LXC config file nano /etc/pve/lxc/108.conf
and remove the following lines (They are for usb passthrough but make no sense to keep them as we'll pass /dev/input to the LXC)
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/input mnt/input none bind,optional,create=dir
lxc.mount.entry: /run/udev mnt/udev none bind,optional,create=dir
dev0: /dev/uinput
dev1: /dev/nvidia0
dev2: /dev/nvidiactl
dev3: /dev/nvidia-modeset
dev4: /dev/nvidia-uvm
dev5: /dev/nvidia-uvm-tools
dev6: /dev/nvidia-caps/nvidia-cap1
dev7: /dev/nvidia-caps/nvidia-cap2
This is what it should look like in the end
We are done working on the PVE host, start (or restart your LXC).
On LXC
curl https://raw.githubusercontent.com/games-on-whales/gow/master/images/nvidia-driver/Dockerfile | docker build -t gow/nvidia-driver:latest -f - --build-arg NV_VERSION=$(cat /sys/module/nvidia/version) .
and then
docker create --rm --mount source=nvidia-driver-vol,destination=/usr/nvidia gow/nvidia-driver:latest sh
nano docker-compose.yml
and paste the followingservices:
wolf:
image: ghcr.io/games-on-whales/wolf:stable
environment:
- XDG_RUNTIME_DIR=/tmp/sockets
- NVIDIA_DRIVER_VOLUME_NAME=nvidia-driver-vol
- HOST_APPS_STATE_FOLDER=/etc/wolf
- WOLF_RENDER_NODE=/dev/dri/renderD129
volumes:
- /etc/wolf/:/etc/wolf:rw
- /tmp/sockets:/tmp/sockets:rw
- /var/run/docker.sock:/var/run/docker.sock:rw
- /dev/shm:/dev/shm:rw
- /mnt/input:/dev/input:rw
- /mnt/udev:/run/udev:rw
- nvidia-driver-vol:/usr/nvidia:rw
devices:
- /dev/dri
- /dev/uinput
- /dev/nvidia-uvm
- /dev/nvidia-uvm-tools
- /dev/nvidia-caps/nvidia-cap1
- /dev/nvidia-caps/nvidia-cap2
- /dev/nvidiactl
- /dev/nvidia0
- /dev/nvidia-modeset
device_cgroup_rules:
- 'c 13:* rmw'
network_mode: host
restart: always
volumes:
nvidia-driver-vol:
external: true
pay attention to the highlighted lines, as they differ from the one on the quickstart
now a docker compose up
should be all that's left for you to enjoy Wolf 😁
Next step is trying to do the same but inside an Unprivileged LXC 🤪
I'm attempting to set up a wolf deployment on an LXC container in Proxmox. I have the v550 Nvidia drivers installed and all the required devices configured on the container. The system does run, but will often disconnect the moonlight client with either a termination error or a UDP port error. When the launch does succeed, I can install games and the steam app UI is very responsive. Sound and gamepad controls work just as expected.
When I launch a game, I only get a black screen. The GPU lists wolf as a process, and when I set WOLF_RENDER_NODE to use
/dev/dri/renderD129
, it lists many other processes as well. (There is an integrated intel GPU available as well).In the container logs, I see many errors around inputs. Could this be part of the flakiness of the connection? I see no errors logged when the screen goes black. What can I do to further troubleshoot what is wrong with my setup?
docker-compose
lxc conf
nvidia-smi