steam-utils runs fine with linux-rl9 now
Since linux-rl9 was extended with 32bit functionality with commit 7dbd23b9e860 (thanks to fluffy), steam-utils also runs with it. As far as I can tell, everything works as usual under rl9 :D
Wouldn't it be time to switch from linux-c7 to linux-rl9 now? On FreeBSD, more and more other Linux applications are now running (better) under rl9. Unfortunately, it is not possible to install c7 and rl9 at the same time.
Corresponding changes in the steam-utils code would probably have to be made above all in the Makefile and in REAME.md?
is already out a new pkg (or port) linux_nvidia-libs for rl9?
On Mon, Dec 16, 2024 at 10:18 PM Matthieu Volat @.***> wrote:
or I'm missing something?
Yes, readme.
Wouldn't it be time to switch from linux-c7 to linux-rl9 now? On FreeBSD, more and more other Linux applications are now running (better) under rl9. Unfortunately, it is not possible to install c7 and rl9 at the same time.
If you change your port make.conf to have DEFAULT_VERSIONS+= linux=rl9, then it will build linux-steam-utils using rl9, so I don't see what need to be done here.
Corresponding changes in the steam-utils code would probably have to be made above all in the Makefile and in REAME.md?
Again, there is no code to change, it is a matter of telling the port framework to use rl9 instead of c7 for building linux packages
For what it is worth, I can confirm that Steam works (apparently flawlessly) with DEFAULT_VERSIONS+=linux=rl9 and no trace of CentOS 7. I am on 14-STABLE (commit 30bcbf8a2fefe81e28bd9e293d9ee970464b0da4 at the time of writing).
Yes, unless you have a modern Radeon GPU?
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
You need the workaround that is find here https://github.com/shkhln/linuxulator-steam-utils/blob/06b1ce460483844417ce6d4e3ac5d0e12e851eeb/bin/lsu-mount-runtime#L142
# linsysfs + drm workaround
mounts << mount('linsysfs', 'linsysfs', File.join(mroot, 'sys/.sys'))
Dir.chdir(File.join(mroot, 'sys')) do
card_dir_by_pci_id = {}
for card_dir in Dir['.sys/class/drm/card*']
uevent = File.read(File.join(card_dir, 'device/uevent'))
uevent =~ /PCI_ID=(.+)$/
pci_id = $1.downcase
card_dir_by_pci_id[pci_id] = card_dir
end
FileUtils.mkdir_p('class/drm')
FileUtils.mkdir_p('dev/char')
for line in `sysctl dev.drm`.lines
if line =~ /^dev.drm.(\d+).PCI_ID: (.*)$/
idx = $1.to_i
card_dir = card_dir_by_pci_id[$2]
if card_dir
FileUtils.ln_s(File.join('../..', card_dir), "class/drm/card#{idx}")
FileUtils.mkdir_p("dev/char/226:#{idx}")
FileUtils.ln_s(File.join('../../..', card_dir, 'device'), "dev/char/226:#{idx}/device")
uevent = <<~UEVENT
MAJOR=226
MINOR=#{idx}
DEVNAME=dri/card#{idx}
DEVTYPE=dri_minor
UEVENT
File.write("dev/char/226:#{idx}/uevent", uevent)
end
end
end
Dir.chdir('class') do
for path in Dir['../.sys/class/*']
basename = File.basename(path)
FileUtils.ln_s(path, basename) if !File.exist?(basename)
end
end
for path in Dir['.sys/*']
basename = File.basename(path)
FileUtils.ln_s(path, basename) if !File.exist?(basename)
end
end
So basically, enable the lsu chroot for the linux games (I have an amd gpu, and the workaround fixes the issue).
Still no luck, full log below:
ERROR: unsafe call to unsetenv count:1 var:'LD_PRELOAD'
CProcessEnvironmentManager is ready, 6 preallocated environment variables.
[2025-03-02 14:36:19] Startup - updater built Jan 28 2025 00:50:36
[2025-03-02 14:36:19] Startup - Steam Client launched with: '/home/user/.steam/steam/ubuntu12_32/steam'
03/02 14:36:19 minidumps folder is set to /tmp/dumps
03/02 14:36:19 Init: Installing breakpad exception handler for appid(steam)/version(1738026274)/tid(6708)
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
[2025-03-02 14:36:20] Loading cached metrics from disk (/home/user/.steam/steam/package/steam_client_metrics.bin)
[2025-03-02 14:36:20] Failed to load cached hosts file (File 'update_hosts_cached.vdf' not found), using defaults
[2025-03-02 14:36:20] Using the following download hosts for Public, Realm steamglobal
[2025-03-02 14:36:20] 1. https://client-update.steamstatic.com, /, Realm 'steamglobal', weight was 1, source = 'baked in'
[2025-03-02 14:36:20] Verifying installation...
[2025-03-02 14:36:20] Verification complete
UpdateUI: skip show logo
Steam logging initialized: directory: /home/user/.steam/steam/logs
/home/user/.steam/steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libgnutls.so.30: version `GNUTLS_3_6_3' not found (required by /usr/lib/gio/modules/libgiognutls.so)
Failed to load module: /usr/lib/gio/modules/libgiognutls.so
libproxy.so.1: cannot open shared object file: No such file or directory
Failed to load module: /usr/lib/gio/modules/libgiolibproxy.so
(process:6708): GLib-GIO-WARNING **: 14:36:21.492: Failed to create file monitor for /home/user/.config/glib-2.0/settings/keyfile: Unable to find default local file monitor type
XRRGetOutputInfo Workaround: initialized with override: 0 real: 0x22140230
XRRGetCrtcInfo Workaround: initialized with override: 0 real: 0x2213e910
ERROR: unsafe call to unsetenv count:2 var:'DESKTOP_STARTUP_ID'
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
[[sh]]
[[-c]]
[[exec '/home/user/.steam/steam/ubuntu12_64/steamwebhelper.sh.patched' '-nocrashdialog' '-lang=en_US' '-cachedir=/home/user/.steam/steam/config/htmlcache' '-steampid=6708' '-buildid=1738026274' '-steamid=0' '-logdir=/home/user/.steam/steam/logs' '-uimode=7' '-startcount=0' '-steamuniverse=Public' '-realm=Global' '-clientui=/home/user/.steam/steam/clientui' '-steampath=/home/user/.steam/steam/ubuntu12_32/steam' '-launcher=0' '-no-restart-on-ui-mode-change' '--valve-initial-threadpool-size=12' '--valve-enable-site-isolation' '--enable-smooth-scrolling' '--password-store=basic' '--log-file=/home/user/.steam/steam/logs/cef_log.txt' '--disable-quick-menu' '--enable-features=PlatformHEVCDecoderSupport' '--disable-features=SpareRendererForSitePerProcess,DcheckIsFatal,ValveFFmpegAllowLowDelayHEVC' --no-sandbox]]
lsu-mount-runtime: mount -o nocover -t tmpfs tmpfs /home/user/.steam/tmp
lsu-mount-runtime: mount -o nocover -t tmpfs tmpfs /home/user/.steam/tmp/SteamLinuxRuntime_sniper
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open amdgpu: /usr/lib/dri/amdgpu_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/dri, suffix _dri)
failed to load driver: amdgpu
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 9605
steam-runtime-launcher-service[9605]: E: Unable to watch signals: Function not implemented
Steam Runtime Launch Service: steam-runtime-launcher-service pid 9605 exited
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 9858
steam-runtime-launcher-service[9858]: E: Unable to watch signals: Function not implemented
Steam Runtime Launch Service: steam-runtime-launcher-service pid 9858 exited
Steam Runtime Launch Service: starting steam-runtime-launcher-service
Steam Runtime Launch Service: steam-runtime-launcher-service is running pid 10142
steam-runtime-launcher-service[10142]: E: Unable to watch signals: Function not implemented
Steam Runtime Launch Service: steam-runtime-launcher-service pid 10142 exited
Steam Runtime Launch Service: steam-runtime-launcher-service keeps crashing on startup, disabling
lsu-mount-runtime: mount -t linprocfs linprocfs /home/user/.steam/tmp/SteamLinuxRuntime_sniper/proc
lsu-mount-runtime: mount -t nullfs /tmp /home/user/.steam/tmp/SteamLinuxRuntime_sniper/tmp
lsu-mount-runtime: mount -t nullfs /var/run /home/user/.steam/tmp/SteamLinuxRuntime_sniper/var/run
lsu-mount-runtime: mount -t linsysfs linsysfs /home/user/.steam/tmp/SteamLinuxRuntime_sniper/sys/.sys
lsu-mount-runtime: mount -t devfs devfs /home/user/.steam/tmp/SteamLinuxRuntime_sniper/dev/.dev
lsu-mount-runtime: mount -t nullfs /compat/linux/dev/shm /home/user/.steam/tmp/SteamLinuxRuntime_sniper/dev/shm
lsu-mount-runtime: mount -t nullfs /opt/steam-utils /home/user/.steam/tmp/SteamLinuxRuntime_sniper/usr/steam-utils
lsu-mount-runtime: mount -o union -t nullfs /usr/local/share/icons /home/user/.steam/tmp/SteamLinuxRuntime_sniper/usr/share/icons
lsu-mount-runtime: mount -o union -t nullfs /usr/local/share/fonts /home/user/.steam/tmp/SteamLinuxRuntime_sniper/usr/share/fonts
/usr/local/lib/ruby/3.2/fileutils.rb:2290:in `initialize': No such file or directory @ rb_sysopen - /compat/linux/usr/lib64/alsa-lib/libasound_module_ctl_oss.so (Errno::ENOENT)
from /usr/local/lib/ruby/3.2/fileutils.rb:2290:in `open'
from /usr/local/lib/ruby/3.2/fileutils.rb:2290:in `copy_file'
from /usr/local/lib/ruby/3.2/fileutils.rb:1088:in `copy_file'
from /usr/local/lib/ruby/3.2/fileutils.rb:887:in `block in cp'
from /usr/local/lib/ruby/3.2/fileutils.rb:2481:in `block in fu_each_src_dest'
from /usr/local/lib/ruby/3.2/fileutils.rb:2495:in `fu_each_src_dest0'
from /usr/local/lib/ruby/3.2/fileutils.rb:2479:in `fu_each_src_dest'
from /usr/local/lib/ruby/3.2/fileutils.rb:886:in `cp'
from /opt/steam-utils/bin/lsu-mount-runtime:279:in `block in <main>'
from /opt/steam-utils/bin/lsu-mount-runtime:275:in `each'
from /opt/steam-utils/bin/lsu-mount-runtime:275:in `<main>'
lsu-run-in-chroot: Unable to prepare chroot dir
[2025-03-02 14:37:02] Shutdown
lsu-kill: No pid file found
lsu-umount: umount /home/user/.steam/tmp
What am I missing?
You are missing the alsa-pulgins-oss dependency.
From the port
USE_LINUX= devtools:build dbuslibs gtk2 dri nss alsa-plugins-oss
So you are missing linux-rl9-alsa-plugins-oss
How are you building linux-steam ? And which version ?
The gpu warning is mostly expected since at this stage, the chroot is not yet created. PS: I don't have gpu issue on an ryzen 5 4600G. For instance, running civ VI works without any issue.
I'm building from source, cloning the repo and then building it from there with linux=rl9. I modified the Makefile to install the dependencies linux-rl9 instead of linux-c7. I've started from scratch, and this time installed the library manually. It seems to have solved it, thanks for the help!
I did some more digging, which led me to the conclusion that everything is launched sandboxed by the default. Using the native wine-proton, I was able to launch the app with the "--no-sandbox" and get to a working GPU environment. Is there the equivalent for the linux steam?
No, nothing is launched sandboxed, which is noted right in the readme.