
Оптимизация ядра Linux автоматическим скриптом от arvin-foroutan
Оптимизация ядра Linux под конкретное оборудование может дать неплохой прирост производительности компьютера.
Самостоятельно сконфигурировать ядро системы не так просто, это может сделать только достаточно продвинутый пользователь.
Если есть желание выжать все соки из компьютера, но для этого нет достаточной подготовки/знаний, можно попробовать воспользоваться готовым скриптом для конфигурации систем на ядре Linux, доступный на github-странице пользователя arvin-foroutan:

Скрипт оптимизации от arvin-foroutan по умолчанию использует последнее стабильное ядро Линукс (mainline kernel) задействуя такие опции, как:
- Low-Latency Preemptive Kernel;
- 1000 Hz timer, idle tickless;
- сборка с gcc и оптимизацией ‘Generic x86/64’.
По состоянию на середину декабря 2023 года при сборке по умолчанию используется ядро версии 6.6.4. Чтобы избежать появления возможных проблем с драйверами, можно использовать LTS-ядро, максимально совместимое с уже установленным и проверенным.
Эксперименты лучше производить в системе без дискретных видеокарт, так как при установке драйверов на GPU могут возникнуть проблемы.
Для обеспечения возможности восстановления компьютера при неудачной сборке ядра обязательно нужно иметь рабочие kernels, на которых при необходимости можно будет загрузиться.
Как создать и установить оптимизированное Linux-ядро?
Перед сборкой ядра нужно установить несколько служебных пакетов:
sudo apt update && sudo apt -y upgrade && sudo apt -y dist-upgrade && sudo apt -y autoremove && sudo apt-get clean
sudo apt install git build-essential kernel-wedge fakeroot flex bison binutils-dev libssl-dev libelf-dev libslang2-dev libpci-dev libiberty-dev libcap-dev libudev-dev libdw-dev libunwind-dev libncurses-dev libzstd-dev libnuma-dev libbabeltrace-dev libpfm4-dev lz4 zstd wireless-tools default-jre default-jdk linux-cloud-tools-common
sudo apt install linux-tools-$(uname -r)
Затем нужно скопировать скрипт конфигурации ядра Linux:
git clone https://github.com/arvin-foroutan/build-ubuntu-kernel.git
Перейти в каталог build-ubuntu-kernel (здесь при желании можно изучитьсодержимое скрипта build_kernel.sh)
cd build-ubuntu-kernel
И запустить сборку своего оптимизированного ядра
./build_kernel.sh
Во время работы скрипта пользователю предлагается выбор некоторых опций модернизации ядра, в том числе имеется возможность выбора пакета оптимизации под команды своего процессора.
Для компьютера с видеокартой AMD нужно добавить ключ AMDGPU_BUILTIN=yes.
Если на компьютере будет использоваться виртуальная машина, нужно добавить ключ VBOX_SUPPORT=yes.
Таким образом, для домашнего компьютера с видеокартой AMD и операционной системой Linux с Virtual Box, команда сборки ядра будет выглядеть так:
AMDGPU_BUILTIN=yes VBOX_SUPPORT=yes ./build_kernel.sh
Так как драйвера AMD на Linux иногда ставятся только “с бубнами”, для компьютера с видеокартой AMD Radeon RX5500XT и xubuntu 22.04 можно использовать ядро 5.15 LTS. Для него команда установки выглядит так:
KERNEL_SUB_VER=0515138 AMDGPU_BUILTIN=yes VBOX_SUPPORT=yes ./build_kernel.sh
Сборка ядра занимает достаточно длительное время (зависит от мощности процессора).
При выполнении скрипта несколько раз нужно будет сделать выбор, например, указать какой набор команд оптимизации нужно использовать (уточнить соответствие целевому процессору):

Если нет понимания, какой выбор нужно сделать, можно просто нажать ввод, будут применены значения по умолчанию.
Оптимизированное, собранное на компьютере пользовтеля ядро Linux дает прирост производительности, который будет полезен в том числе, при майнинге. Это достигается за счет того, что система работает на компактном ядре, собранном в соответствии с командами, которые поддерживает процессор, установленный на компьютере (в данном случае Intel-Native), сборка kernel-модулей производилась непосредственно на нем, что уменьшает количество ненужного программного кода.
Решение проблем при установке самостоятельно оптимизированного ядра
Чтобы узнать текущую версию ядра системы, используют команду
uname -r
Посмотреть список ядер, установленных на компьютере, можно командой
dpkg --list | grep linux-image | grep ^ii
При проблемах с новым ядром нужно загрузиться на старом и удалить проблемное, например, так:
sudo apt --fix-broken install
sudo apt remove --purge linux-image-unsigned-6.6.2-060602+customidle-generic
Иногда требуется удаление проблемного ядра вручную. В ubuntu-подобных системах модули ядра хранятся в каталоге /usr/lib/modules/версия_kernel.
Если не получается самостоятельно скомпилировать и установить ядро Linux, можно улучшить производительность компьютера, воспользовавшись ядром xanmod (оно работает более стабильно, чем liquorix kernel), для этого:
1. Регистрируется PGP ключ:
wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/xanmod-archive-keyring.gpg
2. Добавляется репозиторий:
echo 'deb [signed-by=/usr/share/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-release.list
3. Обновляется система и устанавливается ядро xanmod:
sudo apt update && sudo apt install linux-xanmod-x64v3
4. Перезагружаем компьютер
sudo reboot.
Для компьютеров со старыми процессорами нужно использовать linux-xanmod-x64v1 или v2, для самых современных — версию v4:

Например, для компьютера с процессором Intel I5-3570K 3,4 GHz (Intel 3rd Gen Core, Ivybridge) при инсталляции xanmod kernel нужно использовать команду:
sudo apt update && sudo apt install linux-xanmod-x64v2


