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:
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.
- Arch Linux NVIDIA Graphics Card Installation
- Arch Linux Linux Firmware NVIDIA Error Solution
- Linux and SteamOS Graphics Driver Installation and Update Guide
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. 😎
-
LTS kernels contain older technologies for stability. For gaming and new hardware features, the Mainline or Zen kernel is usually preferred. ↩
Comments