GeForce Now app vs browser

Hi there Garuda people! :slight_smile:

Since my desktop PC is quite old (see inxi below) I’m a heavy user of the Geforce Now streaming service. I have it working via webapp with Thorium browser, but I was wondering if there’s a way to install and operate the native Windows application, since streaming via browser does not guarantee the highest performance (no 4K, no 120 Hz…) of my Ultimate plan.
I tried to install the Windows app via Lutris: it is listed as installable, but the install fails every time. :frowning:
Anyone managed it? Thanks in advance!

System:
Kernel: 6.6.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=1930b164-e875-487b-9e15-d08dfb606021 rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
ibt=off resume=UUID=290da5e7-6510-4b46-9fa1-14463cba09cf
Desktop: KDE Plasma v: 5.27.9 tk: Qt v: 5.15.11 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Desktop Mobo: ASRock model: P67 Extreme4 serial: <superuser required>
BIOS: American Megatrends v: P3.10 date: 04/24/2012
Battery:
Device-1: hidpp_battery_0 model: Logitech G604 Wireless Gaming Mouse
serial: <filter> charge: 100% (should be ignored) rechargeable: yes
status: discharging
CPU:
Info: model: Intel Core i5-2500K bits: 64 type: MCP arch: Sandy Bridge
gen: core 2 level: v2 built: 2010-12 process: Intel 32nm family: 6
model-id: 0x2A (42) stepping: 7 microcode: 0x2F
Topology: cpus: 1x cores: 4 smt: <unsupported> cache: L1: 256 KiB
desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB
desc: 1x6 MiB
Speed (MHz): avg: 4390 min/max: 1600/5900 scaling: driver: intel_cpufreq
governor: schedutil cores: 1: 4390 2: 4390 3: 4390 4: 4390 bogomips: 26341
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: NVIDIA GM204 [GeForce GTX 970] vendor: ZOTAC driver: nvidia
v: 545.29.06 alternate: nouveau,nvidia_drm non-free: 545.xx+ status: current
(as of 2023-10; EOL~2026-12-xx) arch: Maxwell code: GMxxx
process: TSMC 28nm built: 2014-2019 pcie: gen: 2 speed: 5 GT/s lanes: 16
bus-ID: 01:00.0 chip-ID: 10de:13c2 class-ID: 0300
Display: x11 server: X.Org v: 21.1.9 with: Xwayland v: 23.2.2
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia
alternate: fbdev,nouveau,nv,vesa gpu: nvidia display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 97 s-size: 503x283mm (19.80x11.14")
s-diag: 577mm (22.72")
Monitor-1: DP-1 size-res: N/A modes: N/A
Monitor-2: DVI-I-1 pos: primary res: 1920x1080 dpi: 96
size: 510x287mm (20.08x11.3") diag: 585mm (23.04") modes: N/A
Monitor-3: None-1-1 size-res: N/A modes: N/A
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: kms_swrast surfaceless: drv: nvidia x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 545.29.06
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GTX 970/PCIe/SSE2
memory: 3.91 GiB
API: Vulkan v: 1.3.269 layers: 5 device: 0 type: discrete-gpu
name: NVIDIA GeForce GTX 970 driver: nvidia v: 545.29.06
device-ID: 10de:13c2 surfaces: xcb,xlib
Audio:
Device-1: Intel 6 Series/C200 Series Family High Definition Audio
vendor: ASRock 6 driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
chip-ID: 8086:1c20 class-ID: 0403
Device-2: NVIDIA GM204 High Definition Audio vendor: ZOTAC
driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 16
bus-ID: 01:00.1 chip-ID: 10de:0fbb class-ID: 0403
Device-3: Logitech G430 Surround Sound Gaming Headset
driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 2-1.2:4 chip-ID: 046d:0a4d class-ID: 0300
Device-4: M-Audio AIR 192 6 driver: snd-usb-audio type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2.3:3 chip-ID: 0763:410c
class-ID: fe01
API: ALSA v: k6.6.2-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.0.0 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: ASRock driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1
port: b000 bus-ID: 0c:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp12s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Bluetooth:
Device-1: Cambridge Silicon Radio Bluetooth Dongle (HCI mode) driver: btusb
v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-1.6:4
chip-ID: 0a12:0001 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: <filter> bt-v: 4.0 lmp-v: 6
status: discoverable: no pairing: no
Drives:
Local Storage: total: 2.85 TiB used: 603.36 GiB (20.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: 3B6Q scheme: MBR
ID-2: /dev/sdb maj-min: 8:16 vendor: Crucial model: M4-CT128M4SSD2
size: 119.24 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: 070H scheme: MBR
ID-3: /dev/sdc maj-min: 8:32 vendor: Seagate model: ST2000DX001-1NS164
size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 3.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: CC41 scheme: MBR
Partition:
ID-1: / raw-size: 50 GiB size: 46.57 GiB (93.13%) used: 27.68 GiB (59.5%)
fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-2: /home raw-size: 414.91 GiB size: 414.91 GiB (100.00%)
used: 153.38 GiB (37.0%) fs: btrfs dev: /dev/sda3 maj-min: 8:3
ID-3: /var/log raw-size: 50 GiB size: 46.57 GiB (93.13%)
used: 27.68 GiB (59.5%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
ID-4: /var/tmp raw-size: 50 GiB size: 46.57 GiB (93.13%)
used: 27.68 GiB (59.5%) fs: btrfs dev: /dev/sda2 maj-min: 8:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 15.58 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 4 dev: /dev/zram0
ID-2: swap-2 type: partition size: 16.6 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/sda4 maj-min: 8:4
Sensors:
System Temperatures: cpu: 42.0 C mobo: N/A gpu: nvidia temp: 31 C
Fan Speeds (rpm): N/A gpu: nvidia fan: 31%
Info:
Processes: 257 Uptime: 9m wakeups: 0 Memory: total: 16 GiB
available: 15.58 GiB used: 4.22 GiB (27.1%) Init: systemd v: 254
default: graphical tool: systemctl Compilers: gcc: 13.2.1 clang: 16.0.6
Packages: pm: pacman pkgs: 1465 libs: 476 tools: octopi,paru Shell: fish
v: 3.6.1 default: Bash v: 5.2.21 running-in: konsole inxi: 3.3.31
Garuda (2.6.19-2):
System install date:     2023-10-26
Last full system update: 2023-11-27
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-dkms
Windows dual boot:       <superuser required>
Failed units:

It would help to know how exactly it fails.


This old thread may have something about the official client and Lutris geforce_now_lutris_installer_has_been_updated, one comment says

Join the lutris discord server. There is a pinned message with an attachment of the file that you need.

This other old one GeForce NOW finally works - General Discussion - Lutris Forums gives hope but I read elsewhere that GFN stopped working on Linux some time ago.

I have no experience with neither, sorry I can’t help much.

This 5 years old thread on nvidia’s website asks for a native Linux version, …crickets
https://www.nvidia.com/en-us/geforce/forums/gfn-general-chat/20/303146/geforce-now-on-linux/ and a recent comment indicate Valve may be doing something about it.

I see there is also the unofficial gfn-electron but that is basically the same as using a Chromium based browser, pretty sure it has the same limitations on resolution and frame rate.

I hope to be wrong, but it really looks like the answer is wait for a while and use the web version.

4 Likes

Thank you for the reply, I did not find those links and are reading through them.
And you’re right, I’ll try and document the installer failing.
In the meantime: basically I search on Lutris for the native app installer, it downloads the .exe and start installing, then just says it failed and I have to close the window. That’s it. Tried several times.

BTW I have an old, regular 1080p monitor, but it’s 120hz and I’d really like to play it at that refresh rate with 4K downscaled to 1080p, the image should be perceivably better. For pumping RTX on newer titles you really need the Ultimate plan, but using it via browser you throw away at least 50% of the advantage of this expensive plan.

I’m afraid the right answer is your last remark on just waiting with finger crossed.

1 Like


image

I’m sorry I don’t really know where to find the Lutris logs to be more specific… :unamused:

What a helpful error message they give LOL

maybe

To get output of an installation start Lutris through the terminal with lutris -d. When you install a game the terminal will contain information about the installation.

1 Like

Great tip, thanks!
Here it is:

╭─ezahn@EzaRuda in ~ took 54s
╰─λ lutris -d
INFO     2023-11-29 08:36:54,128 [application.do_command_line:436]:Starting Lutris 0.5.14
INFO     2023-11-29 08:36:54,130 [startup.get_drivers:57]:Using NVIDIA drivers 545.29.06 for x86_64
INFO     2023-11-29 08:36:54,130 [startup.get_drivers:61]:GPU: NVIDIA GeForce GTX 970
INFO     2023-11-29 08:36:54,130 [display.display_gpu_info:78]:GPU: 10DE:13C2 19DA:1366 (nvidia drivers)
INFO     2023-11-29 08:36:54,131 [display.display_gpu_info:78]:GPU:   (simple-framebuffer drivers)
DEBUG    2023-11-29 08:36:54,257 [xrandr._get_vidmodes:16]:Retrieving video modes from XrandR
DEBUG    2023-11-29 08:36:54,828 [lutris.get_missing_game_ids:202]:Checking for missing games
DEBUG    2023-11-29 08:36:58,887 [application.show_window:359]:Showing window AddGamesWindow{'parent': <lutriswindow.LutrisWindow object at 0x7fef86eb3e00 (LutrisWindow at 0x55844e1dd990)>}
DEBUG    2023-11-29 08:37:02,662 [http._request:88]:GET https://lutris.net/api/games?search=geforce&with-installers=True
DEBUG    2023-11-29 08:37:04,025 [api.get_game_installers:256]:Fetching installer https://lutris.net/api/installers/geforce-now
DEBUG    2023-11-29 08:37:04,026 [http._request:88]:GET https://lutris.net/api/installers/geforce-now
DEBUG    2023-11-29 08:37:04,400 [application.show_window:359]:Showing window InstallerWindowgeforce-now
DEBUG    2023-11-29 08:37:04,401 [application.on_app_window_destroyed:377]:Removed window AddGamesWindow{'parent': <lutriswindow.LutrisWindow object at 0x7fef86eb3e00 (LutrisWindow at 0x55844e1dd990)>}
DEBUG    2023-11-29 08:37:07,104 [xrandr._get_vidmodes:16]:Retrieving video modes from XrandR
DEBUG    2023-11-29 08:37:09,649 [interpreter.get_runners_to_install:258]:Default wine version is wine-ge-8-24
DEBUG    2023-11-29 08:37:10,709 [downloader.start:67]:⬇ https://download.nvidia.com/gfnpc/GeForceNOW-release.exe
DEBUG    2023-11-29 08:37:12,489 [downloader.on_download_completed:173]:Finished downloading https://download.nvidia.com/gfnpc/GeForceNOW-release.exe
INFO     2023-11-29 08:37:12,710 [file_box.on_download_complete:234]:Download completed
DEBUG    2023-11-29 08:37:12,711 [files_box.on_file_available:108]:installer is available
INFO     2023-11-29 08:37:12,711 [files_box.on_file_available:114]:All files available
INFO     2023-11-29 08:37:12,711 [installerwindow.on_files_available:631]:All files are available, continuing install
DEBUG    2023-11-29 08:37:12,713 [interpreter.create_game_folder:213]:Creating destination path /home/ezahn/Games/geforce-now
DEBUG    2023-11-29 08:37:12,713 [interpreter._iter_commands:349]:Installer command: {'task': {'name': 'create_prefix', 'prefix': '$GAMEDIR/prefix'}}
INFO     2023-11-29 08:37:12,761 [wine.create_prefix:99]:Creating a win64 prefix in /home/ezahn/Games/geforce-now/prefix
DEBUG    2023-11-29 08:37:12,762 [system.execute:74]:Executing /home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/bin/wineboot
DEBUG    2023-11-29 08:37:12,762 [system.execute:80]:WINEARCH=win64 WINEPREFIX=/home/ezahn/Games/geforce-now/prefix WINEDLLOVERRIDES=winemenubuilder= WINE_MONO_CACHE_DIR=/home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/mono WINE_GECKO_CACHE_DIR=/home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/gecko
INFO     2023-11-29 08:37:32,502 [wine.create_prefix:154]:win64 Prefix created in /home/ezahn/Games/geforce-now/prefix
DEBUG    2023-11-29 08:37:32,539 [interpreter._iter_commands:349]:Installer command: {'task': {'executable': 'installer', 'name': 'wineexec', 'prefix': '$GAMEDIR/prefix'}}
lutris-wrapper: /home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/bin/wine
Started initial process 7879 from /home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/bin/wine /home/ezahn/.cache/lutris/installer/geforce-now/installer/GeForceNOW-release.exe
Start monitoring process.
fsync: up and running.
wine: Using setpriority to control niceness in the [-11,11] range
Monitored process exited.
Initial process has exited (return code: 512)
Exit with return code 512
DEBUG    2023-11-29 08:38:06,175 [command.on_stop:195]:Process 7873 has terminated with code 512
DEBUG    2023-11-29 08:38:06,707 [commands._monitor_task:448]:Return code: 512
ERROR    2023-11-29 08:38:06,708 [errors.__init__:18]:Il comando è terminato con il codice 512
ERROR    2023-11-29 08:38:06,708 [exceptions.wrapper:69]:Il comando è terminato con il codice 512
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/lutris/exceptions.py", line 67, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/lutris/installer/commands.py", line 450, in _monitor_task
raise ScriptingError(_("Command exited with code %s") % command.return_code)
lutris.installer.errors.ScriptingError: Il comando è terminato con il codice 512
INFO     2023-11-29 08:38:13,648 [interpreter.revert:425]:Cancelling installation of GeForce NOW
DEBUG    2023-11-29 08:38:13,697 [wine.winekill:173]:Killing all wine processes: ['/home/ezahn/.local/share/lutris/runners/wine/wine-ge-8-24-x86_64/bin/wineserver', '-k']
DEBUG    2023-11-29 08:38:13,697 [wine.winekill:174]:   Wine prefix: /home/ezahn/Games/geforce-now/prefix
DEBUG    2023-11-29 08:38:13,697 [wine.winekill:175]:   Wine arch: win64
DEBUG    2023-11-29 08:38:13,698 [wine.winekill:181]:Waiting for wine processes to terminate
DEBUG    2023-11-29 08:38:13,699 [wine.winekill:197]:Done waiting.
DEBUG    2023-11-29 08:38:13,699 [system.remove_folder:323]:Removing folder /home/ezahn/Games/geforce-now
DEBUG    2023-11-29 08:38:13,826 [system.remove_folder:323]:Removing folder /home/ezahn/.cache/lutris/installer/geforce-now
DEBUG    2023-11-29 08:38:13,838 [application.on_app_window_destroyed:377]:Removed window InstallerWindowgeforce-now

Hi @Ezahn ,while try to trouble shoot the problem , there is a flatpak app for Geforce Now and it works just fine as expected , try it out if you want . its (unofficial of course)

1 Like

Too bad it doesn’t say what the command is.
In a thread about an install failure I just found (for a different software though), a similar error was caused by a typo in the install script.
Python is quite easy on the eyes, maybe you can look into that commands.py around line 450 and find out what command is being run. It likely returns 2, which generally indicates “command line usage error”.

2 Likes

Thanks @Straight I know of this app and I’ll sure try it, but I’m quite sure it’s a wrapper for the webapp, so should be equivalent to running GFN via browser.

And thanks again @meanruse, I’ll try and have a look, even if I think that if the problem was easily solvable by a total noob like me the community would have solved it already. :wink:

I’m really afraid that waiting and using the browser in the meantime is the only “solution” at the moment, unfortunately.

2 Likes

This should be the lines around 450:

@watch_errors(error_result=False)
def _monitor_task(self, command):
if not command.is_running:
logger.debug("Return code: %s", command.return_code)
if command.return_code not in (str(command.accepted_return_code), "0"):
raise ScriptingError(_("Command exited with code %s") % command.return_code)

self._iter_commands()
return False
return True  # keep checking

I hope I got those right with nano! :upside_down_face:

1 Like

Yes those are the lines where the error message comes from.
I’m not familiar at all with this so take it with a grain of salt: I think the problem is in the YAML (or perhaps JSON) file for the installer.

I advise reporting the issue on the Lutris forum and eventually opening an issue at their repository.

edit: silly me, the file was on lutris website LOL but I don’t see anything obviously wrong there.

2 Likes

So: the solution is just waiting and praying Lord Gaben it seems. :pray: :wink:
Thanks again!

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.