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

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

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

  • Caching, Virtual Memory Manager and CPUFreq Governor improvements.
  • Full multi-core block layer runqueue requests for high I/O throughput.
  • BBRv2 TCP congestion control + FQ-PIE packet scheduling and AQM algorithm.
  • ORC Unwinder for kernel stack traces (debuginfo) implementation.
  • High responsiveness multitasking Task Type scheduler (SCHED_NORMAL) build available [5.15-tt].
  • Real-time Linux kernel (PREEMPT_RT) build available [5.15-rt] [5.10-rt].
  • Third-party patchset available: patches
    • le9’s file mappings under memory pressure protection.
    • Linux Random Number Generator (LRNG) framework.
    • TCP performance optimizations backport from linux/net-next [5.16] [5.15].
    • AMD’s P-state driver for Zen2 and Zen3 processors [5.16] [5.15].
    • Futex waitv and legacy WAIT_MULTIPLE implementation for Wine / Proton Fsync support.
    • WineSync driver for fast kernel-backed Wine [5.16] [5.15] [as module: winesync].
    • Google’s Multigenerational LRU framework [5.16] [5.15].
    • Google’s BBRv2 TCP congestion control.
    • Paragon’s Software NTFS3 driver [as module: ntfs3].
    • PCIe ACS Override for bypassing IOMMU groups support.
    • Graysky’s additional CPU optimizations for GCC and Clang.
    • Clear Linux patchset [partial].
    • Android Ashmem and Binder IPC driver as module for Anbox.
    • Updated ZSTD library for bug fixes and r/w performance compression improvements on Btrfs, F2FS, SquashFS, pstore, initramfs and vmlinuz.
  • Generic packages for compatibility with most Debian & Ubuntu based distributions. Builts on the latest LLVM 12.0.1, GCC 11.2 and Binutils 2.37.
  • GPLv2 license. Can be built for any distribution or purpose.

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

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

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

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

apt install linux-xanmod

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

apt install linux-xanmod-edge

FQ-PIE

Для включения планировщика пакетов FQ-PIE, необходимо выполнить команду:

echo 'net.core.default_qdisc = fq_pie' | tee /etc/sysctl.d/90-override.conf

Проверка:

tc qdisc show

Источники: