Jump to content

Josh.5

Members
  • Posts

    498
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by Josh.5

  1. 1 hour ago, OrdinaryButt said:

    Sorry, I did miss this part but I have to admit, the wording is a bit unusual. I think it will do the trick though.

     

    I would be nice to know what I did wrong with the kill PID method. I tried simply executing a script with bash command and it didn't run (same commands works fine in CLI). Here is the log:
     

    2022-03-02T05:46:25:INFO:Unmanic.Plugin.postprocessor_script - Execute command 'bash /config/kill.sh'.
    2022-03-02T05:47:25:ERROR:Unmanic.PluginExecutor - [FORMATTED] - Exception while carrying out 'postprocessor.task_result' plugin runner 'postprocessor_script'
    Traceback (most recent call last):
      File "/usr/local/lib/python3.8/dist-packages/unmanic/libs/unplugins/executor.py", line 272, in execute_plugin_runner
        runner(data)
      File "/config/.unmanic/plugins/postprocessor_script/plugin.py", line 161, in on_postprocessor_task_results
        exec_subprocess(cmd, args)
      File "/config/.unmanic/plugins/postprocessor_script/plugin.py", line 87, in exec_subprocess
        raise Exception("Failed to execute command: '{}'".format(full_command))
    Exception: Failed to execute command: 'bash /config/kill.sh'

     

    image.png.b193a78af77bc8738849e95eab1c0ad9.png

    What is the contents of the kill.sh script?

  2. 1 hour ago, OrdinaryButt said:

    Neither, just want to execute at idle times, once a day.

    How? The closest I am seeing is "Enable periodic library scans" which has an option to run every so many minutes. This will not guarantee  running at exact time of day or off hours and restarting unRAID will screw it up. My idea was to enable just the "run a one off scan on startup" and start the docker at midnight. But I need to stop the docker so it can run again next day. I can schedule docker stop, but will have to guess the time. Hence I thought would be smarter to have unmanic kill itself on on pending tasks complete, which I think I can do. However, if there are no new files a given day, it will never stop/start again (I think).

     

    The context of all this is live TV recordings, where original files are overwritten once converted. So it can't be done when there is a potential recording. I discovered that the library file monitor will trigger it self the moment the recording starts which is not good (I know there is a plugin start delay but again, the recording could be 30 minutes or 4 hours).

    If you schedule the worker count, then that will do all of this for you. There is an old API endpoint which is not well documented for triggering the library scan, you could curl or wget that on a cron job. Or you could just let the library scan run whenever, but scale the worker count on a schedule like this:
    image.thumb.png.14b21b9eb96ca3fac3405a78baa0ba33.png

    This will set 3 workers to start at 9AM and then stop them when their next task completes at 11AM by setting that value back to 0.

  3. 1 hour ago, OrdinaryButt said:

    I am looking for a "smart" way to stop unmanic docker after tasks have been completed or no tasks to execute shortly after start.

    I think I can use the "External script" plugin and simply send "kill pid 1" which when tested thru unManic's terminal, does shut down the container. This should work BUT I am woried:

    A) either will cause a start stop loop if there are no pending tasks *EDIT* - I can do "sleep 60 && kill pid 1" which would give me enough time to change config should I need to.

    B) not execute(e.g. not shut down) if there are no tasks


    The whole reason I am doing this is as I want it to start daily at certain time with "do one off scan on startup" enabled, which means it needs to be stop to execute again next day. Perhaps I could schedule a "docker restart" command but would be more ellegant to start/stop it.

    Is this in an attempt to save on resources? or to free up the port?
    When idle, Unmanic should have a very small footprint. Less than 100MB RAM. You can schedule the library scanner to run daily. And you can schedule the workers to start or stop throughout the day. Would these features not be the better option over starting and stopping the container?


    To answer your questions a bit... Unmanic has an API that can be queried to determine the state including the number of items in the pending tasks queue or what is currently being processed by the workers.

     

    It is completely safe to kill the Unmanic process. This would be best done by running 'docker stop unmanic' (if unmanic is the name of the docker container)

  4. Fantastic work! I really never play games, but I bought a 3070, so I pop on and play something occasionally. Until recently, I have had a Windows VM that had my Hard Drive passed through to it. It was kind of annoying to have to start that just to play a game for a few minutes. I recently started messing around with passing my GPU into various shared docker containers instead of purpose built VMs for the various tools, so that Windows VM is basically dead to me. With your docker container, I can quickly drop into a majority of the games that I would play with ease and without having to think about what VMs are currently booted.
     
    Now to figure out how to use VLANs and still do Remote Play locally... Also, I was fighting to get my laptop to connect via Remote Play. It would start the game, then report it was disconnected while the game would continue to run on the server. Turned out to just be an issue with my laptop as Steam Link on my phone works flawlessly.
    What are you using for network hardware to setup your vlans?
  5. 1 hour ago, HellraiserOSU said:

    So currently it seems my steam games share is spread across three disks.. Easiest way to  consolidate so I can try mounting to diskx?

    Use the unBALANCE plugin.
    image.thumb.png.9bd5e451ed4f8b89f07ed3fb99ec10e1.png

     

    Once you have consolidated the games, you will also want to ensure that your games share is limited to a single disk on your array.

     

    As I said, I personally have not seen this issue on my games library. So my library is scattered across a number of disks and my cache drive and it works fine. So this should only be required for people who do run into issues. You could look at specifying a separate library for those games that is a volume mounted directly from one of the disks.

    • Like 1
  6. @ich777 was just telling me that apparently some games do not like some of the magic that exists in our Linux file systems and one possibly solution is to use a direct path to the disk rather than the array. Eg:
     

     Instead of `/mnt/user/games/` use `/mnt/diskX/games/`

     

    I see that a few people have run into that XFS error. I have been unable to reproduce it on my Steam library. But if someone here is seeing that, perhaps you could give this suggestion by ich777 a shot and report back??

     

    • Like 4
  7. Hey, today i tried using lutris but i needed to change esync/ulimit/nofile limit to a higher value but i tried it with the following guide but it doesnt get changed https://github.com/zfigura/wine/blob/esync/README.esync

    then i tried searching for solutions but they all say this to change the hard limit. so my question is, how would i change this value?

    I also tried edditing /etc/pam.d/common-session* and adding session required pam_limits.so


    I am also getting this error in my log all the time, i just reinstalled the template to the latest version(didnt delete any files)
     
    2022-02-20 03:37:45,135 INFO spawned: 'x11vnc' with pid 4642022-02-20 03:37:46,147 INFO success: x11vnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)2022-02-20 03:37:46,148 INFO exited: x11vnc (exit status 1; not expected)

     

    Such a change would need to be made on the host. Not inside a container.
  8. Great container!

    Got it working without to much hassle but one strange thing that I can't seem to find a solution for. When trying to access noVNC I instead see my VM's console window. If I shutdown the VM I can access steam-headless instead.

    What could be the cause for this? I looked trough the thread but couldn't find any similar problems or I missed it.
    What do the logs say?

    Possibly a port conflict with port 8083
  9. HDMI dummy plug solved all my issues. VNC is now responsive, and controller support works. Pretty good performance, very impressed.
     
    I did run into an issue though, I ran the docker safe permissions to fix some permission issues, and then couldn't launch any games.
     
    Had to manually change the permissions in my games folder. Is there a way to get the permissions working without changing them back. I run that new permissions script more often than I'd care to admit
    I do not recommend using the docker safe permissions script on your games library.
  10. Hey, i have a weird issue. After one of the last updates, the container doesnt start anymore, it keeps looping through this cycle:

    Build: [02/08/22 01:36:51] [master] [75c2df31157b4b86e9a712e0d9a866152ffab516]

    [ /etc/cont-init.d/10-setup_user.sh: executing... ]
    **** Configure default user ****
    Setting run user uid=100(default) gid=99(default)
    Adding run user to video, input and audio groups
    Setting umask to 000
    Create the user XDG_RUNTIME_DIR path '/run/user/99'
    Adding default home directory template
    Setting root password
    Setting user password
    DONE

    [ /etc/cont-init.d/20-configre_sshd.sh: executing... ]
    **** Configure SSH service ****
    DONE

    [ /etc/cont-init.d/30-configure_dbus.sh: executing... ]
    **** Configure container dbus ****
    Container configured to run its own dbus
    DONE

    [ /etc/cont-init.d/30-configure_udev.sh: executing... ]
    **** Configure container to run udev management ****
    **** Ensure the default user has the correct permissions on input devices ****
    Allow /dev/uinput r/w to the group
    Adding user 'default' to groups: user-gid-71,root

    [ /etc/cont-init.d/40-setup_locale.sh: executing... ]
    **** Configuring Locales to de_DE.UTF-8 UTF-8 ****
    Generating locales (this might take a while)...
    de_DE.UTF-8... done
    en_US.UTF-8... done
    Generation complete.
    DONE

    [ /etc/cont-init.d/50-configure_pulseaudio.sh: executing... ]
    **** Configure pulseaudio ****
    Configure pulseaudio to pipe audio to a socket
    DONE

    [ /etc/cont-init.d/70-configure_vnc_audio.sh: executing... ]
    **** Configure VNC audio ****
    Disable audio stream
    Disable audio websock
    DONE

    [ /etc/cont-init.d/80-configure_gpu_driver.sh: executing... ]
    **** Found NVIDIA device 'NVIDIA T600' ****
    Downloading driver v510.39.01



    and that over and over again. Any ideas?
    Perhaps it is failing to download or install the driver
  11. Pulling image: josh5/steam-headless:developTOTAL DATA PULLED: 0 B

    root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='steam-headless-secondary' --net='steam' --ip='192.168.1.147' --privileged=true -e TZ="Europe/London" -e HOST_OS="Unraid" -e HOST_HOSTNAME="SERVER" -e HOST_CONTAINERNAME="steam-headless-secondary" -e 'USER_PASSWORD'='PASSWORD' -e 'TZ'='Europe/London' -e 'USER_LOCALES'='en_US.UTF-8 UTF-8' -e 'NVIDIA_VISIBLE_DEVICES'='all' -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'DISPLAY'=':55' -e 'MODE'='secondary' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.icon='https://raw.githubusercontent.com/Josh5/docker-steam-headless/master/images/steam-icon.png' -v '/mnt/user/appdata/steam-headless-secondary':'/home/default':'rw' -v '/mnt/user/Games':'/mnt/games':'rw' --hostname='SteamHeadlessSecondary' --add-host='SteamHeadlessSecondary:127.0.0.1' --restart=unless-stopped --shm-size=2G -v '/tmp/.X11-unix':'/tmp/.X11-unix':'rw' -v '/dev/input':'/dev/input':'ro' 'josh5/steam-headless:develop'Unable to find image 'josh5/steam-headless:develop' locallydocker: Error response from daemon: manifest for josh5/steam-headless:develop not found: manifest unknown: manifest unknown.See 'docker run --help'.The command failed.

     
    Getting this error when trying to install. [emoji53]
     

    Oops. Change :develop to :latest
    I missed that when creating the template
  12. 14 minutes ago, eatoff said:

    How can we get controller support for instances where we can't use network: host

     

    If you're running 2 instances then you can't be using host network for both to get controller support for both at the same time yeah?

     

    I think that's all I'm missing, I need to be able to use a controller with a custom network address due to the number of other containers I'm already running

    The secondary container does not use host network. 

     

    Why can you not start the main Steam Headless container with net=host? What errors do you get in the logs when you try?

  13. I've made a second template for this docker image.

     

    This Docker image has a few little init scripts that can configure it in different ways (Intel iGPU, APD GPU, NVIDIA GPU, X Server, no X server, VNC Audio mod, etc...). One of these config sets I have dubbed "secondary mode" where it basically just runs the steam client. This is useful when you already have an X server running somewhere else.

     

    Up until this past weekend I had no use for secondary mode, so I had not put any real effort into it. But then I wanted to play a game with my wife and for her to use Steam Link I had to go to my PC first, log into the Web VNC portal, sign out of my profile, sign into hers. And then when we were done I had to reverse it. And that was just annoying.

    Steam Link has not capability to switch profiles when it connects and this is a feature I really want!

     

    To solve this issue I created a "Steam Headless Secondary" template which I share with you today in CA.

    What this template does:

    • Allow you to run multiple instances of steam logged into different accounts.
    • Run a second instance of steam in the same desktop as an existing Steam Headless.
    • Run a second instance of steam in an existing desktop environment. Eg. booted Unraid in GUI mode (Untested).
    • Uses the exact same Docker image as Steam Headless so no additional disk space is used when you run this second instance.
    • Supports controllers and NVIDIA/AMD GPU just the same as Steam Headless.

    What this template does not do:

    • Allow you to play two games at a time (We are limited by X11).
  14. On 2/4/2022 at 6:05 AM, sonic_reaction said:

    Is it possible to run this if you don't have a GPU attached? I just want a steam client to run to just update games and nothing else.

    The latest build has the ability to be run in a simple framebuffer.

    To enable this, update the Mode to say "framebuffer". Obviously this mode will be useless for playing games, but it will work fine for downloading and updating games.

    Make sure you pull the latest docker image.
    image.thumb.png.d5e3c73544d9d8a034fb993336501d4d.png

    • Like 1
  15.  
    image.png.3e65c8fb03e5822549ae2d6ff73087fc.png
     
     
    This docker container mysteriously appeared in my docker apps and I can't track down any info about it. Unlike all other dockers containers I have installed, it does not have config page. Hovering over the docker title "wonderful_wozniak" does not provide a link to a Unraid container config page like all other containers.  It can be started, stopped, restarted, and removed like other containers. 
     
    I am 99% certain that it was installed when I installed docker: screepers/screeps-launcher I have seen one docker container install another docker container. The two containers appear to be identical, just different names, and the original has a config page.
     
    My current experience with Docker is limited right now thus have not been able to debug where it came from
     
    From what I understand, historically Wonderful Wozniak referrers to Steve Wozniak's long history of harmless technical pranks going back to the 1970s.
     
    This is not a technical problem, I am just trying figure it out because it is a mystery.
     
     
    image.png.f4a6d3fea782f10bd39167d4c7c13a5d.png
    This made me chuckle when it popped up in my email. Since you lightened my evening, let me see if I can help you...

    Docker will name containers with random snake case 2 word names if you do not specify a name yourself.

    This container was created from a command and not through the unraid UI. Perhaps you have a user script or something that executes a "docker run ..." command?

    If you enable the advanced toggle at the top of the docker page you will get more info on the container. You should be able to see the docker image used and that may give you a hint as to what it is.
  16. If anyone is running this container with an AMD GPU, could you let us know what was required to get it working.

    I'm guessing:

    1. Radeon-TOP plugin installed
    2. NVIDIA `--runtime=nvidia` removed from extra params

    Was there any other steps required?

     

    Can everyone see /dev/dri/* without needing to pass that through to the container? I am assuming so if they are able to use VAAPI for encoding with steam.

     

  17. So what I ended up doing was just reinstalling Steam-Headless entirely and everything now works. My mistake was, as you had suggested to someone else earlier, that I installed steam-headless before installing uinput. To save you some headaches Josh I would reccomend you make it clear in big bold letters at the top that all users should install uinput before installing steam-headless. I would think that doing so will save you and users some headaches as im sure most people will be using controllers.
     
    While I read your stuff regarding uinput, in my naevity I didn't think it was necessary for remote play controllers to work. I suspect most users will want to play using controllers so insisting on users installing uinput FIRST will likely prevent unnecessary support.
     
    also assuming once an arch-based steamos 3.0 version exists in the future, if you aren't aware of it already, I would like to suggest an additional script to install chimera, which allows you to install heroic epic games, and retroarch games directly to steam big picture mode for convenience via web on your local network. steam-headless seems like a perfect situation where chimera would be useful. dont think there's a way to install on debian but im no linux master. chimera 
    Glad to hear you have it working. I'll update some of the docs with your suggestions. Thanks.

    I've got an arch base build ready. It just really sucks. Because of the way that the packages work for steam and Nvidia, it requires a lot of bloat. This debian release sits at around 2GB for the docker image, the arch one pushed that closer to 3 for no reason other than the arch package repos not being a good fit for docker images.
    I also ran into some really weird input issues that I have not solved yet. Keyboard input would not work with steam in arch, but it worked in every other app or in steam big picture. I could not figure out what I was missing.
    Flatpaks are possibly a solution for running things inside the arch container, but the flatpak for steam had the same kind of issues that you have with the controller, as well as some audio issues and the fact that paths are messed up and not easily shared outside of steam.
    I'm really on the fence now as I totally wanted to keep this inline with SteamOS 3 when it was released, but now I can't see a benefit to doing so. I've put a pin in that arch docker image for the next few months until we see SteamOS 3 released.
  18. 1 hour ago, Moosatronic said:
    wasn't able to find the tux racer on steam, installed a "super tux" but the controller still didn't work.

    Sorry, I meant "super tux"

     

    Quote

    It's weird. For me, remote play with a controller works fine for big picture mode but doesn't work for most games.

    Steam creates a virtual controller when you use remote play. That's why it works in big picture but not in the game.
    https://partner.steamgames.com/doc/features/steam_controller/steam_input_gamepad_emulation_bestpractices

     

    Quote

    some things I tried: 
     
    1. I checked "/dev/input" but only ever saw the keyboard I have plugged into my unraid server. 
     
    2. I also tried installing the steam udev rules and that didn't do anything.
     
    3. I added the user "default" to the group "input" but neither changed anything. I don't know if the docker already does this but i did it to see if anything changed but it didn't
     
    Finally one really weird thing: Josh.5, I tried your suggestion of stopping streaming and then starting it again and discovered that my controller via remote play will work for like 1 second and then will stop working. 

     

    1. That is fine. I think so long as it exists, then you are fine.

    2. The udev rules will not change anything here. The init scripts are setting permissions correctly (I just triple checked a clean install of the container, running a game from my phone).

    3. The input group does not exist in the container, so this would also not do anything.

     

    What may have an effect are things like:

    1. Update the permissions

    # First check the permissions
    ls -la /dev/uinput
    # Update them to rw by everyone
    chmod 666 /dev/uinput
    

    2. Try running it from another PC or device.

  19. For controller issues, it dawned on me that you may also be seeing an issue with steam itself....

    A good way to test this that I use is to install the tux racer game from steam. This games is free, works natively on Linux and supports controllers and it's only a couple hundred MB. Install that and run it, if you controller works, then the issue is with steam and your game.

     

    The second thing you can try if the issue does prove to be with steam and your game. Sometimes, when you startup steam link and connect to a game, the controller does not work, but KB and mouse does. If you stop streaming via steam link (keeping the game running) and then reconnect, sometimes this magically starts making the controller start working in game. I am not sure why this fixes it, but I know that I need to do this for SW KoTOR2 in my library.

  20. 2 hours ago, randomninjaatk said:

    I’ll try removing the plugin, container, reboot and then install them both fresh.

    Is there a preferred order of operations?

    When I did it, I installed the plugin and docker container, then I restarted my machine to ensure that the plugin brought up the module correctly. You really should not have to restart the pc unless you have some kind of hardware issues.

    In this case, I believe that you should be able to just carry out a fresh install of the plugin and container using the template from CA (not the my-steam-headless one that you have cached locally). It should just work.

  21. Do I have to do something to make sure the user can read/write to that location?

    I only ever installed the plugin and configured the container for host mode as instructed.

    Also for reference, I’m running 6.10.0-rc2


    Sent from my iPhone using Tapatalk
    I would like to think not. I'm also running this on rc2 with an Intel CPU and Nvidia GPU. When I go to the CA tab and run a completely fresh install following the template values, the container works out if the box with controller support in game.
    The symptoms you are describing track with what happens when you install the container without installing the uinput module.
    Without being able to reproduce your setup, I'm not sure how I can help.
  22.  
    Tried a reboot and using either a DS4 or Xbox Series S/X controller connected via BT on the apple tv. Everything works in Big Picture using Steam Link app, but as soon as a game loads, it no longer works.
     
    I can turn on mouse mode via steam menu options and that will still work in-game. But unless it's a point and click kind of game, its kinda useless.
    Ok.
    Something must not be configured correctly. If the default container user can see and write to the /dev/uinput device, steam should be able to create the controller for the game
×
×
  • Create New...