Millennium icon indicating copy to clipboard operation
Millennium copied to clipboard

[Bug] [Linux] Millennium doesnt apply

Open liampas opened this issue 7 months ago • 32 comments

Before Reporting

  • [x] I found no existing issues matching my bug
  • [x] My issue is not caused by a theme
  • [x] My issue is not caused by a plugin

Describe the Bug

Millennium doesnt work: the millenium options aren't there. If I launch steam with the terminal it says: ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output...

Expected Behavior

I see a millennium option in the steam dropdown or I can access the millennium settings via the steam url.

Steps To Reproduce

install millennium with yay run the millennium patch command

Operating System

Linux (endavour os)

Anything else?

also when I run the millennium patch command, it asked me to run with sudo: Resolving permissions... Insufficient permissions. Please run this script with sudo.

It wasn't said in the documentations so this is odd. I ran it with sudo but I don't know if it really worked.

liampas avatar May 25 '25 00:05 liampas

I'm having the same issue. I also installed the AUR version using yay just now, making sure to also run the post install millennium patch command, and either steam launches without millennium patched or it doesn't at all with the same output of ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output...

hollowillow avatar May 25 '25 10:05 hollowillow

I have the same problem. I am on CachyOS Linux with Hyprland and installed millennium from the AUR with paru. It shows the same error: ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output... for me. I think It backed up and ran steam, not steam-native.

imnaK avatar May 25 '25 15:05 imnaK

Yep exactly. I'm on CachyOS too. It modifies /usr/bin/steam which is fine, but we need /usr/bin/steam-native patched as this is preferred over the default steam packages. Maybe this can be added as a flag or as an argument to the patch command.

BLACK4585 avatar May 25 '25 15:05 BLACK4585

Reproducible on Fedora 42. After running sudo millennium patch a second time, steam refuses to open entirely and repeats the line Redirecting Steam output... indefinitely.

Amr7122 avatar May 26 '25 00:05 Amr7122

Reproducable on Fedora 41 but Steam will still start. Running sudo millennium patch returns no error but Steam will output "ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored" on startup. Steam will still start normally, Millennium is nowhere to be found after startup though. Following this thread.

Edit1 for devs: I installed with the bash script from your page, which went through with absolutely no errors. Then tried to patch with the aforementioned command to no avail.

JKL213 avatar May 27 '25 21:05 JKL213

@imnaK & @BLACK4585

Does the steam package not follow the arch-repos? The arch-repos moved from steam-native to steam a few months back.

@JKL213 & @Amr7122

What command are you using to start Steam?

@hollowillow

What distro are you on?

shdwmtr avatar May 27 '25 23:05 shdwmtr

I ran steam with the terminal today and it gave me more errors thought it might be useful:

log_pasted_from_the_terminal.txt

liampas avatar May 28 '25 00:05 liampas

@liampas

Run sudo chown -R "$USER":"$USER" ~/.local/share/millennium

shdwmtr avatar May 28 '25 00:05 shdwmtr

@liampas

Run sudo chown -R "$USER":"$USER" ~/.local/share/millennium

Can unfortunately confirm that this fix does not work on Fedora 41 with GNOME.

I tried the same out of curiosity. Didn't work - I quit Steam with pkill -9 steam and ran your command, then started Steam up again from the terminal (steam command).

Steam generated an error output this time:

Traceback (most recent call last):
  File "/home/jan/.local/share/millennium/lib/assets/core/main.py", line 4, in <module>
    from updater.millennium import MillenniumUpdater
  File "/home/jan/.local/share/millennium/lib/assets/core/updater/millennium.py", line 5, in <module>
    import requests
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/site-packages/requests/__init__.py", line 164, in <module>
    from .api import delete, get, head, options, patch, post, put, request
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/site-packages/requests/api.py", line 11, in <module>
    from . import sessions
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/site-packages/requests/sessions.py", line 15, in <module>
    from .adapters import HTTPAdapter
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/site-packages/requests/adapters.py", line 80, in <module>
    _preloaded_ssl_context = create_urllib3_context()
                             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/site-packages/urllib3/util/ssl_.py", line 298, in create_urllib3_context
    context = SSLContext(PROTOCOL_TLS_CLIENT)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jan/.local/share/millennium/lib/cache/lib/python3.11/ssl.py", line 500, in __new__
    self = _SSLContext.__new__(cls, protocol)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ssl.SSLError: unknown error (_ssl.c:3098)


alongside with this error IMMEDIATELY after running the steam command in the terminal:

ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

JKL213 avatar May 28 '25 11:05 JKL213

@liampas

Run sudo chown -R "$USER":"$USER" ~/.local/share/millennium

worked for me!

liampas avatar May 28 '25 11:05 liampas

@hollowillow

What distro are you on?

Just pure Arch

I'm a little too busy to try right now but I'll try the command bellow and get back if it works or not in a day or two

hollowillow avatar May 28 '25 15:05 hollowillow

@liampas

Run sudo chown -R "$USER":"$USER" ~/.local/share/millennium

Worked for me too :) the libs in there are owned by root for some reason.

imnaK avatar May 29 '25 02:05 imnaK

Run sudo chown -R "$USER":"$USER" ~/.local/share/millennium

Seems to have worked for me as well, thanks

hollowillow avatar Jun 02 '25 03:06 hollowillow

@JKL213

Add

export OPENSSL_CONF=/dev/null

above the LD_PRELOAD line in the steam script on your distro (probably /usr/bin/steam but it might be different)

shdwmtr avatar Jun 03 '25 01:06 shdwmtr

@JKL213

Add

export OPENSSL_CONF=/dev/null

above the LD_PRELOAD line in the steam script on your distro (probably /usr/bin/steam but it might be different)

Thank you, can confirm that worked like a charm on Fedora 41.

Got any technical insight as to why?

JKL213 avatar Jun 03 '25 08:06 JKL213

@JKL213 Add export OPENSSL_CONF=/dev/null above the LD_PRELOAD line in the steam script on your distro (probably /usr/bin/steam but it might be different)

Thank you, can confirm that worked like a charm on Fedora 41.

Got any technical insight as to why?

I don't know the specific issue, but it was some global OpenSSL config Millennium was having trouble with. The line you added just makes sure Millennium doesn't use your system OpenSSL config.

shdwmtr avatar Jun 03 '25 13:06 shdwmtr

@JKL213

Add

export OPENSSL_CONF=/dev/null

above the LD_PRELOAD line in the steam script on your distro (probably /usr/bin/steam but it might be different)

Struggled with this issue for like an hour!! Thanks so much <3

Lanzo191 avatar Jun 16 '25 19:06 Lanzo191

i'm having the same issue. Adding export OPENSSL_CONF=/dev/null or running sudo chown -R "$USER":"$USER" ~/.local/share/millennium unfortunately did not help, and i keep getting the same error (ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output...)

tomhard1 avatar Jun 20 '25 10:06 tomhard1

Can confirm with @tomhard1, the previous aforementioned fixes do not work on Arch with the current AUR package.

RyanHakurei avatar Jun 22 '25 02:06 RyanHakurei

Fedora 41, still have the same issues ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output... , even after using OPENSSL_CONF=/dev/null and sudo chown -R "$USER":"$USER" ~/.local/share/millennium

FelpohDutra avatar Jun 27 '25 23:06 FelpohDutra

Fedora 41, still have the same issues ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output... , even after using OPENSSL_CONF=/dev/null and sudo chown -R "$USER":"$USER" ~/.local/share/millennium

The LD_PRELOAD error can be ignored, its not the reason its not working. What does your steam output look like when running?

shdwmtr avatar Jun 28 '25 00:06 shdwmtr

Fedora 42 user here, just installed aswell. I did the 2 workarounds from top but no result either.

Here is the output from steam log.txt

I saw this line ERROR couldn't initialize from config failed to get the Python codec of the filesystem encoding, but id be surprised if it failed to load just because im on btrfs. Aside from that, it doesnt look too problematic

mineland-2048 avatar Jun 28 '25 23:06 mineland-2048

on debian 13 trixie here and i get the same thing, installed steam from the default repository "sudo apt install steam" \home\manitoba> steam ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output... /usr/bin/steam: line 48: /usr/lib/steam/bin_steam.sh: No such file or directory

the fixes in this thread did not work when tried.

mazdatribute avatar Jul 01 '25 05:07 mazdatribute

I'm experiencing the same issue on Fedora 42 with a fresh installation of Steam and Millennium.

Is there a potential mismatch between Steam's 64-bit system and the library's 32-bit system? How come there is only an x86.so and not a x64.so or x86_x64.so? I wondered if Steam has recently moved to an x64 architecture throughout and no longer loads the x86 by default or at all.

I tried launching Steam as an x86 app with no success, with or without Millennium installed ~/.local/share/Steam/ubuntu12_32/steam. I presume in a newer install of Steam or a dependency update, 32-bit no longer works, forcing Millennium to use x64.so, which it doesn't have, hence the LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32).

However, running LD_LIBRARY_PATH='/usr/lib:/usr/lib/millennium' LD_PRELOAD='/usr/lib/millennium/libmillennium_x86.so' ~/.local/share/Steam/ubuntu12_32/steam or ~/.local/share/Steam/ubuntu12_32/steam; I found the initial error ERROR: ld.so: object '/usr/lib/millennium/libmillennium_x86.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Redirecting Steam output... no longer appears. Hope this helps someone smarter than I work this out.

Honestly, I'm grasping at straws here a little bit, but I hope there's something useful here.

NoahBRostant avatar Jul 01 '25 13:07 NoahBRostant

Fedora 42 Proceeding with v2.25.1 results in same LD_PRELOAD error with Steam launching without Millennium integrated, none of the solutions above works. Using v2.26.0-beta.14 appears to make Millennium running but appears to be crashing steamwebhelper instead and no window comes up.

log with 2.26.0

asrieldashie avatar Jul 01 '25 16:07 asrieldashie

Steam has recently made some changes that broke Millennium on Linux.

shdwmtr avatar Jul 01 '25 16:07 shdwmtr

+1 here

codeuriii avatar Jul 07 '25 05:07 codeuriii

@codeuriii Are you using the latest beta?

shdwmtr avatar Jul 07 '25 05:07 shdwmtr

I dont know, im using with the web installer, and sudo millenium patch and i have the libso error

codeuriii avatar Jul 07 '25 05:07 codeuriii

attach your logs

shdwmtr avatar Jul 07 '25 05:07 shdwmtr