Использование ArchLinux в домашнем обиходе весьма специфично, ибо не каждый готов тратить время на поиск информации для настройки и оптимизации системы, которая долгое время развивалась лишь в серверном направлении. Благо, всё давно изменилось и исходя из опыта автора, мы поэтапно оптимизируем ArchLinux для максимального быстродействия, а также разберём множество нюансов.
Внимание!
Гайд написан линуксоидом для линуксойдов и является помощником для продвинутых пользователей ArchLinux. Гайд не претендует на инструкцию для новичков или попытку что-то доказать. Возможно, пригодится для Steam Deck.
Прежде чем начать
Убедимся, что конфигурация пакетного менеджера Pacman настроена для получения доступа к 32-битным зависимостям.
Откроем консоль и введём команду:
Убедитесь, что перед выделенными строчками отсутствует решётка и сохраните изменения (CTRL+X) Y.Теперь необходимо удостовериться в актуальности ключей ArchLinux во избежание проблем с установкой ПО.
sudo pacman-key —populate archlinux # Получить ключи
sudo pacman-key —refresh-keys # Проверить новые и установленные
sudo pacman -Sy # Обновить ключи для всей системы
Операция может занять продолжительное время.
После получения доступа к 32-битным зависимостям и обновления ключей безопасности, необходимо ускорить скорость скачивания пакетов с зеркал ArchLinux, а также принять изменения.
Утилита Reflector отсортирует доступные зеркала по скорости.
Если вы из Европейской части России, то всегда лучше использовать зеркала Германии, так как их больше всего и они имеют оптимальную свежесть/скорость.
sudo reflector —verbose —country ‘Germany’ -l 25 —sort rate —save /etc/pacman.d/mirrorlist
sudo nano /etc/pacman.d/mirrorlist # Рекомендуем прописывать зеркала Яндекса
Если вы проживаете не на территории Европейской части РФ или в иной стране, то просто измените Germany на Russia или ваше государство. Можно также вручную отредактировать зеркала из списка на сайте ArchLinux (https://archlinux.org/mirrorlist/).
Выполним обновление и приминения всех изменений:
sudo pacman -S base-devel git gvfs ccache grub-customizer # Установить зависимости для будущей оптимизации
Поздравляю, мы успешно завершили предварительный этап для будущей настройки системы. Теперь не должно быть проблем с ограничением скачивания или ошибок с доступностью зависимостей.
Установка драйверов для видеокарты
В установке драйверов для Linux-систем нет ничего сложного, ибо главное — учитывать, что от свежести ядра и версии драйвера, будет зависеть получите ли вы чёрный экран смерти или нет (Шутка). В гайде мы применим драйвер версии DKMS, который сам пропишет нужные параметры и не позволит убить систему.
NVIDIA Выполним перезагрузку PC после установки драйвера и сгенерируем предварительную конфигурацию Xorg. В панели настроек выставляем наши значения как на скриншотах. Повторим все изменения без прав sudo (это важно), но без сохранения в Save to X. nvidia-settings # Открыть панель Nvidia Поздравляю, вы успешно настроили драйвера Nvidia для ArchLinux, но из-за особенностей Nvidia под Linux можно применить и дополнительные твики для повышения производительности. Дадим понять системе, что у вас Nvidia и файловая система BTRFS (Пропускаем, если ничего этого нет). sudo nano /etc/mkinitcpio.conf # Редактируем конфиг модулей. Nouveau (Только для старых видеокарт) Для видеокарт ниже (GeForce 600) рекомендуется использовать свободную альтернативу драйвера NVIDIA — Nouveau.Nouveau это открытый драйвер, который имеет официальную поддержку со стороны сообщества для старых видеокарт и что отлично справляется с 2D ускорением. AMD INTEL Как вы могли заметить, самое сложное это установка проприетарного драйвера Nvidia, но другие карты таких танцев не требуют. Базовое ускорение системы Переходя к базовой оптимизации системы мне стоит напомнить, что чистый ArchLinux это фундамент, и требуется уйма надстроек для нормальной работы системы. Установить компоненты, которые будут отвечать за электропитание, чистку, оптимизацию и т. п. Прежде чем приступать к сборке компонентов системы, мы должны изменить флаги компиляции, которые являются указателями для компилятора при сборке программ. sudo nano /etc/makepkg.conf # Редактируем настройки встроенного компилятора gcc. Данные флаги компилятора выжимают максимум производительности при компиляции, но могут вызывать ошибки сборки в очень редких приложениях. Если такое случится, то отключите ‘lto’ в строке options, добавив символ восклицательного знака («!lto»). Как выбрать нужное ПО Ananicy — это демон для распределения приоритета задач, его установка сильно повышает отклик системы. Haveged — это демон, что следит на энтропией системы. Необходим для ускорения запуска системы при высоких показателях systemd-analyze blame (Больше 1 секунды). Включаем TRIM — очень полезно для SSD. Rng-tools — демон, что также следит на энтропией системы, но, в отличие от haveged, через аппаратный таймер. Необходим для ускорения запуска системы при высоких показателях systemd-analyze blame (Больше 1 секунды). (Не использовать вместе с Ananicy). Dbus-broker — это реализация шины сообщений в соответствии со спецификацией D-Bus. Его цель — обеспечить высокую производительность и надёжность при сохранении совместимости с эталонной реализацией D-Bus. Быстрее будет общение с видеокартой через PCI-E. Выбор звукового сервера PulseAudio — это один из старейших аудиосерверов в Linux, который управляет каналами вывода звука в системе. Выполним установка зависимостей на все случаи жизни, а также удобную графическую панель управления pavucontrol. Внимание! PipeWire — это новая альтернатива PulseAudio, которая призвана избавить от проблем и уменьшить потребление ресурсов. Пакет alsa-utils также содержит консольный Микшер (настройка громкости), который вызывается командой alsamixer. Alsa — это тот самый звук, который идёт напрямую с ядра и является самым быстром, так как не вынужден проходить множество программных прослоек. Разница небольшая и если у вас нет Bluetooth-наушников или потребности слушать музыку и болтать в микрофон, то Alsa+alsamixer это идеальный выбор. Отключение NetworkManager-wait-online Для настройки интернет-подключения, скорее всего, вы будете использовать NetworkManager, т. к. он является швейцарским ножом и поставляется по умолчанию во многих Linux-дистрибутивах. Однако если вы пропишете команду systemd-analyze blame, то узнаете, что он задерживает загрузку системы примерно на ~4 секунды. Чтобы это исправить выполните: Поздравляю, базовые оптимизации завершены и теперь можно переходить к настоящему веселью. Экстра оптимизации системы По умолчанию процессор динамически меняет свою частоту, что в принципе правильно и даёт баланс между энергосбережением и производительностью, но если вы всё-таки хотите выжать все соки, то необходимо закрепить режим максимальной производительности. Перевод процессора в режим производительности Закрепим режим максимальной производительности: sudo pacman -S cpupower # Установит менеджер управления частотой. sudo nano /etc/default/cpupower # Редактируем строчку governor=’performance’. sudo systemctl enable cpupower # Включить как постоянную службу. GUI для изменения частоты процессора Увеличивает время загрузки, лучше не использовать. Auto-Cpufreq (Лучший вариант) Установка: Отключение Spectre and Meltdown По умолчанию в ядре Linux включено довольно много исправлений безопасности, которые существенно снижают производительность процессора. Вы можете их отключить через редактирование параметров загрузчика. GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash noibrs tsx_async_abort=off rootfstype=btrfs selinux=0 lpj=3499912 raid=noautodetect elevator=noop mitigations=off preempt=none» Подробнее о каждом из параметров написано здесь. sudo grub-mkconfig -o /boot/grub/grub.cfg # Обновляем загрузчик, можно так-же сделать через grub-customizer, добавить и прожать, затем сохранить на 2 и 1 вкладке. Разъяснение параметров Grub lpj=— это уникальный параметр для каждой системы. Самоопределяется во время загрузки, что довольно трудоёмко, поэтому лучше задать вручную. Определить ваше значение lpj можно через следующую команду: sudo dmesg | grep «lpj=»raid=noautodetect — отключает проверку на RAID во время загрузки. Если вы его используете RAID массив, то не прописывайте параметр.rootfstype=btrfs — Здесь указываем название ФС в которой у вас форматирован корень.elevator=noop — указывает для всех дисков планировщик ввода NONE. Не использовать, если у вас жёсткий диск. Файловые системы Существует десятки файловых систем, но BTRFS — Т1000 из мира файловых систем, так как является наследником идей EXT2-3 и прекрасно подходит для SSD носителей, ибо автоматически определять SSD, что позволяет не волноваться за сохранность носителя. Скорости чтение сопоставимы, а иногда (Особенно при высоких нагрузках) превышают показатели EXT4. Идеальный выбор для игровой системы на базе Linux. Оптимальные Флаги монтирования Изменяем realtime на noatime или lazytime — эти параметра отвечают за запоминание времени доступа к файлу и прочий бред, что только портит отклик.Параметр noatime выключает полностью данную функцию, что может привести к некоторым багам в приложениях зависимых от времени (например, git), но автор никогда не встречал данной проблемы.Параметр lazytime успешно будет выполнять все функции, но выполнять их запись в оперативной памяти, что позволит избежать замедления без потери функциональности, но говорят lazytime чудит. Автор советует noatime. Оптимальные параметры для SSD носителей. Описание каждого из них вы можете найти здесь. Внимание! При использовании Btrfs для корневого раздела установите пакет btrfs-progs. Кастомное ядро Существует большое количество кастомных ядер, которые в той или иной мере созданы для разных задач, но для домашнего десктопа подходят только некоторые из них. Zen Отличный выбор для неискушённого пользователя, который не ставит задачи в покорении максимальной планки FPS. Доступен в официальных репозиториях (не нужно компилировать). sudo pacman -S linux-zen linux-zen-headers # Не забудь обновить GRUB. Liquorix Идеальное ядро для игроманов, так как значительно улучшает качество отклика в повседневных задачах и играх. Ориентирован для процессоров Intel. Такая установка рекомендуется, если вы не хотите компилировать ядро, но тогда производительность будет хуже, чем у аналогичного скомпилированного ядра. Xanmod Альтернатива Liquorix, ибо тоже нацелен на оптимизацию под игрушки и повышение плавности работы системы. Не рекомендуется обладателям процессоров Intel и наоборот же рекомендуется для AMD. # Если у вас процессор от AMD, то вместо 98 пишите 99 export _microarchitecture=98 use_numa=n use_tracers=n _compiler=clang makepkg -sric # Сборка и установка Если возникает сбой с неизвестным ключом, то выполните следующую операцию: gpg —keyserver keyserver.ubuntu.com —recv-keys КЛЮЧ. Linux-tkg Является альтернативой всем трём ядрам выше, предоставляет возможность собрать ядро с набором множества патчей для улучшения производительности в игрушках (Futex2, Zenify). Предоставляет выбор при сборке ядра с разными планировщиками. Грубо говоря, то это сборная солянка из всех остальных ядер и кучи патчей. Редактирование и настройка параметров через nano customization.cfg или makemenu, что не должно вызвать проблем у продвинутого пользователя. Запуск Windows-игр и программ в Linux Переходя к запуску Windows-игр на Linux-системах, стоит иметь в виду, что никаких эмуляторов Windows на Linux не существует и весь запуск осуществляется с помощью сторонней реализации Windows API — Wine/Proton, а также средств ретрансляции команд DirectX в доступные графические API на Linux (Vulkan, OpenGL) с помощью DXVK или иного ретранслятора кода. Установка бинарного Wine-staging Бинарные версии ПО всегда доступны в репозиториях и очень удобны, но они не могут обеспечить достойный уровень производительности. Советую поставить Wine-staging, а уже поверх собрать Wine-tkg. Установка нативного Wine-tkg (Лучшая версия) Нативная компиляции Wine-tkg позволяет не только получить громадную прибавку производительности, но и задействовать многие фишки: FSR, Esync и т. п Внимание! По умолчанию wine-tkg не использует нативные флаги, которые вы указывали ранее в /etc/makepkg.conf. Их нужно указать в вручную в wine-tkg-profiles/advanced-customization.cfg. _GCC_FLAGS=»-O2 -ftree-vectorize -march=native» _CROSS_FLAGS=»-O2 -ftree-vectorize -march=native» Всё, теперь большинство ПО будет запускаться через обычный двойной клик, но такое использование — это куча мороки, используйте Lutris. Установка Lutris, Gamemode и FPS Monitor уся конфигурация и настройка осуществляется через интерфейс Lutris. Заключение Возможно, могло показаться, что это очень сложно и муторно, но на самом деле это позволяет выжимать намного больше FPS по сравнению с любой версией Windows и не занимает многого времени. К сожалению, нет удалось затронуть преимущества сборки компилятором Clang или оптимизацию DE с использованием Stacer и Bleachbit, ибо материал и так разросся, но следуя поэтапно данным рекомендациям, вы уже получите весьма быструю и систему на базе ArchLinux. Используйте Linux, познавайте веселье и оставайтесь гладкими! Если вам понравился материал, то пожалуйста — посетите блог автора ТЫК. Видеоверсия
sudo mkinitcpio -P # Обновляем образы ядра
sudo nvidia-settings # Открыть панель Nvidia
cd nvidia-tweaks # Перейти в папку твиком
makepkg -sric # Собрать и установить твик
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm crc32c libcrc32c zlib_deflate btrfs) # Если используете BTRFS для корневого раздела
sudo pacman -S amd-ucode iucode-tool # Установить микрокод AMD
sudo mkinitcpio -P # Пересобираем наши образы ядра
sudo grub-mkconfig -o /boot/grub/grub.cfg # Обновить загрузчик или можно через grub-customizer
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
-fstack-clash-protection -fcf-protection»
CXXFLAGS=»$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS»
RUSTFLAGS=»-C opt-level=3″
MAKEFLAGS=»-j$(nproc) -l$(nproc)»
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
cd ananicy # Переход в ananicy.
makepkg -sric # Сборка и установка.
sudo systemctl enable —now ananicy # Включаем службу.
sudo systemctl enable haveged # Включает и запускает службу.
sudo fstrim -v / # Ручной метод
sudo fstrim -va / # Если первый метод не тримит весь диск
sudo systemctl enable —now rngd # Включает и запускает службу
sudo systemctl enable —now dbus-broker.service # Включает и запускает службу.
Пакет realtime-privileges — лучше не устанавливать, так как он может вызвать небольшие задержки из-за усиленного воздействия на CPU.
sudo cpupower frequency-set -g performance # Выставляет максимальную производительность до перезагрузки системы
sudo cpupower frequency-set -g performance # Выставляет максимальную производительность до перезагрузки системы
cd cpupower-gui # Переходим в директорию
makepkg -sric # Собираем и устанавливаем
cd auto-cpufreq-git # Переходим в директорию
makepkg -sric # Сборка и установка
systemctl enable auto-cpufreq # Включает службу как постоянную
systemctl start auto-cpufreq # Запускает службу
sudo nano /etc/grub/default # Редактируем настройки вручную или через grub-customizer как на скриншоте.
rw,relatime,ssd,ssd_spread,space_cache=v2,max_inline=256,commit=600,nodatacow
sudo pacman-key —lsign-key 9AE4078033F8024D # Добавляем GPG ключи
sudo nano /etc/pacman.conf # Добавляем сюда строчку ниже.
sudo pacman -S linux-lqx linux-lqx-headers # Не забудь обновить GRUB
cd linux-xanmod # Переход в linux-xanmod
cd linux-tkg
makepkg -sric # Установка и сборка linux-tkg
cd tools # Перейти в папку tools
sudo pacman -S git nano lutris # Установить git и редактор nano c мопощником
git clone https://github.com/Frogging-Family/wine-tkg-git.git # Стянуть Wine
cd wine-tkg-git/wine-tkg-git # Перейти в папку Wine
nano customization.cfg # отредактировать параметры
_community_patches=«amd_fsr_fshack.mypatch»
_protonify=«true»
_msvcrt_nativebuiltin=«true»
_proton_fs_hack=«true»
_proton_rawinput=«true»
makepkg -sric # начать сборку.
sudo pacman -S gamemode lib32-gamemode # Утилита для максимальной выжимки из системы во время игры
git clone https://aur.archlinux.org/mangohud.git # Скачивание исходников.
cd mangohud # Переход в mangohud.
makepkg -sric # Сборка и установка.
git clone https://aur.archlinux.org/goverlay.git # Скачивание исходников.
cd goverlay # Переход в goverlay
makepkg -sric # Сборка и установка.
Читайте также


