quinta-feira, 30 de julho de 2026

Ajustes para quem usa zRAM com ssd ou hdd

 Ajustes para quem usa zRAM com ssd ou hdd

Já tem postagens aqui no blog sobre o uso da zRAM que é um recurso de usar a SWAP em um bloco comprimido na RAM da máquina para evitar ou diminuir a escrita em disco, onde discos rígidos podem deixar o sistema mais lento por usar SWAP em disco de forma recorrente. Se você tem uma máquina de pouca potência - algo como Celeron ou máquinas abaixo de i3 de 2ª geração, até 8GB de RAM e disco hdd - e não tem planos para um upgrade e fica sofrendo para usar o seu PC, talvez essa postagem lhe ajude. Mas em cima disso dou como sugestão inicial adquirir um ssd que vai melhorar em muito - mas muito mesmo - o desempenho geral.

Como eu disse, a zRAM é um recurso de SWAP que é alocado em um bloco comprimido "separado" na memória RAM e esse bloco, mesmo "reservado", só é usado em caso de necessidade. O próprio sistema se encarrega de compactar e descompactar os dados em tempo real de forma dinâmica frente às necessidades que o sistema precisa. A SWAP é uma partição ou arquivo que é usado quando o sistema começa a ficar sem memória RAM suficiente para gerir os recursos da máquina; quando se usa ssd a lentidão de acesso nem é tão sentida, o problema é quando se usa disco mecânico. Dependendo da quantidade de RAM e do que o usuário faz na máquina em relação aos programas abertos ao mesmo tempo, é possível ficar sem a SWAP em disco mas é primordial ter algum tipo de SWAP a não ser que a máquina tenha 32GB de RAM ou mais e o usuário não fique com vários programas abertos ou use programas que come toda a RAM do sistema. Levando em consideração o uso de uma máquina abaixo de um i3 de 2ª geração com 4GB de RAM e disco rígido (como a minha atual), vamos ver como implementar uma boa configuração sem usar SWAP em disco. Abra o Terminal e digite:

sudo apt install systemd-zram-generation
 

Depois:

sudo nano /etc/systemd/zram-generator.conf

Coloque dentro:

[zram0]
zram-size = ram / 2
compression-algorithm = zstd
swap-priority = 100

Ctrl+o para salvar e ctrl+x para fechar. depois disso:

sudo systemctl enable systemd-zram-setup@zram0.service

Reinicie a máquina. Se você tiver algum widget que mostre os recursos disponíveis da sua máquina, se você já tiver um swap em disco esse espaço deverá se juntar ao valor da zRAM configurado. A configuração acima vai usar a metade da sua RAM para o arquivo de troca (SWAP). Se achar muito, pode mudar para " ram / 4 " para usar 1/4 da RAM.


 Para retardar o uso da SWAP em disco, no Terminal digite:

sudo nano /etc/fstab

Deve aparecer algo assim (é um exemplo) para SWAP em partição:

UUID=a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap defaults 0 0

Para SWAP em arquivo: 

/swapfile none swap defaults 0 0

Identificado o tipo de SWAP, Na linha que aparecer o item "swap/swapfile" coloque a opção "pri=1" conforme exemplos abaixo:

UUID=a1b2c3d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap defaults,pri=1 0 0

/swapfile none swap defaults,pri=1 0 0

Essa configuração vai fazer com que a swap em disco apenas seja usada quando a zRAM estiver cheia. Posso mostrar como desativar a SWAP em disco mas isso pode, eventualmente, fazer com que o seu boot fique lento parando em um determinado ponto e mostrando posteriormente a mensagem de que o dispositivo não pode ser acessado já que a montagem da SWAP não depende exclusivamente do arquivo /etc/fstab. Se você quiser arriscar, basta colocar  sem as aspas " # " na frente da linha referente à SWAP, salvar o arquivo e reiniciar a máquina. Veja que, tendo duas SWAPs (zRAM e a em disco) primeiro a zRAM vai ser usada e depois, caso seja necessário, a em disco devido às diferentes prioridades configuradas.

Pra finalizar, vamos adequar quando a SWAP vai ser usada.

Somente se usar zRAM 

sudo nano /etc/sysctl.d/99-swap.conf

Coloque dentro essa única linha abaixo e salve o arquivo (ctrl+o e ctrl+x):

vm.swappiness = 150

Valores altos como 150 são recomendados para zRAM pura - sem SWAP em disco - no kernel moderno pois forçam o sistema a compactar a RAM antecipadamente sem lentidão de I/O).

Se usar zRAM + SWAP em disco:

vm.swappiness = 30
vm.dirty_ratio = 35
vm.dirty_background_ratio = 8
vm.dirty_expire_centisecs = 5000
vm.dirty_writeback_centisecs = 2500
vm.dirtytime_expire_seconds = 600
vm.vfs_cache_pressure = 100

Ctrl+o pra salvar e ctrl+x pra fechar e reinicie a máquina. Veja o comportamento da máquina frente às novas configurações. A opção mostrada em zRAM + SWAP em disco "vm.swappiness = 30" controla quando o kernel começará a usar a SWAP "dupla", sempre primeiro a zRAM e depois a em disco. Se você usar ssd não há muito com o que se preocupar, só atente caso você use disco rígido, pois os valores mostrados são para evitar ao máximo a escrita em disco justamente porque os hdds são lentos.


 

quarta-feira, 29 de julho de 2026

Auxiliando o OOM Killer do kernel a fechar processos que estejam travando a máquina

 O OOM Killer pode querer ajuda com programas travados

 O OOM Killer é um recurso do kernel que decide se e quando fechar programas que estejam usando muita memória RAM a ponto de eventualmente esgotá-la e fazer com que o sistema trave (por falta de RAM/SWAP) ou fique extremamente lento (por ter que usar swap em disco). Para "medir" isso há um valor de sistema que é o vm.min_free_kbytes cujo valor normalmente é de cerca de 1% da memória RAM total. Pode parecer pouco mas esses cerca de 40MB (em sistemas com 4GB, por exemplo) é suficiente para as funções mais críticas do sistema e suficiente na maioria das vezes para mantê-lo "vivo" até que o OOM Killer feche o eventual executável mal-criado.

Mas pode ocorrer do OOM Killer "chegar atrasado" para fechar o que está provocando a saturação da máquina e, assim, a máquina simplesmente trava mesmo. Há um programa chamado earlyoom que trabalha como o "apressadinho" do sistema, prevenindo de forma mais antecipada o que o OOM Killer faz, uma espécie de garantia de que programas mal comportados sejam parados mas sem atingir, por exemplo, a interface gráfica do usuário (pelo menos numa primeira interação com o sistema), coisa que o OOM Killer costuma fazer, fazendo o usuário voltar à tela de autenticação para logar de novo.

Para instalar o programa:

sudo apt install earlyoom

Vamos configurar o mesmo, no Terminal: 

sudo nano /etc/default/earlyoom

No arquivo padrão, as eventuais linhas que não tenham o # podem ser comentadas ou procure a linha que tem sem as aspas " EARLYOOM_ARGS " e coloque tudo isso mostrado abaixo (o comando é uma linha só):

EARLYOOM_ARGS="-r 0 -m 2 -M 256000 --prefer '^(Web Content|Isolated Web Co)$' --avoid '^(dnf|apt|pacman|rpm-ostree|packagekitd|gnome-shell|gnome-session-c|gnome-session-b|lightdm|sddm|sddm-helper|gdm|gdm-wayland-ses|gdm-session-wor|gdm-x-session|Xorg|Xwayland|systemd|systemd-logind|dbus-daemon|dbus-broker|cinnamon|cinnamon-sessio|kwin_x11|kwin_wayland|plasmashell|ksmserver|plasma_session|startplasma-way|sway|i3|xfce4-session|mate-session|marco|lxqt-session|openbox|cryptsetup)$'" 

O arquivo vai ficar como na imagem abaixo:

 

Ctrl+o pra salvar e ctrl+x pra fechar. Depois disso:

sudo systemctl enable --now earlyoom 

sudo systemctl start earlyoom

As flags da configuração significam:

  • -r 0: Desativa os logs periódicos de rotina (só loga ações do matador de processos).
  • -m 2: Aciona o aviso/ação quando a RAM disponível for menor que 2%.
  • -M 256000: Limite absoluto em Kilobytes (aprox. 250 MB de RAM livre).
  • --prefer: Dá prioridade de encerramento para as abas/processos do navegador (Web Content).
  • --avoid: Protege a interface gráfica, gerenciadores de pacote e serviços vitais do sistema para não fechar seu ambiente de trabalho ou quebrar atualizações.

 Com isso o seu sistema deverá ficar mais preparado para eventuais "acessos de RAM/SWAP" além do disponível.


 

segunda-feira, 27 de julho de 2026

Como aumentar a fluidez da sua internet usando cache local - DNSmasq

Aumentando a fluidez da sua internet com o dnsmasq 

As pequenas redes presentes na casa do usuário e até mesmo em empresas não costumam possuir um cache de dns para melhorar a responsividade da internet, fazendo com que as requisições de dns sejam repetidas a cada acesso feito por programas que usam a internet. Desse modo, caso um programa, aplicação ou seja lá o que o usuário ou o sistema precise acessar pela internet, se houver necessidade de ocorrer 50 consultas de dns para determinado domínio, todas deverão seguir o mesmo script, que é "aplicação => domínio => busca na internet no servidor dns do seu provedor ou mais acima => acha o ip associado ao domínio pesquisado => retorna para a sua máquina => envia os dados à aplicação que pediu a pesquisa".

Aqui vamos instalar o DNSMasq, que é um cache local para requisições de dns para acelerar a sua navegação e até mesmo, seus downloads - esse último vai depender de vários fatores. Para instalar:

sudo apt install dnsmasq

Como otimização, pode ser que você queira configurar o arquivo do dnsmasq:

sudo nano /etc/dnsmasq.conf

Coloque lá no final:

# Servidores upstream rápidos (Respectivamente 2 do Google, o seu roteador caseiro - no caso o meu, o seu pode ser diferente - e o do CloudFire):
server=8.8.8.8
server=8.8.4.4
server=192.168.1.1
server=1.1.1.1

# Aumenta o limite do cache de respostas (padrão é 150, valores entre 150 e 1000 estão adequados)
cache-size=500
# Aumenta o TTL mínimo de espera para 300s (5 minutos, caso você não queira usar o padrão dado pelo servidor)
min-cache-ttl=300

Salve com ctrl+o e feche com ctrl+x. Você pode ver qual o TTL do IP atrelado ao domínio com o comando:

dig youtube.com

e procurar isso aqui:

;; ANSWER SECTION:
youtube.com.        256    IN    A    142.251.129.238

 

O item em VERDE é o TTL padrão atribuído ao IP pelo servidor. 

Depois da instalação e das eventuais configurações, reinicie a máquina logo depois disso. O vídeo abaixo mostra o uso e tudo mais para otimização do DNSMasq.


quinta-feira, 16 de julho de 2026

Alguns erros no som do Linux como ruídos, chiados, interrupções e como tentar corrigi-los

Alguns erros no som do Linux que podem ser corrigidos 

Tem uma postagem aqui mais antiga sobre como resolver alguns problemas de som que costumam ocorrer no Linux e nessa nova postagem vou acrescentar mais algumas situações, inclusive referente à chiadeira de microfones. Só lembrando que instabilidades decorrentes de drivers mal escritos ou processadores pouco potentes só podem ser remediados.

Desabilitar o "suspend" da placa de som

Por padrão o sistema costuma desabilitar a placa de som depois de certo tempo de ociosidade para economizar energia, principalmente em notebooks. Pode ocorrer de, numa dessas "desligadas", a placa "não volte" ou fique instável e que pode provocar atrasos e soluços no som. Sendo assim, temos duas coisas a serem feitas (pode fazer as duas):

Desligar a nível de kernel:

É um pouco radical, necessita de privilégios de administrador da máquina e pode não incluir dispositivos de som USB. Abra o Terminal e digite:

inxi -A

Deverá aparecer algo assim:

Audio:
  Device-1: Intel NM10/ICH7 Family High Definition Audio driver: snd_hda_intel
  API: ALSA v: k6.12.95+deb13-amd64 status: kernel-api
  Server-1: PipeWire v: 1.4.2 status: active
 

O que interessa pra gente é o que está aparecendo em verde (snd_hda_intel) que é o módulo de som padrão usado no sistema. Se aparecer o snd_usb_audio é por que a placa de som ou dispositivo usado (como um microfone) é usb, esse item é importante. No Terminal, digite:

sudo nano /etc/modprobe.d/audio_disable_powersave.conf 

Coloque dentro e salve com ctrl+o e feche com ctrl+x:

options snd_hda_intel power_save=0
options snd_hda_intel power_save_controller=N

Use onde está azul a opção de "snd" que apareceu no comando inxi -A dado anteriormente. Reinicie a máquina. 

Desligar a nível de servidor de som

Esse me parece ser o mais adequado pois inclui dispositivos USB na jogada além de não precisar ser administrador pois as mudanças são aplicadas a nível de usuário. Pra isso precisamos saber qual a versão do Wireplumber está em uso:

wireplumber --version

Deverá aparecer algo assim:

wireplumber
Compiled with libwireplumber 0.5.8
Linked with libwireplumber 0.5.8

Se a sua versão por acima da 0.5 como no exemplo acima, no Terminal digite os comandos:

mkdir -p ~/.config/wireplumber/wireplumber.conf.d
nano ~/.config/wireplumber/wireplumber.conf.d/disable-audio-suspend.conf

e coloque dentro: 

monitor.alsa.rules = [
  {
    matches = [
      {
        node.name = "~alsa_.*"
      }
    ]
    actions = {
      update-props = {
        session.suspend-timeout-seconds = 0
      }
    }
  }
]


Se o Wireplumber for abaixo de 0.5:

mkdir -p ~/.config/wireplumber/main.lua.d
nano ~/.config/wireplumber/main.lua.d/50-disable-suspend.lua


e coloque dentro: 

table.insert(alsa_monitor.rules, {
  matches = {
    {
      { "node.name", "matches", "alsa_.*" },
    },
  },
  apply_properties = {
    ["session.suspend-timeout-seconds"] = 0,
  },
}) 

Em ambos os exemplos, salve com ctrl+o e feche com ctrl+x. Reinicie a máquina. 

As configurações de som não são salvas 

Taí um negócio chato, você liga o PC e o som (microfone e áudio) não estão nos níveis que você deixou. Abra o Terminal e digite: 

sudo nano /etc/udev/rules.d/90-alsa-restore.rules

Coloque dentro:

ACTION=="add", SUBSYSTEM=="sound", KERNEL=="controlC*", KERNELS!="card*", TEST=="/usr/sbin", TEST=="/usr/share/alsa", GOTO="alsa_restore_go"
GOTO="alsa_restore_end"

LABEL="alsa_restore_go"

ENV{ALSA_CARD_NUMBER}="$attr{device/number}"

# mark HDA analog card; HDMI/DP card does not have capture devices
DRIVERS=="snd_hda_intel", TEST=="device/pcmC$env{ALSA_CARD_NUMBER}D0p", RUN+="/bin/sh -c 'echo ALSA_CARD_HDA_ANALOG=$env{ALSA_CARD_NUMBER} >> /run/udev/alsa-hda-analog-card'"

# check for ACP hardware
TEST=="device/device/acp3x-dmic-capture", GOTO="alsa_hda_analog"
TEST=="device/device/acp6x-dmic-capture", GOTO="alsa_hda_analog"
TEST=="device/device/acp63-dmic-capture", GOTO="alsa_hda_analog"
TEST=="device/device/acp-dmic-codec", GOTO="alsa_hda_analog"
GOTO="alsa_restore_std"

LABEL="alsa_hda_analog"
# restore configuration for profile with combined cards (HDA + digital mic)
TEST!="/run/udev/alsa-hda-analog-card", GOTO="alsa_restore_std"
IMPORT{program}="/usr/bin/cat /run/udev/alsa-hda-analog-card"
ENV{ALSA_CARD_HDA_ANALOG}!="", ENV{ALSA_CARD_NUMBER}="$env{ALSA_CARD_HDA_ANALOG}"

# ---> A CORREÇÃO FICA AQUI (Substituindo o "alsa_restore_go" duplicado)
LABEL="alsa_restore_std"
TEST!="/etc/alsa/state-daemon.conf", TEST=="/usr/sbin/alsactl", RUN+="/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore $env{ALSA_CARD_NUMBER}"
TEST=="/etc/alsa/state-daemon.conf", TEST=="/usr/sbin/alsactl", RUN+="/usr/sbin/alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime nrestore $env{ALSA_CARD_NUMBER}"

LABEL="alsa_restore_end" 

Salve com ctrl+o e feche com ctrl+x. Depois disso:

sudo udevadm control --reload-rules 

Ainda no Terminal, para complementar a restauração de áudio:

nano ~/.config/autostart/restaurar-audio.desktop

Coloque dentro:

 [Desktop Entry]
Type=Application
Name=Restaurar Volume Universal
Exec=alsactl restore
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel

Se o seu microfone fica também com essa de não voltar ao volume configurado:

nano ~/.config/autostart/travar-microfone.desktop 

Coloque dentro (configurando para 85% do volume total):

 [Desktop Entry]
Type=Application
Name=Fixar Volume do Microfone
Exec=amixer set Capture 85%
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true

Salve com ctrl+o e feche com ctrl+x em ambos os exemplos. Agora basta colocar os níveis de acordo com a sua necessidade e reiniciar a máquina.

Tirando o chiado de gravações de microfones

Aqui vamos habilitar um recurso do Pipewire que é o filtro de ruídos para o microfone e que, usado em conjunto do filtro de ruídos do OBS-Studio deixa o som gravado do microfone limpinho; e pra quem não consegue usar o OBS na máquina, só esse filtro já tira 80% da chiadeira de fundo.

Usando o pipewire original 

No Terminal, digite:

mkdir -p ~/.config/pipewire

cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/

nano ~/.config/pipewire/pipewire.conf 

Procure pelo item:

context.objects = [
    #{ factory = <factory-name>
    #    ( args  = { <key> = <value> ... } )
    #    ( flags = [ ( nofail ) ] )
    #    ( condition = [ { <key> = <value> ... } ... ] ) 

 e coloque ANTES de "context.objects":

 { name = libpipewire-module-echo-cancel
  args = {

    capture.props = {
      node.name = "mic_capture"

      audio.channels = 1
      audio.position = [ MONO ]
    }

    source.props = {
      node.name = "mic_source"
      node.description = "Microfone Filtrado"

      audio.channels = 1
      audio.position = [ MONO ]
    }

    sink.props = {
      node.name = "audio_sink"
      node.description = "Saida Filtrada"
    }

    playback.props = {
      node.name = "audio_playback"
    }
  }
}
]

Deverá então ficar assim (a parte em azul já existe no arquivo e a parte verde é a nova, atenção aos colchetes!):

            }
        }
        flags = [ ifexists nofail ]
        condition = [ { module.jackdbus-detect = true } ]
    }

{ name = libpipewire-module-echo-cancel
  args = {

    capture.props = {
      node.name = "mic_capture"

      audio.channels = 1
      audio.position = [ MONO ]
    }

    source.props = {
      node.name = "mic_source"
      node.description = "Microfone Filtrado"

      audio.channels = 1
      audio.position = [ MONO ]
    }

    sink.props = {
      node.name = "audio_sink"
      node.description = "Saida Filtrada"
    }

    playback.props = {
      node.name = "audio_playback"
    }
  }
}

]

context.objects = [
    #{ factory = <factory-name>
    #    ( args  = { <key> = <value> ... } )
    #    ( flags = [ ( nofail ) ] )
    #    ( condition = [ { <key> = <value> ... } ... ] ) 
 

Novamente, atenção ao único colchete que vai mudar de lugar. No arquivo original a parte que vem antes do "context_objects" está assim:

            }
        }
        flags = [ ifexists nofail ]
        condition = [ { module.jackdbus-detect = true } ]
    } 

context.objects = [
    #{ factory = <factory-name>
    #    ( args  = { <key> = <value> ... } )
    #    ( flags = [ ( nofail ) ] )
    #    ( condition = [ { <key> = <value> ... } ... ] )
    #}

Esse colchete marcado em azul vai "sumir" para dar lugar ao conteúdo em verde e esse colchete vai para o final desse mesmo conteúdo em verde (olhe lá mais pra cima). Se isso não for feito a configuração não vai funcionar. Basta então reiniciar o sistema. Se não funcionar (ficar sem som) basta apagar o arquivo que está em ~./config/pipewire/. Se funcionou, abra o seu "Painel de Controle" e selecione lá na parte de som o "Microfone Filtrado" para a entrada de microfone. No Controle de Volume do XFCE seria algo assim (atenção às entrada e saída selecionadas):

Saída (áudio interno analógico):

 Entrada (dispositivo de entrada):


Com isso o seu som deverá voltar ao normal ou, pelo menos, ficar mais estável, principalmente com máquinas mais antigas.

domingo, 5 de julho de 2026

Instalando a versão mais nova do Auto Editor, corrigindo erros e exportação de timeline

Instalando a versão mais nova do Auto Editor 

Eu já publiquei aqui uma dica de como usar o Auto Editor, que é um programa de linha de comando no Linux para cortar trechos sem áudio de vídeos e depois juntar tudo ao final, muito útil para quem faz tutoriais de qualquer tipo e não quer passar pela chatice de ter que editar o vídeo cortando as passagens de pausas e de procura às vezes necessárias para dar consistência ao que está sendo gravado.

No Debian, a versão 25 funciona que é uma maravilha mas pode ocorrer de, ao final da edição pelo Auto Editor, ser "brindado" com frames pretos ao longo do vídeo por algum erro na concatenação das partes do vídeo uma vez terminada a tarefa de exclusão dos trechos com áudio em branco.

No Debian a versão disponível é justamente a 25 e é aqui que vamos ver como colocar a versão mais nova do Auto Editor e configurar as coisas para rodarem de forma lisa. Se você não tem o Auto Editor, vá nessa minha dica no Viva o Linux.

Primeiro, caso você não o tenha, instale o Auto Editor com o comando:

sudo apt install auto-editor
 
Isso vai instalar o programa mais as dependências necessárias. Depois, 
vá em nesse site e baixe a versão mais nova, que é a 31.1.2 na postagem dessa dica. Uma vez baixado, copie o arquivo baixado (auto-editor-linux-x86_64) para a pasta /usr/bin/:

sudo cp /caminho_do_arquivo_baixado/auto-editor-linux-x86_64 /usr/bin/auto-editor

Agora a versão 31.1 exporta o timeline para KDEnLive sem erros, além de manter as opções de ShotCut, Premiere, DaVinci Resolve e Final Cut Pro. Para exportar para o KDEnLive via linha de comando, estando na pasta do vídeo que se quer editar:

auto-editor arquivo_de_vídeo.mkv ou .mp4 --margin 0.30s --export kdenlive

Para fazer algo mais "funcional" em vez de exportar, deixando o próprio Auto Editor criar o arquivo final editado:

auto-editor arquivo_de_vídeo.mkv ou .mp4 --margin 0.30s -crf 32 -b:a 128K -preset medium

O comando de exportação cria então o arquivo .mlt para ser aberto do ShotCut e .kdenlive para ser aberto no KdenLive. Outras opções de exportação e parâmetros de configuração (como margin) podem ser vistas usando o "--help" para mais informações. Assista ao vídeo abaixo e leia a dica citada mais acima (que tem um vídeo explicativo também) para ver como implementar as opções de menu de contexto do seu ambiente gráfico.

 


quarta-feira, 1 de julho de 2026

Gamemode, o "viagra" para quem quer um aumento de performance temporário para jogos e programas

Aumente a performance da sua máquina temporariamente 

 O Gamemode é um script criado pela empresa Feral Interactive para seus jogos portados para Linux e depois liberaram para que terceiros ou outras ferramentas pudessem desenvolvê-lo/usá-lo. E não só para jogos, qualquer programa de uso mais pesado pode se beneficiar do Gamemode. Funciona? Sim, até certo ponto. O que o Gamemode faz?

  1. Ativa o modo performance do governor do processador: Permite que o processador "acorde" e entregue mais velocidade de processamento (processadores mais antigos) e que não comprometa a integridade elétrica e térmica do mesmo (mais novos);
  2. Muda a prioridade de processos: A prioridade dos processos (criação, execução, finalização e gerenciamento) em relação ao programa/jogo "turbinado" é colocado em primeiro lugar em relação aos outros processos em segundo plano;
  3. Aplicação de perfis de performance em placas de vídeo: Se o sistema permitir, é possível aplicar modos de performance em placas de vídeo como nVidia;
  4. Desabilita "frescuras de desktop": Pode também desabilitar compositores do desktop, tela de login, screensaver ou outra funcionalidade que possa atrapalhar o uso da máquina, principalmente quando se usa joystick e o teclado e mouse ficam sem uso.
O gamemode é ativado por demanda, ou seja, você precisa especificar o programa ou jogo para ele poder ser executado. Assim, para executar um programa ou jogo deve-se digitar (exemplo com o Gimp):

gamemoderun gimp

Para ver se o gamemode está rodando algo:

gamemoded -s

Para saber os PIDs que estão rodando via Gamemode:

grep -l "libgamemode" /proc/*/maps 2>/dev/null | cut -d'/' -f3 | xargs ps -o pid,comm -p | grep -v "PID COMMAND"

Para instalá-lo:

sudo apt install gamemode

Se utilizar o Synaptic, instale também o widget para Gnome Shell e Plasma, conforme imagem abaixo:
 

Os jogos da Steam costumam detectar se o daemon do gamemode está rodando; nesse caso, o próprio jogo se encarrega de habilitar esse "modo viagra" para poder ter mais fluidez de uso.

Atenção que isso não é um overclock, o Gamemode apenas ativa partes do sistema (hardware/software) que em instalações normais não estão.

E não rode mais de um jogo e/ou programa ao mesmo tempo pois isso tira a premissa original de fazer com que a atenção do sistema seja dada a apenas uma tarefa. Habilitando o Gamemode para mais de uma aplicação, a atenção para essas aplicações (jogo ou programa) até vai funcionar mas elas vão dividir a atenção do Gamemode.
 
E também o Gamemode só será "sentido de verdade" se a máquina do usuário já não estiver com alguma configuração de otimização ativa, como o uso de kernels customizados (XanMod, Liquorix, etc) que já tem por padrão o governor de processador ativado em performance, que é a principal mudança que o gamemode faz no sistema.



segunda-feira, 29 de junho de 2026

Habilitando o modo "performance" do processador no Debian

Habilitando o modo "performance" do processador 

Há vários kernels customizados para serem instalados e alguns dos mais famosos são o Zen, Liquorix e XanMod, cada um deles com otimizações mais agressivas do que o chamado kernel stock que as distribuições decidem usar nos seus lançamentos. E, realmente, instalando-os em uma máquina com uma distribuição padrão, pode-se mesmo conseguir uma performance superior em relação ao kernel original, como nos exemplos abaixo.

Kernel "normal" do Debian x Kernel XanMod

Kernel "performance" no Debian x Kernel XanMod

O "grande segredo" desses kernels customizados é simplesmente a mudança do governor usado no processador que, na maioria das vezes, está em modo "schedutil"; mesmo que haja outras configurações mais agressivas de gerenciamento de memória e de processos, a principal mudança é realmente do governor.
O governor é o modo como o processador - junto do kernel/sistema - gerencia a velocidade da frequência de operação, que tem nos processadores de hoje a definição de "clock base", aquele em que o processador trabalha com as demandas de processamento dentro das especificações técnicas de dissipação e energia no clock base medidos na fábrica. Se durante o uso o processador "notar" que há margem para dar mais desempenho ele entra no "modo boost", elevando o clock, uso de energia e de dissipação de calor dentro do suportável pelo processador sem que ele pegue fogo. Isso não é overclock já que o mesmo não está sendo forçado a funcionar acima de suas capacidades.

Os modos dos governors são:

  1. Performance: deixa o processador o tempo todo no clock máximo (processadores mais antigos) ou clock base (mais novos);
  2. Schedutil: o padrão, quem controla o clock é o kernel junto do processador;
  3. Powersave: o modo de economia de energia no clock mínimo e que não sobe muito mais mesmo tendo margem para isso, muito usado em notebooks.
Uma máquina já em modo governor performance basicamente não terá tanta melhora do que uma máquina sem o recurso habilitado, o problema é que os kernels customizados costumam estar bem acima da linha adotada de versão de kernel pela distribuição e isso pode fazer com que periféricos parem de funcionar adequadamente e que antes funcionavam.

É possível verificar a condição do governor usando o comando abaixo:

[cmd] echo "performance" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor [/cmd] Irá aparecer o governor ativo junto do número de núcleos da sua máquina.

Podemos então fazer com que o modo performance seja ativado (ou escolhido) conforme a necessidade do usuário sem precisar usar um kernel customizado. Para fazer isso, abra o Terminal e vamos criar o serviço cpufreq.service:

sudo nano /etc/systemd/system/cpufreq.service

Coloque dentro e depois salve com CTRL+O e feche com CTRL+X:

[Unit] Description=Configurando o CPU governor para performance After=multi-user.target [Service] Type=oneshot ExecStart=/bin/sh -c 'for cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > "$cpu"; done' RemainAfterExit=yes [Install] WantedBy=multi-user.target

E depois:

sudo systemctl daemon reload sudo systemctl enable cpufreq.service sudo systemctl start cpufreq.service

Se você tiver algum gadget de monitoramento (como o Conky) verá a frequência do processador de variável mudar para uma fixa mais alta e ali permanecer, com a diferença de que nos processadores antigos fica no máximo (a estampada no IHL do processador) e nos mais novos com a tecnologia que vou citar mais a frente vai mudar da mais alta do clock base para a frequência de operação em modo boost do processador. Só lembrando que tanto o modo EIST (Enhanced Intel SpeedStep Technology da Intel para processadores mais antigos ou o equivalente para AMD) quanto o Turbo Boost e Precision Boost (Intel e AMD) e suas variantes precisam estar ativos na bios da placa-mãe.

É claro que podemos ativar outros modos de governor; de repente o usuário quer botar o modo schedutil em um notebook que funciona em modo powersave para dar mais rapidez à máquina. Para isso basta ir no arquivo cpufreq.service mudar o que está em negrito para o estado que se quer que o sistema trabalhe - performance, schedutil ou powersave.

Também tenha em mente que sair do modo schedutil "padrão" para o performance aumenta o consumo de energia mas essa mudança deixa a máquina mais "esperta" nos momentos de demanda de processamento pois não há atraso no aumento da frequência de operação do processador.

E atenção que não estou com esse artigo querendo desmerecer o trabalho de quem se presta a manter esses kernels alternativos, mesmo porque se eles realmente não melhorassem algo no sistema esse pessoal não perderia tempo com o desenvolvimento e manutenção deles.