Pular para o conteúdo

Ajustes Gerais do Sistema


O amd-pstate é o driver de escalonamento de desempenho de CPUs AMD que introduz um novo mecanismo de controlo de frequência de CPU em séries modernas de APUs e CPUs AMD no kernel Linux. O novo mecanismo baseia-se no Collaborative Processor Performance Control (CPPC), que oferece uma gestão de frequência mais precisa do que os P-States de hardware ACPI legados.

As plataformas atuais de CPU/APU da AMD utilizam o driver ACPI P-states para gerir a frequência e os clocks do CPU, alternando apenas entre 3 P-states. O CPPC substitui os controlos ACPI P-states e permite uma interface flexível e de baixa latência para que o kernel Linux comunique diretamente as indicações de desempenho ao hardware.

Abaixo estão os 3 modos de operação do driver amd-pstate e as entradas de linha de comandos do kernel (cmdline) para os utilizar no arranque:

  • AMD P-State (Modo Não Autónomo): amd-pstate=passive
  • AMD P-State Guided (Modo Autónomo Guiado): amd-pstate=guided
  • AMD P-State EPP (Modo Autónomo): amd-pstate=active

Também pode alternar entre os modos de operação em tempo de execução para testar as opções:

  • Modo autónomo: a plataforma considera apenas os valores definidos para Desempenho Mínimo, Desempenho Máximo e Preferência de Desempenho Energético (EPP).

    Terminal window
    echo active | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • Modo autónomo guiado: a plataforma define o nível de desempenho operacional de acordo com a carga de trabalho atual e dentro dos limites definidos pelo SO através dos registos de desempenho mínimo e máximo.

    Terminal window
    echo guided | sudo tee /sys/devices/system/cpu/amd_pstate/status
  • Modo não autónomo: a plataforma obtém o nível de desempenho pretendido diretamente do SO através do Registo de Desempenho Desejado (Desired Performance Register).

    Terminal window
    echo passive | sudo tee /sys/devices/system/cpu/amd_pstate/status

Para informações mais detalhadas:

Documentação do AMD P-StateModos de Operação do Driver AMD P-StateInterface de Espaço de Utilizador do AMD P-State

Para utilizar o P-State EPP, estão disponíveis dois “governors” de escalonamento de frequência de CPU: powersave (poupança de energia) e performance (desempenho). Recomenda-se a utilização do “governor” powersave e a definição de uma preferência.

  • Definir o “governor” powersave: sudo cpupower frequency-set -g powersave
  • Definir o “governor” performance: sudo cpupower frequency-set -g performance

Para definir uma preferência, execute o seguinte comando com a preferência desejada:

Terminal window
echo power | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference

Preferências disponíveis: performance, power, balance_power, balance_performance

Benchmark oficial para cada preferência

A AMD publicou um patch para otimizar o agendamento de cache em CPUs 3D de Dual CCD, como o 7950X3D e o 7900X3D. É necessário definir a opção CPPC na BIOS para a opção “Driver”. Isto permitirá substituir o modo utilizado através do sysfs.

Existem dois modos:

  1. Frequency (Frequência)
  2. Cache

Se o modo cache for definido, o driver tentará colocar as tarefas primeiro no CCD com a cache maior; isto é vantajoso principalmente em jogos. A opção frequency tentará colocar as tarefas no segundo CCD, que possui uma frequência mais elevada do que o CCD com 3D Cache.

Frequência (Predefinição):

Terminal window
echo frequency | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

Cache:

Terminal window
echo cache | sudo tee /sys/bus/platform/drivers/amd_x3d_vcache/AMDI0101:00/amd_x3d_mode

Após alterar os modos, as estatísticas de núcleos preferenciais da AMD (preferred core stats) deverão apresentar uma classificação diferente. Pode consultá-las com:

Terminal window
grep -v /sys/devices/system/cpu/cpu*/cpufreq/amd_pstate_prefcore_ranking

O AMD Core Performance Boost (também conhecido como AMD Turbo Core) é uma tecnologia de escalonamento dinâmico de frequência da AMD que permite ao processador ajustar e controlar dinamicamente a frequência de operação em certas versões dos seus processadores. Isto permite um aumento de desempenho quando necessário, mantendo parâmetros térmicos e de energia mais baixos durante a operação normal.

Para gerir o AMD CPB no CachyOS, pode utilizar os seguintes comandos:

Terminal window
echo 0 | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/boost # Disable boost for all cores
lscpu -ae # This shows that AMD CPB is disabled globally
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 # Enables boost on 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

O CachyOS também fornece uma versão do power-profiles-daemon que inclui o backport de um commit para ativar o suporte ao AMD CPB. O AMD CPB será desativado se o perfil powersave estiver a ser utilizado, e será ativado nos perfis balanced ou performance.

Para mais informações, consulte:

Criado por firelzrd

Breve introdução do README:

  • O ADIOS (Adaptive Deadline I/O Scheduler) é um agendador de I/O de camada de bloco para o kernel Linux, concebido para dispositivos de bloco multi-fila modernos (blk-mq). O seu objetivo é fornecer baixa latência para operações de I/O, combinando princípios de agendamento por prazo (deadline) com um mecanismo de controlo de latência adaptativo baseado em aprendizagem.
    • Inspirado e construído sobre conceitos dos agendadores mq-deadline e Kyber. A sua característica principal é a capacidade de prever a latência de conclusão de I/O com base no desempenho passado e nas características do pedido (tipo de operação, tamanho) e utilizar essa previsão para ajustar dinamicamente os prazos dos pedidos e o comportamento de processamento em lote (batching).

Resumo: O ADIOS funciona aprendendo o perfil de latência do seu dispositivo de armazenamento e utilizando esse conhecimento para definir dinamicamente prazos para os pedidos de I/O. Ele prioriza os pedidos em quatro níveis (tiers), desde operações críticas do sistema (Tier 0) até tarefas de segundo plano (Tier 3), para garantir uma experiência de utilizador fluida. Embora se foque na capacidade de resposta, o seu comportamento pode ser afinado através de definições sysfs para equilibrar latência e rendimento (throughput).

Para uma demonstração ao vivo, pode ver este vídeo.

Este método define o agendador para a sessão atual. A alteração será perdida ao reiniciar.

Terminal window
sync && echo adios | sudo tee /sys/block/<yourdrive>/queue/scheduler
# Substitua <yourdrive> pelo identificador real do disco (ex: sda, sdb, nvme0n1)

FAQ:

  • Se melhora a capacidade de resposta, por que não está ativado por defeito?
    • O ADIOS ainda está sob desenvolvimento ativo e testes contínuos. Embora ofereça benefícios significativos para a fluidez do desktop, ainda não é considerado suficientemente estável para ser o padrão em todas as cargas de trabalho e tipos de hardware. Em alguns casos raros, bugs podem levar a problemas como bloqueios do sistema. Por este motivo, é uma funcionalidade opcional para utilizadores que desejam testar e beneficiar das suas melhorias mais recentes.

Citação direta da documentação da NVIDIA:

O NVIDIA Smooth Motion é um novo modelo de IA baseado no controlador que proporciona uma jogabilidade mais suave ao inferir uma frame adicional entre duas frames renderizadas. Para jogos sem DLSS Frame Generation, o NVIDIA Smooth Motion é uma nova opção para melhorar a sua experiência em GPUs GeForce RTX Série 40 e mais recentes.

  • Como ativar o NVIDIA Smooth Motion para um jogo:
    • Adicione a seguinte variável de ambiente:
      NVPRESENT_ENABLE_SMOOTH_MOTION=1

FAQ:

  • Por que usar o Smooth Motion em vez do DLSS Frame Generation?
    • Quando um jogo não tem suporte para DLSS Frame Generation, o Smooth Motion serve como uma alternativa graças ao seu modelo de IA baseado no controlador.
  • Existe alguma desvantagem em usar o Smooth Motion?
    • Sim, ativar o Smooth Motion pode introduzir um ligeiro atraso de entrada (input lag) devido ao processo adicional de inferência de frames.
    • Propenso a causar problemas com sobreposições (overlays) de terceiros. Para evitar isto, inclua a seguinte variável de ambiente:
      NVPRESENT_QUEUE_FAMILY=1
  • Porque é que o MangoHud não está a reportar o aumento da taxa de frames?
    • Atualmente, o MangoHud não contabiliza as frames adicionais geradas pelo Smooth Motion, o que resulta numa taxa de frames reportada enganadora.
      • A utilização do contador de FPS integrado no monitor fornecerá a taxa de frames correta.
  • Como é a qualidade de imagem em comparação com o DLSS Frame Generation?
    • A qualidade de imagem não é tão boa e pode introduzir artefactos, especialmente em cenas de movimento rápido.
  • É compatível com ferramentas externas de limitação de frames (frame capping)? Exemplo: MangoHud.
    • Não. O limitador interno do jogo (in-game cap) deverá funcionar corretamente.
  • O Smooth Motion pode ser combinado com o DLSS Frame Generation?
    • Não. Apenas um método de geração de frames pode estar ativo de cada vez.

O RCU Lazy ajuda a reduzir o consumo de energia em sistemas em repouso (idle) ou com carga leve. Isto pode ser útil para computadores portáteis e dispositivos portáteis (handhelds). A melhoria situa-se entre 5-10% em termos de poupança de energia. No entanto, é importante notar que esta funcionalidade de poupança de energia pode vir acompanhada de uma ligeira redução no desempenho, dependendo do cenário. O kernel linux-cachyos-deckify terá esta opção ativada por defeito, uma vez que a poupança de energia é fundamental e necessária para estes dispositivos.

Para ativar o RCU Lazy, adicione o seguinte parâmetro à sua lista de parâmetros da linha de comandos do kernel (cmdline):

rcutree.enable_rcu_lazy=1

Embora este seja um passo em frente positivo, pode introduzir alguns inconvenientes, como quebrar o suporte para overclocking através do nvidia-settings ou causar incompatibilidade com GPUs mais antigos que tenham dificuldades sob Wayland.

Para reverter esta alteração, remova o pacote cachyos-kde-settings:

Terminal window
sudo pacman -R cachyos-kde-settings

O Firmware NVIDIA GSP pode, “em alguns casos”, levar a uma diminuição do desempenho. Embora o controlador NVIDIA 555.58.02 tenha resolvido em grande parte este problema, ele pode persistir em certos sistemas. Se estiver a enfrentar pequenos soluços (hiccups) no KDE ou mau desempenho em alguns casos, pode desativar o Firmware GSP com o seguinte ficheiro de configuração: /etc/modprobe.d/nvidia-gsp.conf

options nvidia NVreg_EnableGpuFirmware=0

Após criar o ficheiro, execute o seguinte comando:

Terminal window
sudo mkinitcpio -P

Geralmente, recomenda-se testar o firmware GSP após cada nova instalação do controlador NVIDIA, pois este introduz frequentemente funcionalidades benéficas. Além disso, a NVIDIA passou a realizar os seus testes de QA utilizando prioritariamente o firmware GSP.

As colunas dos computadores portáteis produzem frequentemente um som fino e pouco impressionante devido ao seu tamanho compacto e capacidades de hardware limitadas. O EasyEffects pode melhorar significativamente a qualidade do som das colunas integradas do seu portátil, aplicando vários efeitos de áudio e configurações personalizadas.

Para começar, é necessário instalar o EasyEffects e as dependências necessárias:

Terminal window
# Instalar EasyEffects
sudo pacman -S easyeffects
# Instalar plugins adicionais para mais efeitos
sudo pacman -S lsp-plugins-lv2
sudo pacman -S zam-plugins
sudo pacman -S calf
sudo pacman -S mda.lv2

Siga estes passos para configurar o EasyEffects:

  1. Inicie o EasyEffects a partir do menu de aplicações ou escrevendo easyeffects no terminal.
  2. Navegue até ao separador Output (Saída) para gerir os efeitos aplicados ao áudio das colunas.
  3. Alterne para o separador Effects (Efeitos) para adicionar, modificar ou ajustar os efeitos de áudio.

Para uma configuração rápida e eficaz, comece com presets criados pela comunidade adaptados a vários cenários de áudio:

  1. Descarregue presets do repositório EasyEffects Community Presets.
  2. No EasyEffects, clique no botão Presets e escolha “Import preset from local storage” (Importar preset do armazenamento local).
  3. Localize e selecione o ficheiro do preset descarregado.
  4. Uma vez importado, o preset aparecerá na sua lista — clique em “Load” (Carregar) para o aplicar à sua saída de áudio.

Para uma experiência de áudio mais personalizada, crie um perfil à medida das colunas do seu portátil:

  1. Clique no botão “+” no menu de Presets para criar um novo preset (ex: dê-lhe o nome de “Laptop Speakers”).
  2. Selecione “Load” para ativar o novo preset.
  3. Adicione e configure efeitos no separador Output > Effects, experimentando opções como equalizadores, realçadores de graves (bass enhancers) ou alargadores de estéreo (stereo wideners).
Utilizar o Efeito Convolver (Portáteis com Dolby Atmos)
Seção intitulada “Utilizar o Efeito Convolver (Portáteis com Dolby Atmos)”

O efeito Convolver pode melhorar dramaticamente o som ao aplicar respostas de impulso que simulam ambientes de áudio de alta qualidade. No entanto, requer uma configuração precisa:

  1. Adicione o efeito Convolver à sua cadeia de efeitos no separador Effects.
  2. Carregue um ficheiro de resposta de impulso (em formato .wav) específico para o seu modelo de portátil, se disponível. Pode procurar por estes ficheiros online em recursos como:
  3. Evitar o “clipping”: O efeito Convolver pode aumentar significativamente o volume. Adicione um efeito Limiter (Limitador) após o Convolver na sua cadeia de efeitos para controlar os picos e evitar a distorção.
  • Experimente diferentes presets para identificar a melhor correspondência para o seu modelo específico de portátil e preferências pessoais de som.
  • Faça ajustes incrementais nos efeitos individuais para evitar distorção ou uma saída de som artificial.
  • Compare com o interruptor: Ative e desative frequentemente o EasyEffects para avaliar as melhorias em relação ao áudio predefinido.
  • Procure por presets específicos para o dispositivo ou respostas de impulso Convolver para modelos de portáteis populares como o Framework Laptop 13 ou ThinkPad T14 para obter resultados personalizados.
  • Automatize o arranque: Configure o EasyEffects para iniciar automaticamente ao ligar o sistema através das preferências da aplicação, garantindo que o seu perfil personalizado é sempre aplicado.
  • Carregamento automático de presets para múltiplos dispositivos: Utilize o separador PipeWire > Presets Autoloading para associar presets específicos a diferentes dispositivos de saída (ex: Colunas vs. Auscultadores) para uma comutação automática.

Como alternativa, pode tentar utilizar o JDSP4Linux, que é um processador de efeitos de áudio para clientes PipeWire e PulseAudio.

Disponibilizamos no nosso repositório um pacote obs-studio-browser personalizado que é recomendado em vez do pacote obs-studio padrão. Este contém correções (patches) para resolver alguns dos problemas comuns, como erros de CUDA e problemas com a câmara virtual.

Open a terminal and run the following command
sudo pacman -S obs-studio-browser
# Se já tinha o obs-studio instalado anteriormente, o pacman irá perguntar-lhe se
# deseja substituí-lo; se for o caso, introduza "Y" (Sim).

Por defeito, o CachyOS utiliza ZRam para a gestão de swap. No entanto, se preferir utilizar Zswap, pode mudar facilmente seguindo estes passos:

  1. Desative o ZRam adicionando um parâmetro ao kernel. Edite a configuração do seu gestor de arranque e adicione a seguinte linha:
    systemd.zram=0
  2. Ative o Zswap adicionando o seguinte parâmetro ao kernel:
    zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30
  3. Crie um ficheiro de sobreposição (override) vazio para desativar a regra udev do CachyOS que desativa o Zswap:
    Terminal window
    sudo touch /etc/udev/rules.d/30-zram.rules
  4. Crie um ficheiro de swap para o Zswap.
    Se estiver a utilizar Btrfs:
    1. Crie um subvolume Btrfs para o ficheiro de swap:
      Terminal window
      sudo btrfs subvolume create /swap
    2. Create a swap file with your desired size (e.g., 8GB) by changing the --size parameter:
      Terminal window
      sudo btrfs filesystem mkswapfile --size 4g --uuid clear /swap/swapfile
    3. Ative o ficheiro de swap:
      Terminal window
      sudo swapon /swap/swapfile
    4. Adicione o ficheiro de swap ao /etc/fstab para torná-lo persistente entre reinicializações:
      Terminal window
      sudo echo "/swap/swapfile none swap defaults 0 0" >> /etc/fstab
    Se não estiver a utilizar Btrfs:
    1. Crie um ficheiro de swap com o tamanho desejado (ex: 8GB) alterando o parâmetro count=:
      Terminal window
      sudo dd if=/dev/zero of=/swapfile bs=1G count=8
    2. Defina as permissões corretas para o ficheiro de swap:
      Terminal window
      sudo chmod 0600 /swapfile
    3. Formate o ficheiro de swap:
      Terminal window
      sudo mkswap /swapfile
    4. Adicione o ficheiro de swap ao /etc/fstab para torná-lo persistente entre reinicializações:
      Terminal window
      sudo echo "/swapfile none swap defaults 0 0" >> /etc/fstab
    5. Ative o ficheiro de swap:
      sudo swapon /swapfile
  5. Adicione o módulo de compressão lz4 ao ficheiro de configuração mkinitcpio.conf:
    1. Abra o ficheiro com um editor de texto:
      Terminal window
      sudo nano /etc/mkinitcpio.conf
    2. Encontre a linha MODULES e adicione lz4. Deverá ficar com um aspeto semelhante a este:
      MODULES=(... lz4)
    3. Guarde o ficheiro premindo Ctrl + O e Enter para confirmar, depois saia do editor com Ctrl + X.
  6. Reconstrua o seu initramfs para aplicar as alterações. O comando varia dependendo do seu gestor de arranque:
    systemd-boot
    Terminal window
    sudo sdboot-manage gen
    GRUB
    Terminal window
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    Limine
    Terminal window
    sudo limine-mkinitcpio
  7. Reinicie o sistema para aplicar todas as alterações.