Steamuxulation redux

Yes, me! Yesterday I updated my system, all packages are linux-c7 now. Here is how I got so far: In step 3, I get the following error:

Code:
$ cd /opt/steam-utils/bin/steam-
/opt/steam-utils/bin/steam-install /opt/steam-utils/bin/steam-kill   
$ cd /opt/steam-utils/bin/steam-install
cd: /opt/steam-utils/bin/steam-install: Not a directory
$ cd /opt/steam-utils/bin/
$ ls
steam         steam-install steam-kill
$ ./steam-install
Downloading Steam...
steam_1.0.0.61.tar.gz                                 2808 kB 2293 kBps    01s
Extracting bootstrap...
Creating symlink bin -> bin32
Creating symlink bin32 -> steam/ubuntu12_32
Creating symlink bin64 -> steam/ubuntu12_64
Creating symlink root -> steam
Creating symlink sdk32 -> steam/linux32
Creating symlink sdk64 -> steam/linux64
Donwloading runtime...
steam-runtime_0.20190711.3.tar.xz                       89 MB 6453 kBps    14s
Extracting runtime...
ELF binary type "0" not known.
/compat/linux/bin/bash: cannot open d: No such file or directory
/compat/linux/bin/bash: �: not found
/compat/linux/bin/bash: 1: Syntax error: ")" unexpected
/compat/linux/bin/bash: 19: Syntax error: Error in command substitution
$

BTW: Why does it have to be a non-wheel user account?
 
Code:
ELF binary type "0" not known.

Load linux64 kernel module, then delete ~/.steam/steam-runtime directory, then try again.

BTW: Why does it have to be a non-wheel user account?

It doesn't. However, it's a good security practice to run Steam on a separate account from your main account (which is typically in the wheel group), so the Steam client doesn't have access to any sensitive files. Otherwise, not only you have to trust Valve not to read your data (or even delete it by accident!), you also have to trust all your games not to do anything stupid, and, even more than that, you have to trust all these game developers to have sufficiently good security, so nobody can hack them and hijack their Steam publishing credentials to push malware to you.
 
OK, doing a kldload linux64 solved the issue and I could proceed. In my /boot/loader.conf I have 'linux_load="YES"' for years now as required by the nvidia-driver. What is the recommended entry nowadays? 'linux64_load="YES"' or both?

This is the message I got at the end, so is that OK?

Code:
Installing breakpad exception handler for appid(steam)/version(1.0)
[2019-09-11 13:27:35] Installing update...
[2019-09-11 13:27:37] Cleaning up...
[2019-09-11 13:27:37] Update complete, launching...
[2019-09-11 13:27:37] Shutdown
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 6 items discarded.
$

OK, here is my full report so far: I logged into my existing Steam account that I used to have using i386-wine and there were connection problems, I had to push the "Reconnect" button several times to finally log in. As it was my account, I had two possibilities to download games, Half Life 2 Deathmatch and Half Life 2 Lost Coast. Both downloads worked fine, but the news window was black and browsing the store is also not possible, so how would you be able to search and download/install games?

Anyway, I started HL2 Deathmatch, watched the Valve intro video with sound and was on the menu, great!
I searched for servers with players and logged onto one, which was pretty fast! It started downloading a map but after downloading steam crashed:

Code:
IDirect3DDevice9::CreatePixelShader: shaderapi's centroid mask (0x00000000) differs from mask derived from shader name (0x0000000C) for shader ps-file teeth_flashlight_ps20b ps-index 0 ps-combo 2
IDirect3DDevice9::CreatePixelShader: shaderapi's centroid mask (0x00000000) differs from mask derived from shader name (0x0000000C) for shader ps-file teeth_flashlight_ps20b ps-index 0 ps-combo 3
CCrossProcessPipe::BWrite wrote too few bytes: 32 (Broken pipe).  Continuing.
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

ExceptionHandler::GenerateDump waitpid failed:No child processes
No minidump written, nothing to upload.
_ExitOnFatalAssert


I started my own server and that worked, absolutely brilliant video and sound quality, started running around shooting and causing exposions, performance and quality was great. Turned down the options from anisotropic 4x to trilinear, which seemed to give me a more fluid performance.

I gave it another shot connecting to an internet server with people playing and after downloading another map I suddenly saw myself in the middle of a death match being shot at and shooting myself, so great!
This lasted for a few minutes until steam crashed again:

Code:
$ ../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

ExceptionHandler::GenerateDump waitpid failed:No child processes
No minidump written, nothing to upload.
_ExitOnFatalAssert

Started steam and had the same reconnection issue, so I don't know if that is related to the steam servers right now or to the client we are testing here. Anyway, I could play another map on the internet, was a lot of fun again for a few minutes, absolutely brilliant performance, and the the client crashed again. I really don't know if that is related to the initial connection problems to the account or not.

Also tried Lost Coast, which is a single player campaign, but it crashed immediately:

Code:
IDirect3DDevice9::CreatePixelShader: shaderapi's centroid mask (0x00000000) differs from mask derived from shader name (0x0000000C) for shader ps-file teeth_flashlight_ps20b ps-index 0 ps-combo 2
IDirect3DDevice9::CreatePixelShader: shaderapi's centroid mask (0x00000000) differs from mask derived from shader name (0x0000000C) for shader ps-file teeth_flashlight_ps20b ps-index 0 ps-combo 3
CCrossProcessPipe::BWrite wrote too few bytes: 32 (Broken pipe).  Continuing.
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : CClientPipe::BWriteAndReadResult: BWaitResult failed, disconnected
../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

../common/pipes.cpp (766) : Fatal assert failed: ../common/pipes.cpp, line 766.  Application exiting.

ExceptionHandler::GenerateDump waitpid failed:No child processes
No minidump written, nothing to upload.
_ExitOnFatalAssert

I will give it another try later today, see if the connection problem to the account disappears and if consequently, gaming is stable.
I really would like to try TF2 also (and other games as well), but how can I do that if the browser is black?
The image quality and performance was great, so it would be really worth to have that client fully working!
 
OK, doing a kldload linux64 solved the issue and I could proceed. In my /boot/loader.conf I have 'linux_load="YES"' for years now as required by the nvidia-driver. What is the recommended entry nowadays? 'linux64_load="YES"' or both?

I have a linux_enable="YES" line in /etc/rc.conf.

This is the message I got at the end, so is that OK?
Code:
CWorkThreadPool::~CWorkThreadPool: work processing queue not empty: 6 items discarded.

Some kind of a diagnostic message for Valve. I don't know what it is, nor do I care.

there were connection problems, I had to push the "Reconnect" button several times to finally log in.

That doesn't happen to me. Although, I have to admit that I didn't investigate the login problem to the root cause, only enough of it to make a workaround. I guess that needs more work.

but the news window was black and browsing the store is also not possible, so how would you be able to search and download/install games?

The regular web browser still works. That's what I use anyway for security reasons.
 
That doesn't happen to me. Although, I have to admit that I didn't investigate the login problem to the root cause, only enough of it to make a workaround. I guess that needs more work.

I have just tried again, same problem. And my guess is that it could be related to the fact that once you get connected, the game crashes after a while.
Meanwhile I have downloaded and installed Steam again in i386-wine to confirm the problem and the result is, that there is no connection problem in i386-wine.

But here comes the part that is interesting and that you denied in the other thread: I downloaded Half Life 2 Detahmatch here again and loaded the same map as I had tried in the Linux version, and here under i386-wine apart from loading times being much longer, once in the map the sound and the video was stuttering awfully and in the end it was completely unplayable, while under Linux it has been absolutely fluid, fast and no stuttering of sound. I am gonna activate the "-gl" option of the game in i386 to see if that helps.

That being said, I would like to encourage you to keep up the good work, because that steam linux client for FreeBSD would be a huge thing! I am always here for testing.

The regular web browser still works. That's what I use anyway for security reasons.

But can you make it work? And I still don't know how exactly I can install steam games through the browser when the interface does not work.
 
I have just tried again, same problem.

Can you attach ~/.steam/steam/logs/connection_log.txt? I need to see whether we are talking about the same problem.

But can you make it work? And I still don't know how exactly I can install steam games through the browser when the interface does not work.

I'm not sure what you are trying to say. The library view works without in-client web browser.
 
Here it is attached.

I'm not sure what you are trying to say. The library view works without in-client web browser.

The library view, yes, this is to view the games that you have already installed. But if you want to install a new one that you have to search in the steam store first, you can't, because everything is black. Same as the "News" window that pops up first time you log into your steam account. The browsing function of the steam client needs to be working, otherwise it is useless. In wine I know you can enable that with the "-no-cef-sandbox" parameter.
 

Attachments

  • connection_log.txt
    146.9 KB · Views: 388
Well, that gives me the two games that are installed as well. I need to search what is not installed, so I CAN install it. (The other two games were listed there already by chance, because I logged into my regular steam account.) For example I want to know what games are there for Linux anyway, what demos, which are free to play, search games by category, or if this should work, buy a game...
You do that by pressing on "STORE" which has submenus like "FEATURED", "EXPLORE", "WHISHLIST", "NEWS".
 
6890


Don't forget to disable Steam Play in the settings.
 
For example I want to know what games are there for Linux anyway, what demos, which are free to play, search games by category, or if this should work, buy a game...

You do understand buying things is a separate procedure from installing them, do you? The store is located at store.steampowered.com. I can assure you it's exactly the same store you see in the client, if the term "in-client web browser" is not enough of a hint already.
 
I disabled steam play in the settings, but that does not change the fact that what you are showing me in your screenshot is a list of what you have already installed. Where you get SteamOS+Linux(35) I get (2) and where you get Games(99) I get (2) and I repeat, I only get those two in the list because I logged into my existing steam account.

I then wanted to create a new one pressing on the according button and then I got this:

6891


Now isn't that nice? OK, I decided to introduce the above displayed url in firefox and I was finally able to create a new account and the log into it. Of course, same connection problems as explained earlier here.
And when I then looked into my "LIBRARY" I got SteamOS+Linux(0) and Games(0), of course, because there IS NOTHING INSTALLED OR REGISTERED on that new account. So I cannot install a game.

6892


I really don't know how to make it clear to you that a steam-client without the in-client web browser function is completely pointless, you cannot create an account directly, you cannot install games.

Apart from that, did the log file give you any useful info?
 
I disabled steam play in the settings, but that does not change the fact that what you are showing me in your screenshot is a list of what you have already installed.

No, I'm not. I only have 7 of 35 games installed as the screenshot clearly shows.

Where you get SteamOS+Linux(35) I get (2) and where you get Games(99) I get (2) and I repeat, I only get those two in the list because I logged into my existing steam account.

Well, if you only have 2 games in total, then what do you want from me? Go buy some or whatever.

Apart from that, did the log file give you any useful info?

Not directly, no.
 
Also, to be clear, I'm never going to work on tracing/debugging the damned embedded browser — that's out of scope. It's a huge codebase, it interacts with every API that ever existed and it's absolutely unnecessary for actual games to function. The benefit-cost ratio is just not there.
 
Go buy some or whatever.

Well, that is the whole point for me, how do I do that when the browser does not work? "Whatever" to me is e.g. free to play games or demos, which is what I want and which I can use to help testing.

Also, to be clear, I'm never going to work on tracing/debugging the damned embedded browser — that's out of scope. It's a huge codebase, it interacts with every API that ever existed

Well that sounds complicated indeed, maybe somebody else would be willing to do that job?

and it's absolutely unnecessary for actual games to function.

That is true, but it is for installing them. So, how do I do that without the browser in the client?

I have heard that it is something about knowing the id number of the game and executing a command like "steam://run/440", but how and where exactly?
 
Well, that is the whole point for me, how do I do that when the browser does not work?

You somehow managed to write this message, so… Use that browser for logging into https://store.steampowered.com/, then add whatever you want to add to your game library. After that it should available in the client in the library view (probably after restart).

Well that sounds complicated indeed, maybe somebody else would be willing to do that job?

I doubt it.
 
Use that browser for logging into https://store.steampowered.com/, then add whatever you want to add to your game library. After that it should available in the client in the library view (probably after restart).

There is no library menu on the website, even when you are logged in. However, I could click on a game, click on "Play now" -> "Steam already installed" which would open a window where I could select an application to open it. Pointing it to "/opt/steam-utils/bin/steam" worked.

I installed TF2, it started, I got into the main menu but then it hanged with a stuttering sound. Tried three times. In i386-wine the stuttering of the sound in the menu is there, too but it stops hanging and goes on. It is like in the linux-client like "it almost worked". Installed three more free games but they wouldn't start at all.

I don't know much about these things, but I can only guess that, while SteamOS is based on Debian8, our Centos7 is just not good enough.
 
There is no library menu on the website, even when you are logged in. However, I could click on a game, click on "Play now" -> "Steam already installed" which would open a window where I could select an application to open it. Pointing it to "/opt/steam-utils/bin/steam" worked.

Usually the process is: add to cart -> payment / checkout -> the game appears in the library. I do have a few games I received for free, but I can't, for the life of me, remember what is the correct procedure for those.

I installed TF2, it started, I got into the main menu but then it hanged with a stuttering sound.

I'll try to check this later.

Installed three more free games but they wouldn't start at all.

For what it's worth, that's the usual experience.

I don't know much about these things, but I can only guess that, while SteamOS is based on Debian8, our Centos7 is just not good enough.

We are using https://github.com/ValveSoftware/steam-runtime, which is a set of recommended libraries from SteamOS. That's exactly the same set of libraries Steam runs games with by default.
 
I don't know if I did the right thing, as I have never used git pull before. I downloaded the zip-file from your website, extracted it, which gave me a second folder (as this is obviously the second time), I moved into that folder , did make and make install as root. I guess that overwrote thje contents of /opt/steam-utils/ correctly. Then I switched into my special non-wheel user account and changed into /opt/steam-utils/bin/ and ran ./steam-install which apparently did nothing, just got the prompt again immediately. Consequently, starting steam gave the same reconnection problems again.
 
Running steam with -tcp worked well for the connection issues on my end:

Code:
--- steam/bin/steam    2019-09-16 16:03:25.241779000 +0200
+++ /opt/steam-utils/bin/steam    2019-09-16 19:18:21.838663000 +0200
@@ -54,4 +54,4 @@
 ENV['SDL_AUDIODRIVER'] = 'dsp'
 ENV['STEAM_ENABLE_SHADER_CACHE_MANAGEMENT'] = '0' # ?
 
-exec steam_root + '/ubuntu12_32/steam', *ARGV
+exec steam_root + '/ubuntu12_32/steam', '-tcp', *ARGV
 
Back
Top