Установка ядра XanMod в Debian

Приветствую! В этой небольшой заметке приведу команду, при помощи которой можно добавить репозиторий ядра #XanMod в #Debian.

Что такое ядро XanMod?

Ядро #XanMod имеет ряд патчей и оптимизаций. Список изменений по сравнению с ванильным ядром, я взял с официального сайта:

  • Kernel built w/ LLVM’s ThinLTO, Software Pipelining, Polyhedral and specific x86_64 optimizations.
  • Core and Process Scheduling, Load Balancing, Caching, Virtual Memory Manager and CPUFreq Governor optimized for heavy workloads.
  • Block layer runqueue requests for high IOPS throughput.
  • ORC Unwinder for kernel stack traces (debuginfo) implementation.
  • Google’s Multigenerational LRU framework [default].
  • Real-time Linux kernel (PREEMPT_RT) build available [6.18-rt].
  • Process schedulers class sched_ext (SCX) support.
  • Third-party patchset available: patches
    • AMD’s 3D V-Cache optimizer driver [as module: amd_3d_vcache].
    • Cloudflare’s TCP collapse processing for high throughput and low latency info.
    • Google’s BBRv3 TCP congestion control [built-in: tcp_bbr] [default].
    • Netfilter nf_tables RFC3489 full-cone NAT support.
    • Netfilter FLOWOFFLOAD target to speed up processing of packets.
    • NT synchronization primitives emulation driver [as module: ntsync].
    • Valve’s Steam Deck EC sensors / MFD core and LEDs driver support
    • [as module: steamdeck, steamdeck-hwmon, leds-steamdeck].
    • PCIe ACS Override for bypassing IOMMU groups support.
    • Graysky’s additional GCC and Clang CPU options.
    • Clear Linux patchset [partial].
    • Android Binder IPC driver for Waydroid [as module: binder_linux].
  • Generic packages for compatibility with any Debian or Ubuntu based distribution.
  • GPLv2 license. Can be built for any distribution or purpose.

Стоит заметить, что ядро #XanMod не единственное, которое интегрирует в себя оптимизации. Есть ещё ядро Liquorix, которое занимается практически тем же самым. Но, посмотрев обзор и тесты на Phoronix’е, я сделал выбор в пользу #XanMod.

Установка XanMod

Однострочная команда по добавлению ядра #XanMod в репозиторий #Debian’а приведена ниже. Она дробится на следующие под-команды:

  1. Добавление файла xanmod-kernel.list в директорию /etc/apt/sources.list.d.
  2. Скачивание файла подписи archive.key и размещение его в директорию /etc/apt/trusted.gpg.d с названием xanmod-kernel.gpg.
  3. Обновление информации из репозитория при помощи команды apt update.
1
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/xanmod-kernel.gpg] http://deb.xanmod.org releases main' | tee /etc/apt/sources.list.d/xanmod-kernel.list && curl -fsSL 'https://dl.xanmod.org/archive.key' | gpg --dearmor | tee /etc/apt/trusted.gpg.d/xanmod-kernel.gpg > /dev/null && apt update

После выполнения вышеприведённой команды, установка ядра #XanMod происходит таким образом:

1
apt install linux-xanmod-[ABI]

Где:

  • [ABI] - версия архитектуры. Список версий архитектур можно посмотреть ниже.

Примеры

Установить ядро #XanMod с версией архитектуры x64v1:

1
apt install linux-xanmod-x64v1

Установить ядро #XanMod с версией архитектуры x64v2:

1
apt install linux-xanmod-x64v2

Установить ядро #XanMod с версией архитектуры x64v3:

1
apt install linux-xanmod-x64v3

Установить ядро #XanMod с версией архитектуры x64v4:

1
apt install linux-xanmod-x64v4

Для установки Mainline-версии ядра команда будет такой:

1
apt install linux-xanmod-edge-x64v3

Версии архитектур XanMod

Версия архитектуры зависит от ядра процессора и поддерживаемых им инструкций. Версию архитектуры можно узнать из списка ниже.

x86-64 (LEGACY)

Суффикс для установки ядра: x64v1.

Поддерживаемые архитектуры:

  • AMD K8-family
  • AMD K10-family
  • AMD Family 10h (Barcelona)
  • Intel Pentium 4 / Xeon (Nocona)
  • Intel Core 2 (all variants)
  • All x86-64 CPUs

x86-64-v2

Суффикс для установки ядра: x64v2.

Поддерживаемые архитектуры:

  • AMD Family 14h (Bobcat)
  • AMD Family 16h (Jaguar)
  • AMD Family 15h (Bulldozer)
  • AMD Family 15h (Piledriver)
  • AMD Family 15h (Steamroller)
  • Intel 1st Gen Core (Nehalem)
  • Intel 1.5 Gen Core (Westmere)
  • Intel 2nd Gen Core (Sandybridge)
  • Intel 3rd Gen Core (Ivybridge)
  • Intel low-power Silvermont
  • Intel Goldmont (Apollo Lake)
  • Intel Goldmont (Denverton)
  • Intel Goldmont Plus (Gemini Lake)

x86-64-v3

Суффикс для установки ядра: x64v3.

Поддерживаемые архитектуры:

  • AMD Family 15h (Excavator)
  • AMD Family 17h (Zen)
  • AMD Family 17h (Zen+)
  • AMD Family 17h (Zen 2)
  • AMD Family 19h (Zen 3)
  • Intel 4th Gen Core (Haswell)
  • Intel 5th Gen Core (Broadwell)
  • Intel 6th Gen Core (Skylake)
  • Intel 7th Gen Core (Kaby Lake)
  • Intel 8/9th Gen Core (Coffee Lake)
  • Intel 10th Gen Core (Comet Lake)
  • Intel 12th Gen (Alder Lake)
  • Intel 13th Gen (Raptor Lake)
  • Intel 14th Gen (Raptor Lake Refresh)
  • Intel 15th Gen (Lunar / Arrow Lake)

x86-64-v4 (AVX-512)

Суффикс для установки ядра: x64v4.

Поддерживаемые архитектуры:

  • AMD Family 19h (Zen 4 / Zen 4c)
  • AMD Family 1Ah (Zen 5 / Zen 5c)
  • Intel 6th Gen Core (Skylake X)
  • Intel 8th Gen Core i3 (Cannon Lake)
  • Intel Xeon / 10th Gen Core (Ice Lake)
  • Intel Xeon (Cascade Lake)
  • Intel Xeon (Cooper Lake)
  • Intel 3rd Gen 10nm++ (Tiger Lake)
  • Intel 4th Gen 10nm++ (Sapphire Rapids)
  • Intel 5th Gen 10nm++ (Emerald Rapids)
  • Intel 11th Gen (Rocket Lake)

Источники:

2023-10-17

  • Инструкция переделана под новые стандартны разделения архитектур по версиям (x64v1/x64v2/x64v3/x64v4).
  • Добавлен список сопоставления версий архитектур ядра XanMod с процессорами.
  • Удалён раздел FQ-PIE.