Baba Tech Blog

TR EN

How to Enable ntsync on Arch Linux?

It all started with an innocent passion for performance. You know those "micro-stuttering" hiccups while gaming on Linux—they can drive a person crazy. So I said, "Let me try this famous ntsync thing; it handles Windows NT synchronization at the kernel level, FPS will soar."

I immediately dived into the AUR and pulled these two "elite" packages into my system:

  1. wine-tkg-staging-ntsync-bin
  2. proton-xiv-bin

The packages were downloaded and installed. Thinking, "That's it, we're flying now," I restarted the system. But there was a small(!) detail I had forgotten, or rather, skipped.

When I decided to check the logs, I saw the system complaining to me...

The Error: "I Don't Recognize This Module!"#

I took a look at the boot logs (journalctl -b -p err), and the system was shouting:

Nov 28 01:41:10 baba systemd-modules-load[445]: Failed to find module 'ntsync'

It's safe to say I was caught off guard. I had installed the software (Wine/Proton), but it turns out I hadn't prepared the ground beneath it. I checked the kernel version I was using:

λ friday13 [~] → uname -r
6.6.63-1-lts

The problem was as clear as day. I was using the LTS (Long Term Support) kernel, but experimental and new features like ntsync weren't available in version 6.6. In other words, I was trying to put a Ferrari engine into a sedan chassis. This feature comes by default in Kernel 6.14 and later, especially in customized kernels like the Zen Kernel.1

Anyway, we understood the mistake. The solution is simple: Change the kernel!

Step 1: Installing the Zen Kernel#

Don't let changing the kernel on Arch Linux intimidate you; it's actually no different from installing any other package. I immediately opened the terminal and downloaded linux-zen and its headers.

λ friday13 [~] → sudo pacman -S linux-zen linux-zen-headers

Don't Forget the Headers Package ⚡ If you're using Nvidia or have other modules compiled with dkms (VirtualBox, etc.), your graphics card might not work when the system boots if you don't install the linux-zen-headers package. Be careful.

Step 2: Bootloader Configuration (Systemd-boot)#

Installing the package isn't enough; we need to warn the system: "Listen, buddy, you're going to boot with this new kernel now." I use systemd-boot, and here's how I configured the settings.

First, I copied my current configuration (just in case, backups are life):

λ friday13 [~] → sudo cp /boot/loader/entries/arch.conf /boot/loader/entries/arch-zen.conf

Then I opened the new file (arch-zen.conf) and replaced the -lts strings with -zen:

title   Arch Linux Zen
linux   /vmlinuz-linux-zen
initrd  /initramfs-linux-zen.img
options root=PARTUUID=xxxx-xxxx-xxxx-xxxx rw quiet

Step 3: Enabling the Module Permanently#

We installed the kernel and did the configuration, but let's not leave it to chance. We must create a small configuration file so that this module is loaded automatically at every boot. Otherwise, we'd have to deal with modprobe every time.

To do this, we go under /etc/modules-load.d/:

λ friday13 [~] → sudo nano /etc/modules-load.d/ntsync.conf

Just write the name of the module in the file and save it:

ntsync

After this process, we restart the system for the changes to take effect:

λ friday13 [~] → sudo reboot

The Grand Finale: Is ntsync Active?#

The computer booted up, and I immediately ran to the terminal. First, I confirmed the kernel version: 6.17.9-zen1-1-zen. Great.

But what about the ntsync module that those Wine and Proton packages I installed needed?

λ friday13 [~] → modinfo ntsync

The output was exactly what I wanted:

filename:       /lib/modules/6.17.9-zen1-1-zen/kernel/drivers/misc/ntsync.ko.zst
license:        GPL
description:    Kernel driver for NT synchronization primitives
...

The module was now loaded, and the error messages were a thing of the past. This meant those wine-tkg and proton-xiv packages I installed could finally do their job.

In short, if you, like me, install special Wine versions to "increase performance in games" and then pull your hair out wondering "Why isn't this working?", take a look at your kernel version. Sometimes the solution lies simply in switching to a more "Zen" kernel. 😎


  1. LTS kernels contain older technologies for stability. For gaming and new hardware features, the Mainline or Zen kernel is usually preferred. ↩

Webmentions

Likes

  • Loading likes...

Comments & Replies

  • Loading comments...

Comments
Reply via Bluesky

With an account on the Fediverse or Mastodon, you can respond to this post.

Copy and paste this URL into the search field of your favourite Fediverse app or the web interface of your Mastodon server.

Loading comments...