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

Общие системные настройки


amd-pstate — это драйвер управления производительностью процессоров AMD, который добавляет в ядро Linux новый механизм контроля частоты ЦП для современных серий APU и CPU от AMD. Этот новый механизм основан на Collaborative Processor Performance Control (CPPC), который обеспечивает более точное управление частотой по сравнению с устаревшими аппаратными P-состояниями ACPI.

Современные платформы AMD CPU/APU используют драйвер ACPI P-states для управления частотой и тактовыми сигналами процессора, переключаясь только между 3-мя P-состояниями. CPPC заменяет элементы управления ACPI P-states и предоставляет гибкий интерфейс с низкой задержкой, позволяющий ядру Linux напрямую передавать оборудованию рекомендации по производительности.

Ниже приведены 3 режима работы драйвера amd-pstate и параметры командной строки ядра для их использования при загрузке:

  • AMD P-State (неавтономный режим): amd-pstate=passive
  • AMD P-State Guided (управляемый автономный режим): amd-pstate=guided
  • AMD P-State EPP (автономный режим): amd-pstate=active

Вы также можете переключаться между режимами работы во время выполнения, чтобы протестировать опции:

  • Автономный режим: платформа учитывает только значения, установленные для минимальной производительности, максимальной производительности и предпочтений по энергоэффективности.

    Окно терминала
    echo active | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • Управляемый автономный режим: платформа устанавливает уровень производительности в соответствии с текущей нагрузкой и в пределах, заданных ОС через регистры минимальной и максимальной производительности.

    Окно терминала
    echo guided | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • Неавтономный режим: платформа получает желаемый уровень производительности напрямую от ОС через регистр желаемой производительности.

    Окно терминала
    echo passive | sudo tee /sys/devices/system/cpu/amd_pstate/status

Дополнительная информация:

Документация AMD P-State Режимы работы драйвера AMD P-State Пользовательский интерфейс AMD P-State в sysfs

Для использования P-State EPP доступны два регулятора масштабирования частоты ЦП: powersave и performance. Рекомендуется использовать регулятор powersave и установить предпочтение.

  • Установить регулятор powersave: sudo cpupower frequency-set -g powersave
  • Установить регулятор performance: sudo cpupower frequency-set -g performance

Чтобы установить предпочтение, выполните следующую команду с желаемым значением:

Окно терминала
echo power | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference

Доступные предпочтения: performance, power, balance_power, balance_performance

Официальные тесты для каждого предпочтения

AMD опубликовала патч для оптимизации планирования кэша на процессорах с двумя CCD и 3D V-Cache, таких как 7950X3D и 7900X3D. Вам нужно установить в BIOS в опции CPPC значение “Driver”. Это позволит переопределить используемый режим через sysfs.

Существует два режима:

  1. Frequency (Частота)
  2. Cache (Кэш)

Если установлен режим cache, драйвер будет пытаться размещать задачи в первую очередь на CCD с большим объёмом кэша, что в основном выгодно в играх. Опция frequency будет пытаться размещать задачи на втором CCD, у которого более высокая частота, чем у CCD с 3D V-Cache.

Frequency (по умолчанию):

Окно терминала
echo frequency | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

Cache:

Окно терминала
echo cache | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

После смены режима статистика предпочтительных ядер AMD должна показать другой рейтинг. Вы можете прочитать его с помощью:

Окно терминала
grep -v /sys/devices/system/cpu/cpu*/cpufreq/amd_pstate_prefcore_ranking

AMD Core Performance Boost, также известная как AMD Turbo Core, — это технология динамического масштабирования частоты от AMD, которая позволяет процессору динамически настраивать и контролировать рабочую частоту в некоторых версиях своих процессоров, что обеспечивает повышенную производительность при необходимости, сохраняя при этом низкие показатели энергопотребления и температуры во время обычной работы.

Для управления AMD CPB в CachyOS вы можете использовать следующие команды:

Окно терминала
echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/boost # Отключить boost для всех ядер
lscpu -ae # Это показывает, что AMD CPB отключён глобально
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 yes 3301.0000 400.0000 1212.8250
1 0 0 0 0:0:0:0 yes 3301.0000 400.0000 1394.2180
2 0 0 1 1:1:1:0 yes 3301.0000 400.0000 1204.4600
echo 1 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/boost # Включает boost на cpu0
lscpu -ae
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ MHZ
0 0 0 0 0:0:0:0 yes 4564.0000 400.0000 1393.2380
1 0 0 0 0:0:0:0 yes 3301.0000 400.0000 400.0000
2 0 0 1 1:1:1:0 yes 3301.0000 400.0000 2157.8469

CachyOS также предоставляет версию power-profiles-daemon, которая бэкпортирует коммит, включающий поддержку AMD CPB. AMD CPB будет отключен при использовании профиля powersave и включен при balanced или performance.

Дополнительную информацию см. по ссылкам:

Создан firelzrd

Краткое введение из README:

  • ADIOS (Adaptive Deadline I/O Scheduler) — это планировщик ввода-вывода на уровне блочных устройств для ядра Linux, разработанный для современных многоочередных блочных устройств (blk-mq). Он нацелен на обеспечение низкой задержки для операций ввода-вывода путем сочетания принципов планирования по крайнему сроку с адаптивным механизмом контроля задержек на основе обучения.
    • Вдохновлен и основан на концепциях планировщиков ввода-вывода mq-deadline и Kyber. Его основной особенностью является способность прогнозировать задержку завершения ввода-вывода на основе прошлой производительности и характеристик запроса (тип операции, размер) и использовать этот прогноз для динамической корректировки крайних сроков запросов и поведения пакетирования.

TLDR: ADIOS работает, изучая профиль задержек вашего устройства хранения данных и используя эти знания для динамической установки крайних сроков для запросов ввода-вывода. Он распределяет запросы по четырем уровням приоритета: от критически важных системных операций (уровень 0) до фоновых задач (уровень 3), чтобы обеспечить плавность работы пользователя. Хотя он ориентирован на отзывчивость, его поведение можно тонко настраивать через параметры sysfs для баланса между задержкой и пропускной способностью.

Живую демонстрацию можно посмотреть в этом видео

Этот метод устанавливает планировщик для текущей сессии. Изменение будет утеряно после перезагрузки.

Окно терминала
sync && echo adios | sudo tee /sys/block/<yourdrive>/queue/scheduler
# Замените <yourdrive> на фактический идентификатор диска (например, sda, sdb, nvme0n1)

FAQ:

  • Если он улучшает отзывчивость, почему он не включен по умолчанию?
    • ADIOS все еще находится в активной разработке и постоянно тестируется. Хотя он предлагает значительные преимущества для отзывчивости рабочего стола, он еще не считается достаточно стабильным, чтобы быть стандартным решением для всех типов рабочих нагрузок и оборудования. В некоторых редких случаях ошибки могут приводить к проблемам, таким как зависание системы. По этой причине это необязательная функция для пользователей, которые хотят протестировать и воспользоваться его последними улучшениями.

Прямая цитата из документации NVIDIA:

NVIDIA Smooth Motion — это новая, основанная на драйвере, ИИ-модель, которая обеспечивает более плавный игровой процесс путём интерполяции дополнительного кадра между двумя отрисованными кадрами. Для игр без поддержки DLSS Frame Generation, NVIDIA Smooth Motion является новой опцией для улучшения вашего игрового опыта на видеокартах GeForce RTX 40-й серии и новее.

  • Как включить NVIDIA Smooth Motion для игры:
    • Добавьте следующую переменную окружения:
      NVPRESENT_ENABLE_SMOOTH_MOTION=1

Часто задаваемые вопросы:

  • Зачем использовать Smooth Motion вместо DLSS Frame Generation?
    • Когда в игре отсутствует поддержка DLSS Frame Generation, Smooth Motion служит альтернативой благодаря своей ИИ-модели на уровне драйвера.
  • Есть ли какие-либо недостатки в использовании Smooth Motion?
    • Да, включение Smooth Motion может привести к небольшой задержке ввода из-за процесса интерполяции дополнительных кадров.
    • Возможны проблемы с оверлеями от сторонних программ. Чтобы избежать этого, добавьте следующую переменную окружения:
      NVPRESENT_QUEUE_FAMILY=1
  • Почему MangoHud не отображает возросшую частоту кадров?
    • В настоящее время MangoHud не учитывает дополнительные кадры, сгенерированные Smooth Motion, что приводит к неверному отображению частоты кадров.
      • Использование встроенного в монитор счётчика FPS покажет правильную частоту кадров.
  • Каково качество изображения по сравнению с DLSS Frame Generation?
    • Качество изображения не такое высокое и может приводить к появлению артефактов, особенно в сценах с быстрым движением.
  • Совместима ли технология с внешними инструментами для ограничения частоты кадров? Например: MangoHud.
    • Нет. Внутриигровой ограничитель должен работать нормально.
  • Можно ли использовать Smooth Motion вместе с DLSS Frame Generation?
    • Нет. Одновременно может быть активен только один метод генерации кадров.

RCU Lazy помогает снизить энергопотребление в режиме простоя или при небольшой нагрузке системы. Это может быть полезно для ноутбуков и портативных устройств. Улучшение составляет 5-10% с точки зрения экономии энергии. Однако важно отметить, что эта функция энергосбережения может достигаться за счет некоторого снижения производительности в зависимости от сценария. В ядре linux-cachyos-deckify эта опция будет включена по умолчанию, поскольку энергосбережение является ключевым и необходимым для этих устройств.

Чтобы включить RCU Lazy, добавьте следующий параметр в список параметров командной строки вашего ядра:

rcutree.enable_rcu_lazy=1

Хотя это хороший шаг вперед, он может вызывать некоторые неудобства, такие как нарушение поддержки разгона с помощью nvidia-settings или несовместимость со старыми видеокартами, которые с трудом работают под Wayland.

Чтобы отменить это изменение, удалите пакет cachyos-kde-settings:

Окно терминала
sudo pacman -R cachyos-kde-settings

Прошивка NVIDIA GSP «в некоторых случаях» может приводить к снижению производительности. Хотя драйвер NVIDIA 555.58.02 в значительной степени решил эту проблему, она может сохраняться на некоторых системах. Если вы сталкиваетесь с подтормаживаниями в KDE или плохой производительностью в некоторых случаях, вы можете отключить прошивку GSP с помощью следующего файла конфигурации: /etc/modprobe.d/nvidia-gsp.conf

options nvidia NVreg_EnableGpuFirmware=0

После создания файла выполните следующую команду:

Окно терминала
sudo mkinitcpio -P

В целом рекомендуется тестировать прошивку GSP после каждой новой установки драйвера NVIDIA, поскольку она часто вводит полезные функции. Более того, NVIDIA в основном начала проводить QA-тестирование с использованием прошивки GSP.

Улучшения аудио и программного обеспечения

Заголовок раздела «Улучшения аудио и программного обеспечения»

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

Для начала вам необходимо установить EasyEffects и требуемые зависимости:

Окно терминала
# Установить EasyEffects
sudo pacman -S easyeffects
# Установить дополнительные плагины для большего количества эффектов
sudo pacman -S lsp-plugins-lv2
sudo pacman -S zam-plugins
sudo pacman -S calf
sudo pacman -S mda.lv2

Выполните следующие шаги для настройки EasyEffects:

  1. Запустите EasyEffects из меню приложений или введя easyeffects в терминале.
  2. Перейдите на вкладку Output для управления эффектами, применяемыми к звуку ваших динамиков.
  3. Перейдите на вкладку Effects для добавления, изменения или настройки аудиоэффектов.

Для быстрой и эффективной настройки начните с пресетов, созданных сообществом и предназначенных для различных аудиосценариев:

  1. Загрузите пресеты из репозитория EasyEffects Community Presets.
  2. В EasyEffects нажмите кнопку Presets и выберите «Import preset from local storage».
  3. Найдите и выберите загруженный файл пресета.
  4. После импорта пресет появится в вашем списке — нажмите «Load», чтобы применить его к вашему аудиовыходу.

Для более персонализированного звучания создайте собственный профиль, настроенный под динамики вашего ноутбука:

  1. Нажмите кнопку «+» в меню Presets, чтобы создать новый пресет (например, назовите его «Laptop Speakers»).
  2. Выберите «Load», чтобы активировать новый пресет.
  3. Добавьте и настройте эффекты на вкладке Output > Effects, экспериментируя с такими опциями, как эквалайзеры, усилители басов или расширители стереобазы.
Использование эффекта Convolver (ноутбуки с Dolby Atmos)
Заголовок раздела «Использование эффекта Convolver (ноутбуки с Dolby Atmos)»

Эффект Convolver может значительно улучшить звук, применяя импульсные отклики, которые имитируют высококачественные акустические среды. Однако он требует точной настройки:

  1. Добавьте эффект Convolver в цепочку эффектов на вкладке Effects.
  2. Загрузите файл импульсного отклика (в формате .wav), специфичный для вашей модели ноутбука, если он доступен. Вы можете найти такие файлы в интернете на ресурсах, таких как:
  3. Предотвращение клиппинга: Эффект Convolver может значительно увеличить громкость. Добавьте эффект Limiter после Convolver в вашей цепочке эффектов, чтобы контролировать пики и избежать искажений.
  • Экспериментируйте с различными пресетами, чтобы найти наилучшее соответствие для вашей конкретной модели ноутбука и личных звуковых предпочтений.
  • Вносите постепенные изменения в отдельные эффекты, чтобы предотвратить искажения или неестественное звучание.
  • Сравнивайте с помощью переключателя: Часто включайте и выключайте EasyEffects, чтобы оценить улучшения по сравнению со звуком по умолчанию.
  • Ищите пресеты или импульсные отклики Convolver для конкретных устройств, таких как Framework Laptop 13 или ThinkPad T14, чтобы добиться индивидуальных результатов.
  • Автоматизируйте запуск: Настройте EasyEffects на автоматический запуск при старте системы через настройки приложения, чтобы ваш пользовательский профиль всегда применялся.
  • Автозагрузка пресетов для нескольких устройств: Используйте вкладку PipeWire > Presets Autoloading, чтобы связать определенные пресеты с различными устройствами вывода (например, Динамики vs. Наушники) для плавного переключения.

В качестве альтернативы вы можете попробовать использовать JDSP4Linux, который является процессором аудиоэффектов для клиентов PipeWire и PulseAudio.

Мы предоставляем в нашем репозитории кастомный пакет obs-studio-browser, который рекомендуется использовать вместо стандартного пакета obs-studio. Он содержит патчи для исправления некоторых распространенных проблем, таких как ошибки cuda и проблемы с виртуальной камерой.

Откройте терминал и выполните следующую команду
sudo pacman -S obs-studio-browser
# Если у вас ранее был установлен obs-studio, pacman спросит, хотите ли вы
# его заменить, если да, введите «Y».

По умолчанию CachyOS использует ZRam для управления подкачкой. Однако, если вы предпочитаете использовать Zswap, вы можете легко переключиться, следуя этим шагам:

  1. Отключите ZRam, добавив параметр ядра. Отредактируйте конфигурацию вашего загрузчика и добавьте следующую строку:
    systemd.zram=0
  2. Включите Zswap, добавив следующий параметр ядра:
    zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30
  3. Создайте пустой файл переопределения, чтобы отключить правило udev CachyOS, которое отключает Zswap:
    Окно терминала
    sudo touch /etc/udev/rules.d/30-zram.rules
  4. Создайте файл подкачки для Zswap.
    Если вы используете Btrfs:
    1. Создайте подтом Btrfs для файла подкачки:
      Окно терминала
      sudo btrfs subvolume create /swap
    2. Создайте файл подкачки желаемого размера (например, 8 ГБ), изменив параметр --size:
      Окно терминала
      sudo btrfs filesystem mkswapfile --size 4g --uuid clear /swap/swapfile
    3. Активируйте файл подкачки:
      Окно терминала
      sudo swapon /swap/swapfile
    4. Добавьте файл подкачки в /etc/fstab, чтобы он сохранялся после перезагрузок:
      Окно терминала
      echo "/swap/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab
    Если вы не используете Btrfs:
    1. Создайте файл подкачки желаемого размера (например, 8 ГБ), изменив параметр count=:
      Окно терминала
      sudo dd if=/dev/zero of=/swapfile bs=1G count=8
    2. Установите правильные права доступа для файла подкачки:
      Окно терминала
      sudo chmod 0600 /swapfile
    3. Отформатируйте файл подкачки:
      Окно терминала
      sudo mkswap /swapfile
    4. Добавьте файл подкачки в /etc/fstab, чтобы он сохранялся после перезагрузок:
      Окно терминала
      echo "/swapfile none swap defaults 0 0" | sudo tee -a /etc/fstab
    5. Активируйте файл подкачки:
      sudo swapon /swapfile
  5. Добавьте модуль сжатия lz4 в файл конфигурации mkinitcpio.conf:
    1. Откройте файл в текстовом редакторе:
      Окно терминала
      sudo nano /etc/mkinitcpio.conf
    2. Найдите массив MODULES и добавьте в него lz4. Он должен выглядеть примерно так:
      MODULES=(... lz4)
    3. Сохраните файл, нажав Ctrl + O и Enter для подтверждения, затем выйдите из редактора с помощью Ctrl + X.
  6. Пересоберите ваш initramfs, чтобы применить изменения. Команда зависит от вашего загрузчика:
    systemd-boot
    Окно терминала
    sudo sdboot-manage gen
    GRUB
    Окно терминала
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    Limine
    Окно терминала
    sudo limine-mkinitcpio
  7. Перезагрузите систему, чтобы применить все изменения.