Перейти к содержимому

Настройки CachyOS

Помимо наших оптимизированных ядер и репозиториев, мы также предоставляем настройки, которые дополнительно улучшают работу рабочего стола, а также некоторые вспомогательные скрипты для улучшения качества жизни (QoL). Все эти конфигурации и скрипты находятся в пакете cachyos-settings.

Ознакомьтесь с репозиторием CachyOS Settings, чтобы узнать больше обо всех предоставляемых конфигурациях и скриптах.

Вот как можно сгенерировать отчёт об ошибке с помощью скрипта cachyos-bugreport.sh:

  1. Откройте терминал и выполните следующую команду:
    Terminal window
    sudo cachyos-bugreport.sh
    Пример вывода
    Terminal window
    sudo cachyos-bugreport.sh
    [sudo] password for array:
    Starting with bugreport
    Redacting personal information...
    Do you want to upload this log to https://paste.cachyos.org? [Y]es/[N]o: Y
    Uploading Log
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 130.3k 100 10 100 130.3k 7 96934 00:01 00:01 117.7k
    # После завершения загрузки здесь будет указан URL.
  2. Скрипт сгенерирует лог-файл в вашей домашней директории, содержащий системную информацию и логи, полезные для отладки. Он также предложит загрузить лог в наш сервис для вставки текста, что может быть полезно при сообщении об ошибках.

Может пригодиться в некоторых случаях. Особенно для версии Proton от Valve.

Скрипт пытается обновить DLL и пресеты DLSS до последней доступной версии, что может быть полезно для некоторых игр, требующих определённой версии DLSS для корректной работы.

Как? Путём инъекции переменных окружения в процесс игры:

Переменные окружения dlss-swapper
Terminal window
export PROTON_ENABLE_NGX_UPDATER=1
export DXVK_NVAPI_DRS_NGX_DLSS_RR_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_SR_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_FG_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION=render_preset_latest
export DXVK_NVAPI_DRS_NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION=render_preset_latest
Переменные окружения dlss-swapper-dll
Terminal window
export DXVK_NVAPI_DRS_NGX_DLSS_RR_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_SR_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_FG_OVERRIDE=on
export DXVK_NVAPI_DRS_NGX_DLSS_RR_OVERRIDE_RENDER_PRESET_SELECTION=render_preset_latest
export DXVK_NVAPI_DRS_NGX_DLSS_SR_OVERRIDE_RENDER_PRESET_SELECTION=render_preset_latest
  • В чём разница между dlss-swapper и dlss-swapper-dll?
    • dlss-swapper обновляет DLL и пресеты DLSS до последних версий, предоставляемых NGX Updater, а dlss-swapper-dll использует DLL, уже присутствующие в директории игры.

Небольшой скрипт, который включает профиль производительности из powerprofilesctl для целевого процесса (может использоваться для игр или любого другого процесса) и отключает хранитель экрана на время работы процесса.

Вопросы и ответы:

Как использовать Допустим, вы хотите использовать game-performance для игры в Steam. Это можно сделать, добавив команду game-performance в качестве параметра запуска игры в Steam:

  1. Откройте Steam и перейдите в библиотеку.
  2. Щёлкните правой кнопкой мыши на игре, для которой вы хотите использовать game-performance, и выберите «Свойства».
  3. На вкладке «Общее» найдите раздел «Параметры запуска» и добавьте следующую команду:
    Terminal window
    game-performance %command%
  4. Закройте вкладку свойств и запустите игру.

Использование вне Steam Поскольку game-performance — это просто скрипт-обёртка, его можно использовать для запуска любого процесса с включённым профилем производительности. Просто выполните следующую команду в терминале:

Terminal window
game-performance <команда>

Даёт ли game-performance какую-либо пользу для старого процессора? В целом нет. Для старых процессоров его следует избегать, так как это может принести больше вреда, чем пользы.

Почему он не включён по умолчанию? Включение профиля производительности может быть не оптимальным для всех пользователей и может привести к повышенному потреблению энергии и выработке тепла. Не включая его по умолчанию, мы даём пользователям возможность включить его, когда это необходимо, не навязывая его всем.

kerver — это скрипт, выводящий краткую сводку о:

  • Текущей версии ядра
    • Проверяет поддержку x86_64 и оптимизации компилятора для процессора
  • Текущем планировщике I/O
  • Сводке по планировщикам CPU, I/O и sched-ext (если активен).
Использование
Откройте терминал и выполните следующую команду:
kerver
Пример вывода
Terminal window
kerver
Check kernel version:
Linux version 6.19.8-1-hC (linux-hC@hC) (clang version 22.1.1, LLD 22.1.1) #1 SMP PREEMPT_DYNAMIC Sun, 15 Mar 2026 16:27:53 +0000
Linux CatchyOS 6.19.8-1-hC #1 SMP PREEMPT_DYNAMIC Sun, 15 Mar 2026 16:27:53 +0000 x86_64 GNU/Linux
Check x86_64 support:
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
Check CPU config:
CONFIG_X86_NATIVE_CPU=y
# CONFIG_GENERIC_CPU is not set
# CONFIG_MZEN4 is not set
Current disk schedulers:
sda: none mq-deadline kyber [adios] bfq
sdb: none mq-deadline kyber [adios] bfq
Check available schedulers:
BORE CPU Scheduler modification 6.6.2 by Masahito Suzuki
rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
io scheduler mq-deadline registered
io scheduler kyber registered
Adaptive Deadline I/O Scheduler 3.2.0 by Masahito Suzuki
io scheduler adios registered
io scheduler bfq registered
sched_ext: BPF scheduler "bpfland_1.1.0_gc505008f_x86_64_unknown_linux_gnu" enabled with options scx_bpfland

Простой CLI-инструмент, позволяющий загружать текст в наш сервис для вставки текста. Может быть полезен для обмена логами и другим текстовым содержимым при сообщении об ошибках или обращении за помощью.

Вот несколько примеров использования paste-cachyos

Отправка вывода обновления pacman
Terminal window
sudo pacman -Syu | paste-cachyos

Пример

Лог journalctl для systemd-resolved
Terminal window
journalctl -u systemd-resolved.service | paste-cachyos

Простой скрипт, предназначенный для снижения задержки и улучшения производительности PCI-звуковых карт путём изменения таймера задержки PCI.

Доступен как в виде исполняемого файла, так и в виде службы systemd. Служба systemd автоматически применяет изменения при загрузке, а исполняемый файл можно использовать для применения изменений по требованию.

Однократное использование для текущей сессии
Terminal window
sudo pci-latency
Включение службы systemd
Terminal window
systemctl enable pci-latency.service
Отключение службы systemd
Terminal window
systemctl disable pci-latency.service

sbctl-batch-sign — вспомогательный скрипт, упрощающий подпись файлов, необходимых для поддержки Secure Boot.

Очевидный случай, когда этот скрипт очень помогает — двойная загрузка с Windows, так как существует множество файлов Windows, которые необходимо подписать в EFI.

Краткое описание того, что делает скрипт:

  • Сканирует неподписанные файлы с помощью sbctl verify
    • При необходимости подписывает обнаруженные файлы с помощью sbctl sign
  • Избегает файлов, принадлежащих Windows, GRUB или имеющих расширения: .mui и .dll

Ознакомьтесь с нашим разделом Настройка Secure Boot для получения дополнительной информации.

Lua-скрипт, показывающий процессы с наибольшим потреблением памяти по использованию ОЗУ, SWAP и KSM (Kernel Same-page Merging).

Перед использованием
Terminal window
# Установите lua-luv для запуска скрипта:
sudo pacman -S lua-luv
Использование
Terminal window
topmem
Пример вывода
Terminal window
topmem
MEMORY Top 10 processes SWAP KSM
1333M node 0M 0M
811M exe 0M 0M
759M VQ6B1EUZqoCU04zoRU= --cha... 0M 0M
681M node 0M 0M
531M zed-editor 0M 0M
484M brave 0M 0M
424M qs 0M 0M
408M mdx-language-server 0M 0M
395M Telegram 0M 0M
365M VQ6B1EUZqoCU04zoRU= --cha... 0M 0M

Принудительно использует Zink (OpenGL поверх Vulkan) для целевого процесса путём установки соответствующих переменных окружения.

Используемые переменные окружения
Terminal window
MESA_LOADER_DRIVER_OVERRIDE=zink
GALLIUM_DRIVER=zink
__GLX_VENDOR_LIBRARY_NAME=mesa
__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json

Может быть полезно в Steam для некоторых игр, которые имеют лучшую производительность или совместимость с Zink.

Использование
Terminal window
zink-run <команда>

Что такое переопределение?

Переопределение — это файл конфигурации, который вы создаёте для изменения настроек по умолчанию, предоставляемых cachyos-settings. Это позволяет настраивать систему без изменения оригинальных файлов, что полезно для поддержания совместимости с будущими обновлениями cachyos-settings.

Мы предоставляем множество настроек sysctl, направленных на улучшение общей производительности рабочего стола. Каждая запись sysctl хорошо документирована в файле 70-cachyos-settings.conf.

Чтобы внести изменения в любое из этих значений, скопируйте исходную запись и создайте новый файл в /etc/sysctl.d/ с изменённым значением.

Пример переопределения sysctl
  1. Посмотрите на исходное значение из cachyos-settings

    Terminal window
    cat /usr/lib/sysctl.d/70-cachyos-settings.conf
    # Только для экспериментов!
    # Позволить задачам реального времени выполняться столько, сколько им нужно
    # sched: троттлинг RT активирован
    kernel.sched_rt_runtime_us=-1
  2. Создайте новый файл в /etc/sysctl.d, чтобы внести изменения в настройки sysctl

    Возвращение kernel.sched_rt_runtime_us= к значению по умолчанию
    sudo micro /etc/sysctl.d/99-kernel-sched-rt.conf # Если файл не существует, эта команда создаст его и позволит редактировать
    kernel.sched_rt_runtime_us=950000
  3. Сохраните файл, нажав CTRL + S, и выйдите из редактора, нажав CTRL + Q.

  4. После внесения изменений в настройки sysctl примените их:

    Terminal window
    sudo sysctl --system

То же самое касается правил udev. Вы можете создать собственные переопределения, создав новый файл в /etc/udev/rules.d/ с таким же именем, как у оригинального файла.

Пример переопределения правила udev
  1. Проверьте оригинальное правило udev CachyOS:

    Terminal window
    cat /usr/lib/udev/rules.d/60-ioschedulers.rules
    Вывод:
    Terminal window
    # HDD
    ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", \
    ATTR{queue/scheduler}="bfq"
    # SSD
    ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", \
    ATTR{queue/scheduler}="mq-deadline"
    # NVMe SSD
    ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", \
    ATTR{queue/scheduler}="none"

    Допустим, вы хотите изменить планировщик I/O для SSD и NVMe на kyber вместо mq-deadline и none соответственно. Это можно сделать, создав файл переопределения.

  2. Создайте новый файл в /etc/udev/rules.d для переопределения оригинального правила:

    Terminal window
    sudo micro /etc/udev/rules.d/60-ioschedulers.rules # Если файл не существует, эта команда создаст его и позволит редактировать
    # HDD
    ACTION=="add|change", KERNEL=="sd[a-z]*", ATTR{queue/rotational}=="1", \
    ATTR{queue/scheduler}="bfq"
    # SSD
    ACTION=="add|change", KERNEL=="sd[a-z]*|mmcblk[0-9]*", ATTR{queue/rotational}=="0", \
    ATTR{queue/scheduler}="kyber"
    # NVMe SSD
    ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/rotational}=="0", \
    ATTR{queue/scheduler}="kyber"
  3. Сохраните файл, нажав CTRL + S, и выйдите из редактора, нажав CTRL + Q.

  4. После внесения изменений в правила udev перезагрузите правила и примените их:

    Terminal window
    sudo udevadm control --reload-rules
    sudo udevadm trigger