Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.63k stars 35 forks source link

Cannot use protontricks, Warning: wineserver not found! #117

Closed kira75 closed 2 years ago

kira75 commented 2 years ago

I have no idea what to do with this error I am getting. I have wine installed via winehq-stable, I have the winetricks script (copied under /usr/local/bin), and I installed protontricks + dependencies. I am running Lubuntu 20.04. The only thing I have been able to do is launch the GUI, but as soon as I select my game and click ok, it pops up "Warning: wineserver not found!" If I use the terminal with the game ID, it gives the same warning.

I ran the command dpkg -S wineserver, and it lists several paths (including wine-stable & a winehq-stable), so I know it is installed. If I run wineserver in terminal it does nothing.

Matoking commented 2 years ago

You don't need to install Wine from your package manager. On the contrary, Protontricks by default ignores the system Wine and uses the version of Wine shipped with Steam to avoid potential compatibility issues.

Can you try running protontricks -v --gui (or the command you're using but with the -v flag in the very beginning?) in the terminal and copy the output? You can use GitHub Gist for this and copy the link into this thread.

In addition, if the output mentions a certain Proton version, you could try to select the corresponding Proton version in Steam library, right-click and select Properties -> Local files -> Verify integrity of tool files.

kira75 commented 2 years ago

I commented out the usernames with "-"

protontricks (INFO): Found Steam directory at /home/-/.steam/steam. You can also define Steam directory manually using $STEAM_DIR protontricks (INFO): Using default Steam Runtime at /home/-/.steam/root/ubuntu12_32/steam-runtime protontricks (INFO): WINETRICKS environment variable is not available. Searching from $PATH. protontricks (INFO): Found 0 Steam library folders protontricks (INFO): Currently logged-in Steam user: - protontricks (INFO): Couldn't find custom shortcuts. Maybe none have been created yet? protontricks (INFO): Using 'zenity' as GUI provider protontricks (INFO): Found active compatibility tool: Proton 5.13 protontricks (INFO): Active compatibility tool is a Proton installation protontricks (INFO): WINE environment variable is not available. Setting WINE environment variable to Proton bundled version protontricks (INFO): WINESERVER environment variable is not available. Setting WINESERVER environment variable to Proton bundled version protontricks (INFO): Using separately installed Steam Runtime: Steam Linux Runtime - Soldier protontricks (INFO): Running Steam Runtime using bwrap containerization. If any problems arise, please try running the command again using the --no-bwrap flag and make an issue report if the problem only occurs when bwrap is in use. protontricks (INFO): Created Steam Runtime Wine binary directory at /home/-/.cache/protontricks/proton/Proton 5.13/bin protontricks (INFO): Attempting to run command [PosixPath('/usr/local/bin/winetricks'), '--gui'] winetricks GUI enabled, using zenity 3.32.0

warning: wineserver not found!

Matoking commented 2 years ago

Could you try running the following commands?

$ protontricks -c "wine --version; wineserver --version" <appid>
$ winetricks --version

To run the first command you'll need to provide an app ID; it's the numeric ID you'll see next to each title when you run protontricks --gui. The first command should then print wine-5.3 or something similar twice, assuming Protontricks has found both binaries correctly. The second version should print the Winetricks version.

The error message seems to originate from Winetricks, not Protontricks. Since you're running Lubuntu, if you have installed Winetricks using your package manager, you might want to try manual installation for Winetricks instead, as recommended for Debian / Ubuntu users here.

kira75 commented 2 years ago

I did not install winetricks via package manager. I followed the instructions via wiki.winehq.org/Winetricks website. I downloaded the file with wget, and copied it to /usr/local/bin, then did chmod +x on the file. I also tried adding the bash-completion script to where it directed me to. Whether it needed the bash-completion script or not, I don't know.

Using winetricks command from the terminal launches the gui just fine. However from what those protontricks errors seem to say, it can't find winetricks, or wine, or wineserver? I am guessing on that, because I do not know what it is actually saying by "environmental variable is not available"

How do I even set the winetricks or protontricks environmental variables? The --help section lists the variables, but does not tell me how to set them (as in tell it where to find the location of wine, winetricks, and wineserver)

The first command that you listed displays: wine-5.13-789-gc14054e6923 Wine 5.13

The second command displays: 20210206-next - sha256sum: dbcb01e57092118f2e142799ae2b66c18e71537df294820a8210f4d65bf43557

Matoking commented 2 years ago

The output seems to match what I'm getting on my own system for Proton 5.3, which means that the shell can find them properly in the environment Protontricks sets up.

Could you try running Winetricks again but use this command instead:

$ protontricks -c 'bash -x winetricks --gui' <appid>

This will print every line of execution for Winetricks which might result in a lot of output, so consider uploading to GitHub Gist to keep the thread tidy.

kira75 commented 2 years ago

https://gist.github.com/kira75/3beea23749e554f10e530130077cd8b4

Matoking commented 2 years ago

OK, it may be that the scripts that Protontricks creates don't have execute bit set for some reason.

Could you test by running the following command (add the username back) after running the Protontricks command again:

$ ls -lh /home/-/.cache/protontricks/proton/Proton 5.13/bin/

In my case, it looks like this:

total 24K
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 msidb
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 wine
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 wine64
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 wine64-preloader
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 wine-preloader
-rwxr--r-- 1 matoking matoking 2,1K Sep 28 19:35 wineserver

In this case x in rwx is set, meaning all of the files have the execute bit as they should.

If those files exist, but they don't have the execute bit set, it may have something to do with how the filesystem is mounted. You could check if noexec is set in /etc/fstab.

kira75 commented 2 years ago

I run .cache in tmpfs as well, and yes, I have noexec set for that (will change it). Are these files temporary (created each run)? .cache is not really a place for permanent files.

I removed noexec from the setting, and reboot, it seems to be working now.

Thanks for the help.

Matoking commented 2 years ago

Protontricks creates scripts for the enabled Proton version under ~/.cache/protontricks on each run, and the entire directory tree can be safely removed when you're not running Protontricks. ~/.local/share could be used instead, but in that case the user would specifically have to know that the directory tree can be removed to get rid of old data (eg. scripts for old Proton versions).

Closing this issue for now. Let me know if there are any other questions.