ValveSoftware / csgo-osx-linux

Counter-Strike: Global Offensive
http://counter-strike.net
787 stars 69 forks source link

CS:GO not starting on Ubuntu 21.10 #2815

Open hombrehormiga opened 3 years ago

hombrehormiga commented 3 years ago

Your system information

Please describe your issue in as much detail as possible:

The game was working fine on Ubuntu 21.04. After updating the system to Ubuntu 21.10, the game just show a black screen for some seconds and then die.

I've tried with some launch options like -autoconfig -fullscreen -nojoy -steam -novid with the same results

Console output running it from the console: https://gist.github.com/hombrehormiga/ca117c0c35d65ffbad1aca2b90c1f0c4

Steps for reproducing this issue:

  1. Just run the game in Ubuntu 21.10
mackatozis commented 2 years ago

I'm on Ubuntu 20.04 and had the same issue.

To fix the issue, I've found two workarounds

  1. In case you have the -novid launch option, remove it
  2. In case you want to keep the -novid launch option, enable vulkan by adding the following launch option: -vulkan

Bare in mind by running CS:GO with Vulkan, you lose the option to play with 4:3

snixon commented 2 years ago

Just wanted to leave a note saying that this remains an issue in the 22.04 Beta.

The workaround re-linking the libraries above allows the game to start and run.

panzerlop commented 2 years ago

Kubuntu 22.04 beta for me I had to do all the steps detailed here https://github.com/panzerlop/panzerlop/blob/main/Steam%20and%20Steam%20Games/2.1.%20CS:GO%20Native%20Linux%20FIX%20-%20Steam%20-%20Kubuntu%2021.10%20-%2022.04%20LTS%20Beta

If anyone could help me clean up that guide a little I'd be really grateful

steve-todorov commented 2 years ago

@panzerlop your guide has way too many unnecessary steps which can be summarize into these few:

  1. Download and install Steam from https://store.steampowered.com/about/ (sudo apt install ./path/to/steam.deb ; this package already requires all of the i386 packages you listed in your guide)
  2. Download CS:GO
  3. Download patch script from my gist (Save it into the CS:GO home path; read the guide in the gist for more details)
  4. Run the patch (which will attempt to fetch the required libtcmalloc package depending on the distribution and copy it into the correct path(s))
  5. Start the game - enjoy (you do not need to use -novid -nojoy launch options, but you can add them anyway to skip the intro videos and save time)

I've done this on Ubuntu 21.04, 21.10 and will do it for 22.04 when it comes out in few weeks.

panzerlop commented 2 years ago

@steve-todorov exactly what I was looking for thanks mate

kennedy2141 commented 2 years ago

Ubuntu 22.04 - Jammy Jellyfish Kubuntu 22.04 etc... Same error, but this worked flawlessly

kill all steam stuff

sudo apt install libtcmalloc-minimal4
cd ${CS_GO_PATH}/bin/linux64
mv libtcmalloc_minimal.so.0 libtcmalloc_minimal.so.0.orig
cp /usr/lib/x86_64-linux-gnu/libtcmalloc_minimal.so.4.5.9 libtcmalloc_minimal.so.0

Thanx!

josiah-roberts commented 2 years ago

I have a similar issue, which started occurring after upgrading from a GTX 770 to an RX 6750 XT. Pop!_OS 22.04 LTS.

The game loads and main menu music plays, but the screen is black. Closing out of the game with a keyboard reveals that the black screen applies to the desktop as well: I have to kill X to recover the system.

birmoscow commented 2 years ago

22.04 LTS

Steam/steamapps/common/Counter-Strike Global Offensive/csgo/panorama

"videos" folder has been renamed to "videos_" ("videos361278362163821638", no matter, you can try to delete)

it helped me


Переименуйте папку videos в Steam/steamapps/common/Counter-Strike Global Offensive/csgo/panorama , например, в videos_

У меня после этого каким-то чудом запустилось. Может и вам поможет

upd: source / источник https://www.youtube.com/watch?v=GoDHWxL9W40

upd2: in the general settings add to the startup parameters / в общих настройках добавьте в параметры запуска " -novid "

dulobanov commented 2 years ago

Hello, it was solved by updating CS:GO Denis

чт, 30 июн. 2022 г. в 00:57, maxvelin @.***>:

Have you solved this problem?

— Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/csgo-osx-linux/issues/2815#issuecomment-1170573221, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAPEYOENKMSCPEKFEXIVSYDVRTIFNANCNFSM5GDYEJZQ . You are receiving this because you commented.Message ID: @.***>

Etaash-mathamsetty commented 2 years ago

I tried all the workarounds mentioned and none of them worked, I am on arch linux I have flags -novid -nojoy -vulkan, it is still not working this issue has plagued every distro I have tried, manjaro, arch linux, fedora, ubuntu 21.10+

birmoscow commented 2 years ago

I tried all the workarounds mentioned and none of them worked, I am on arch linux I have flags -novid -nojoy -vulkan, it is still not working this issue has plagued every distro I have tried, manjaro, arch linux, fedora, ubuntu 21.10+

https://github.com/ValveSoftware/csgo-osx-linux/issues/2815#issuecomment-1156493375

Try this solution

LunarWatcher commented 1 year ago

Same problem, mint 21:

 ##### swap interval = 0     swap limit = 1 #####
CGLMShaderPair::SetProgramPair: Centroid masks differ at link time of vertex shader screenspaceeffect_vs30 and pixel shader underwater_ps30!
Filesystem successfully switched to safe whitelist mode
 failed to dlopen /home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/matchmaking_client.so error=/home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/matchmaking_client.so: wrong ELF class: ELFCLASS32
 failed to dlopen /home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/client_client.so error=/home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/client_client.so: wrong ELF class: ELFCLASS32
CClientSteamContext logged on = 1
 failed to dlopen /home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/server_client.so error=/home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/csgo/bin/server_client.so: wrong ELF class: ELFCLASS32
Game.dll loaded for "Counter-Strike: Global Offensive"
 failed to dlopen /home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/bin/soundemittersystem_client.so error=/home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/bin/soundemittersystem_client.so: wrong ELF class: ELFCLASS32
 failed to dlopen /home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/bin/scenefilecache_client.so error=/home/olivia/.local/share/Steam/steamapps/common/Counter-Strike Global Offensive/bin/scenefilecache_client.so: wrong ELF class: ELFCLASS32
CGameEventManager::AddListener: event 'server_pre_shutdown' unknown.
CGameEventManager::AddListener: event 'game_newmap' unknown.
CGameEventManager::AddListener: event 'finale_start' unknown.
CGameEventManager::AddListener: event 'round_start' unknown.
CGameEventManager::AddListener: event 'round_end' unknown.
CGameEventManager::AddListener: event 'difficulty_changed' unknown.
CGameEventManager::AddListener: event 'player_death' unknown.
CGameEventManager::AddListener: event 'hltv_replay' unknown.
CGameEventManager::AddListener: event 'player_connect' unknown.
CGameEventManager::AddListener: event 'player_disconnect' unknown.
GameTypes: missing mapgroupsSP entry for game type/mode (custom/custom).
GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/cooperative).
GameTypes: missing mapgroupsSP entry for game type/mode (cooperative/coopmission).
crash_20221119222836_2.dmp[129873]: Uploading dump (out-of-process)
/tmp/dumps/crash_20221119222836_2.dmp
crash_20221119222836_2.dmp[129873]: Finished uploading minidump (out-of-process): success = no
crash_20221119222836_2.dmp[129873]: error: libcurl.so: cannot open shared object file: No such file or directory
crash_20221119222836_2.dmp[129873]: file ''/tmp/dumps/crash_20221119222836_2.dmp'', upload no: ''libcurl.so: cannot open shared object file: No such file or directory''
./csgo.sh: line 88: 129838 Segmentation fault      (core dumped) ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"

It's been intermittent for me though; I've never checked the logs before though, so I have no idea if the problem has changed over time. Usually fixed it by restarting steam. that hasn't helped this attempted game session.

A full reinstall didn't help either, and it doesn't seem to like proton, which is interesting, but also a tangent not worth exploring. -novid didn't help.

Honestly just sad that a company that has been pushing so hard for steam support breaks Linux support within the games they own themselves, and never comes back to fix it

EysseW commented 1 year ago

You don't need proton. Csgo is working natively. Turn it off and it will launch.

LunarWatcher commented 1 year ago

I know, I tried proton because it doesn't work natively. Read the entire thread here of people who can't get it to launch natively.

Some games have a history of working better on proton than natively. That wasn't the case here. The logs are from the native run, not from the proton run, which failed for another reason not worth investigating because it's meant to work natively.

shytzedaka commented 1 year ago

I know, I tried proton because it doesn't work natively. Read the entire thread here of people who can't get it to launch natively.

Some games have a history of working better on proton than natively. That wasn't the case here. The logs are from the native run, not from the proton run, which failed for another reason not worth investigating because it's meant to work natively.

Didn't work for you even on Ubuntu 22.04?

LunarWatcher commented 1 year ago

Mint 21 is based on Ubuntu 22.04, but I haven't tried on raw Ubuntu because I don't use raw Ubuntu. Shouldn't make much of a difference though, AFAIK

shytzedaka commented 1 year ago

Mint 21 is based on Ubuntu 22.04, but I haven't tried on raw Ubuntu because I don't use raw Ubuntu. Shouldn't make much of a difference though, AFAIK

i think some of the packages are different. since last time i tried it on Ubuntu 22.04 it did work out of the box i believe! it was either Ubuntu or one of its flavors (such as Kubuntu)

LunarWatcher commented 1 year ago

Depends on the packages you're referring to.

Mint does have its own repos, yes, but it also piggybacks off Ubuntu's own repos. The bulk of packages are going to be identical to Ubuntu. The preinstalled ones vary though, but that's unavoidable with any type of spins.

It has also historically worked out of the box for me on different computers. Not entirely sure what changed. There's different hardware, sure, but none of it should prevent curl from being detected. /shrug

shytzedaka commented 1 year ago

Depends on the packages you're referring to.

Mint does have its own repos, yes, but it also piggybacks off Ubuntu's own repos. The bulk of packages are going to be identical to Ubuntu. The preinstalled ones vary though, but that's unavoidable with any type of spins.

It has also historically worked out of the box for me on different computers. Not entirely sure what changed. There's different hardware, sure, but none of it should prevent curl from being detected. /shrug

try with a different SSD or HDD freshly installed latest mint or ubuntu/Kubuntu. see if it differs in behaviour.

LunarWatcher commented 1 year ago

This isn't windows, I'm not reinstalling my OS because a game has faulty code and can't locate its own dependencies. All the other games are fine, including both native and non-native games. CS:GO refusing to cooperate with various environments remains CS:GO's fault

Mint 21.1 is being released some time in december though, will see if that update changes anything (but I doubt it, seeing as this is an issue on numerous distros and numerous versions of the various reported distros, including many based on plain debian or completely different distros)

shytzedaka commented 1 year ago

True, CSGO Should depend on its own files in that case. rather than on system libraries.

LunarWatcher commented 1 year ago

Yes, and as far as I'm aware, it does. The logs indicate that it tries to load some self-managed .so files as well.

EDIT: This randomly stopped working today, even though there's now a libcurl.so present.

This did lead me down a path that worked though. I'm not entirely sure why, but I can't find a libcurl.so on my system. Steam bundles versioned libcurls:

/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/libcurl_compat_64/libcurl.so.3
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/libcurl_compat_64/libcurl.so.4
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/libcurl_compat_64/libsteam-runtime-system-libcurl.so.4
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libcurl.so.3
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libcurl.so.4
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.3
/home/olivia/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64/libcurl.so.4

but no libcurl.so. I have no explanation for why this worked, but:

cd /usr/lib/x86_64-linux-gnu 
sudo ln -s libcurl.so.4 libcurl.so

made CS:GO start? I don't understand why that helps though, especially seeing as it has previously started with an unreliable boot sequence. I don't understand how it was ever able to start if libcurl.so failed to load. Might be a bad new update? CS:GO did download a few hundred kilobytes, so maybe they accidentally dropped version lookup.

This does raise numerous questions, especially how it has ever been able to start previously (including last week) without a libcurl.so available, but at least it starts

shytzedaka commented 1 year ago

if thats the case then a recent update broke it again when it was fixed before..

LunarWatcher commented 1 year ago

That's the thing; it didn't work reliably at all on this computer. Restarting steam was often enough to make it work. There weren't updates that fixed it

I never checked the logs for that though, because I didn't think that far at the time. Could be a different issue, could not

shytzedaka commented 1 year ago

That's the thing; it didn't work reliably at all on this computer. Restarting steam was often enough to make it work. There weren't updates that fixed it

I never checked the logs for that though, because I didn't think that far at the time. Could be a different issue, could not

ill try to install CSGO and run it out of the box from my Laptop with Kubuntu 22.10 on it. and see if it runs! ill post the system info aswell.

steve-todorov commented 1 year ago

@LunarWatcher

but no libcurl.so. I have no explanation for why this worked, but:

cd /usr/lib/x86_64-linux-gnu 
sudo ln -s libcurl.so.4 libcurl.so

It sounds to me like they broke something new with a recent update (there was one a few days ago).

@shytzedaka if it's not working you could try my gist which contains a script that fixes the libtcmalloc_minimal issue. I've been using it since Ubuntu 21.10 and now I'm on Ubuntu 22.10 - so far it still works as expected. :)

LunarWatcher commented 1 year ago

It sounds to me like they broke something new with a recent update (there was one a few days ago).

It does, but /shrug. The fix I had broke today. The normal restarts didn't help.

steve-todorov commented 1 year ago

From my experience so far, it looks like these libraries are supposed to be placed in $GAMEROOT/bin/linux64/{...}.so. In my case (libtcmalloc_minimal) - placing the library into /usr/lib and/or /lib did not fix it at all. Only once I placed it inside ./bin/linux64 did it start working again. That's probably related to the "magic" they are doing inside csgo.sh script where they change LD_LIBRARY_PATH (there is a note inside the csgo.sh script regarding libcurl4.so).

I'd suggest you do ldd $GAMEROOT/csgo_linux64 which will show you the missing .so libraries. Maybe try to put them (i.e. libcur.so.4) into $GAMEROOT/bin/linux64/ (double check the exact name from ldd csgo_linux64)

If you are wondering what $GAMEROOT is:

$GAMEROOT = "./.steam/steamapps/commons/Counter-Strike Global Offensive" (or wherever you installed csgo)

(just following the csgo.sh script convention)

LunarWatcher commented 1 year ago

I've spent a few more days messing around with libcurl.so and libtcmalloc_minimal, but neither of them work. If I include libcurl, it actually fails for a separate reason (good 'ol "wrong ELF class: ELFCLASS64").

My current "functioning" strategy is mass-starting several instances from the desktop entry (around 15-20 or more). For some reason I'm not going to pretend to understand, the bulk of them fail, though every time I've tried this, one instance magically works for no reason. Same behavior both with and without libtcmalloc_minimal, though I haven't tried with libcurl manually added seeing as CS:GO apparently can't load 64 bit curl? No idea how this is meant to work, and this is as far as I can go without access to the code. Guess I'll just spam-start CS:GO until it works :upside_down_face:

Poly2it commented 1 year ago

Is this ever getting fixed?

fencesome commented 1 year ago

Same for me on 6.2.8-arch1-1 unless I get rid of the /csgo/panorama files. When I do that there some UI elements and game backgrounds that are blank and bugged out with the color black. Are we getting a official solution?

Etaash-mathamsetty commented 1 year ago

Same for me on 6.2.8-arch1-1 unless I get rid of the /csgo/panorama files. When I do that there some UI elements and game backgrounds that are blank and bugged out with the color black. Are we getting a official solution?

counter strike 2 is the official solution /s or just run the game under wine, which works much better than this native port

Etaash-mathamsetty commented 1 year ago

Is this ever getting fixed?

probably not

Fesiug commented 1 year ago

the native csgo linux build runs very well in my opinion, except for this issue. why should i have to run one of valves best in wine for an issue like this??

landjalan commented 1 year ago

I've spent a few more days messing around with libcurl.so and libtcmalloc_minimal, but neither of them work. If I include libcurl, it actually fails for a separate reason (good 'ol "wrong ELF class: ELFCLASS64").

My current "functioning" strategy is mass-starting several instances from the desktop entry (around 15-20 or more). For some reason I'm not going to pretend to understand, the bulk of them fail, though every time I've tried this, one instance magically works for no reason. Same behavior both with and without libtcmalloc_minimal, though I haven't tried with libcurl manually added seeing as CS:GO apparently can't load 64 bit curl? No idea how this is meant to work, and this is as far as I can go without access to the code. Guess I'll just spam-start CS:GO until it works upside_down_face

have you got a code snippet to do that ? (script)

landjalan commented 1 year ago

annoying, I thought I or valve fixed this sufficiently but now for about 4 weeks or so the problem is back with a vengeance.

deleting the panorama folder helped in the first instance. Before that, I restarted csgo 30x on 2 different days and it was not coming up.

LunarWatcher commented 1 year ago

have you got a code snippet to do that ? (script)

I don't. If it fails to boot first try, I just spam-click my mouse until I feel I've clicked enough, and let it process until the game starts up, or it still refuses to start. I can click while waiting for the game to load as well (though that primarily works if you aren't using fullscreen, because you need desktop access to click the icon). It generally starts then, though at the expense of spawning tens or several hundreds of processes, depending on how many times you can be bothered to click.

Also worth noting that many of the processes immediately exit because it detects an existing process running, but I have a higher success rate with that approach compared to manually starting.

I'm not going to pretend to understand why this works

Etaash-mathamsetty commented 1 year ago

Just run the game through wine, there's much less hassle and the performance is significantly better thanks to GPL

LunarWatcher commented 1 year ago

I've tried running it through proton, but it just doesn't work. Won't boot (complains about not finding the steam process)

GenocideStomper commented 1 year ago

I've tried running it through proton, but it just doesn't work. Won't boot (complains about not finding the steam process)

This is not me recommending that you do this, because Valve wants Linux players to use the native client. But if you actually want to use the Windows version of CS:GO, you can't use Proton through native Steam. What you have to do is use something like Lutris, install the Windows version of Steam, and install CS:GO in that. Apparently it allows connected to VAC-secured servers.

Again, not condoning this, but I'm not aware of anyone getting banned from doing this.

Etaash-mathamsetty commented 1 year ago

I am still having this issue in late 2023 :(

none of the "fixes" in this thread work

EysseW commented 1 year ago

Have you tried running it in gamescope?

Etaash-mathamsetty commented 1 year ago

Have you tried running it in gamescope?

yes

kkevlar commented 1 year ago

FIXED FOR ME:

Delete the video files in the panorama directory and run with -novid see these:

I tried the libctmalloc fixes in this thread but they didn't work for me. The panorama fixed worked for both me any my buddy on Ubuntu 22. It's definitely worth a shot.