This is an automated archive made by the Lemmit Bot.
The original was posted on /r/linux_gaming by /u/28874559260134F on 2025-07-12 01:18:33+00:00.
GE-Proton10-9 was released, enabling us to eventually use NTSYNC in games.
By this, we have the basis to use what's already present in our kernel since ~6.14: https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/GE-Proton10-9
The author says:
Enable with PROTON_USE_NTSYNC=1
NOTES:
- Your kernel must be patched with ntsync patches. If your system does not have /dev/ntsync then your kernel does not have the patches required to use ntsync.
- Some applications, mostly 32 bit, may also need PROTON_USE_WOW64=1 when using ntsync
To get up an running though, we need to check if a) your kernel supports NTSYNC, b) if the module is present plus c) if it's loaded at boot (or at all).
a) Does my kernel support it?
In short, if you are on kernel 6.14 and later, chances are good. (Source: https://www.phoronix.com/news/Linux-6.14-Char-Misc-NTSYNC)
To check, you could nano this file: nano /boot/config-"$(uname -r)"
And check for the presence of this line: CONFIG_NTSYNC=m
If you don't even find the "ntsync" phrase, you are out of luck with the current kernel of yours. You can install a later one with tools like this: https://github.com/bkw777/mainline
NOTE: Be aware, installing other kernels kicks you out of the current update cycle of your distro in regard to, well, kernel patches. You then have to take care of kernel updates yourself, always, from now on, unless you return to what the distro issues as default or "HWE" kernel.
b) With kernel support being ensured, we can check for the presence of the module files:
find /lib/modules/$(uname -r) -name ntsync.ko
should yield some output like this /lib/modules/6.15.6/kernel/drivers/misc/ntsync.ko
(if the numbers are different, it doesn't matter. If there's no output at all, there's no module file around though, which might lead you back to point a)
For more info on the module files (if present), you can check with modinfo ntsync
Side note: Props to Elizabeth Figura, she's the author of the NTSYNC module! (as you can see when runing the modinfo cmd) :-)
c) Checking if the module is already loaded (most likely not) or if it can be loaded
First things first, check for it being loaded via checking the presence of this directory: ll /dev/ntsync
(if the output throws an error, it's not present for now, but might be later on)
Case 1: If you already see the directory being present, you are done and can follow up with the instructions from the GE-Proton author which I quoted at the top.
Case 2: If you don't see the directory yet but have managed to succeed in the points a and b from before, just read on.
For manually loading the module, you can simply issue sudo modprobe ntsync
Then check with ll /dev/ntsync again
and also see if lsmod | grep ntsync
now finds the running "ntsync" element.
If you want to test your games now, you can do so, but mind the above instructions (at the top of this post) on how to tell the runner that you want to use NTSYNC.
To unload the module (and, in turn remove the /dev/ntsync dir), use sudo rmmod ntsync
With these commands, you can already test the impact NTSYNC will have for the game you have in mind. Remember though, you are currently loading the module manually, so after a reboot, it will be gone. To auto load it, please read on.
To see how to get the games to use NTSYNC and check their logs if they really do, read on in my comment here
Bonus: Making sure to automatically load/enable the NTSYNC module at boot
We currently only used a manually activated module. In order to have it up and running at every boot, we have to tell the system to do so.
The folder in question is /etc/modules-load.d
where we have to create a file which tells the system which modules to load at boot. We should pick a proper name to later being able to determine what the file does and why it's needed. After all, you might forget about it or have other users around.
So we create a properly labelled file via sudo nano /etc/modules-load.d/ntsync.conf
With these contents (one line, no extra characters)
ntsync
Once that's done, you should reboot and see if /dev/ntsync
is already around. If it is, the module got loaded properly. You can use ll /dev/ntsync
for that.
Removal:
If you want to remove the auto-loading method again for whatever reason, you can do so via deleting the one file we've created: sudo rm /etc/modules-load.d/ntsync.conf
After a reboot, everything is back to default and no NTSYNC module will get loaded.
Notes:
At some point, distros might incorporate their own ways of auto loading the module. The worst thing to happen might be that the system tries to load the same module twice, which won't work. The first instance will likely win out.
Anyhow, I would recommend to take note of this change you've made to your system. Just to be able to remove the one file we've created and let the distro's default take over, if they ever implement the auto loading of NTSYNC.
But until then, "our" method is a proper one to have around and should yield you the vital NTSYNC module presence.
Edits:
- Fixed proper syntax of "CONFIG_NTSYNC=m"