Como criar um make.conf no Gentoo (para iniciantes)

Artigo de ajuda para iniciantes sobre como organizar o seu arquivo make.conf no Gentoo Linux.

[ Hits: 125 ]

Por: Xerxes em 24/02/2026


Introdução



O arquivo /etc/portage/make.conf é o coração do Gentoo Linux. É nele que você define como o sistema inteiro será compilado e otimizado para a sua máquina. Uma configuração "cagada" pode resultar em um sistema lento ou quebradiço, enquanto um arquivo feito com atenção tem potencial de extrair um melhor desempenho do hardware.

Neste artigo, vamos construir esse arquivo do zero com muita calma. Começaremos com uma versão genérica e segura para usar durante a instalação do sistema e, em seguida, evoluiremos para uma configuração mais otimizada e robusta.

1. O make.conf Genérico (Para a Instalação)

Durante a fase de instalação (o chroot), o seu objetivo principal não é o desempenho ainda, mas sim a estabilidade. Se você usar flags de compilação muito agressivas nesta etapa e algo falhar, você terá muita dor de cabeça para consertar o sistema base.

Portanto, recomendo um padrão seguro e compatível com praticamente qualquer processador moderno de 64 bits. A única coisa que já vamos adiantar aqui é a sua placa de vídeo, para que o sistema já baixe os drivers corretos desde o início.

Copie e cole este modelo, ajustando apenas as variáveis indicadas:

# /etc/portage/make.conf (Versão Genérica)

# Otimizações básicas e seguras de CPU (Compatível com qualquer 64 bits moderno)
COMMON_FLAGS="-O2 -march=x86-64 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# Uso de Threads do Processador
# A regra padrão é: número de threads do seu processador + 1. 
# Se o seu processador tem 4 núcleos e 8 threads, use -j8.
# O -l (load average) ajuda a não travar a máquina, limitando o peso.
MAKEOPTS="-j4 -l4"

# Placa de Vídeo
# Como você já sabe qual é a sua placa, defina-a aqui. 
# Exemplos comuns: "amdgpu radeonsi" (AMD modernas), "intel i915" (Intel), 
# "nouveau" (Nvidia código aberto) ou "nvidia" (Nvidia proprietário).
VIDEO_CARDS="insira_sua_placa_aqui"

# Idioma do sistema e aceitação de licenças
LC_MESSAGES=C.utf8
ACCEPT_LICENSE="*"

Com esse arquivo, você pode compilar o Kernel e o sistema base e dificilmente terá problemas.

2. Conhecendo o seu Hardware

Depois que o sistema Gentoo base estiver instalado e você já tiver feito o primeiro boot (ou se você já tem um Gentoo rodando), é a hora de abandonar a versão genérica. Para otimizar, precisamos conhecer a CPU.

A. Descubra a arquitetura exata do seu processador.

O GCC (compilador) pode analisar sua CPU e dizer qual é a flag arquitetural exata dela.

Execute:

gcc -c -Q -march=native --help=target | grep march

Anote o resultado. Pode ser algo como znver2 (AMD Zen 2), haswell (Intel antigo), alderlake, etc.

Exemplo:

-march= znver2

B. Obtenha as flags de instrução da CPU.

Instale uma ferramenta do próprio Gentoo que lê todas as tecnologias que seu processador suporta (como AVX, SSE, AES, etc.):

emerge -av app-portage/cpuid2cpuflags
cpuid2cpuflags

Anote a longa linha que começará com CPU_FLAGS_X86... 

Exemplo:

CPU_FLAGS_X86: aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3

C. Verifique sua Memória RAM.

Uma compilação agressiva consome muita RAM. Saiba de fato quanto você tem para evitar travamentos durante a compilação.

free -h

Exemplo:

total usada livre compart. buff/cache disponível
Mem.: 31Gi 7,6Gi 2,0Gi 316Mi 22Gi 23Gi
Swap: 31Gi 0B 31Gi

3. O make.conf Otimizado (Exemplo Real)

Agora vamos juntar tudo. Abaixo, trago o exemplo de um ambiente de desempenho de moderado a bom nos dias de hoje, baseado em um AMD Ryzen 7 (Zen 2) com 16 threads, 32GB de RAM, vídeo AMDGPU e ambiente KDE Plasma com Systemd. Entenda cada bloco para poder adaptar à sua realidade:

# -----------------------------------------------------------------
# 1. OTIMIZAÇÕES DE CPU
# Substitua "znver2" pelo resultado que você anotou no Passo 2.A
# O parâmetro "-pipe" usa a RAM em vez do disco para acelerar a compilação.
# -----------------------------------------------------------------
COMMON_FLAGS="-O2 -march=znver2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# Aplica a mesma arquitetura para pacotes escritos na linguagem Rust
RUSTFLAGS="-C target-cpu=znver2 -C opt-level=2"

# -----------------------------------------------------------------
# 2. THREADS E MEMÓRIA
# Temos 16 threads e muita RAM (32GB). É seguro usar força máxima.
# -----------------------------------------------------------------
MAKEOPTS="-j16 -l16"

# -----------------------------------------------------------------
# 3. TECNOLOGIAS DO PROCESSADOR E HARDWARE
# Cole aqui o resultado exato gerado pelo comando cpuid2cpuflags no Passo 2.B
# -----------------------------------------------------------------
CPU_FLAGS_X86="aes avx avx2 bmi1 bmi2 f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3"

# Vídeo, Dispositivos de Entrada e Bootloader (UEFI)
VIDEO_CARDS="amdgpu radeonsi"
INPUT_DEVICES="libinput"
GRUB_PLATFORMS="efi-64"

# -----------------------------------------------------------------
# 4. COMPORTAMENTO DO SISTEMA E USE FLAGS GLOBAIS
# Definições que afetam todo o sistema. Aqui estamos focando em 
# uma base moderna usando Systemd, Wayland e KDE Plasma.
# O sinal de menos (-) desativa um recurso (ex: -elogind).
# -----------------------------------------------------------------
LC_MESSAGES=C.utf8
ACCEPT_LICENSE="*"
USE="systemd dbus polkit wayland server -elogind -webengine -kaccounts"

# -----------------------------------------------------------------
# 5. RECURSOS AVANÇADOS DO PORTAGE (GERENCIADOR DE PACOTES)
# Estas flags mudam o jogo. 
# parallel-fetch: Baixa o próximo pacote enquanto ainda compila o atual.
# parallel-install: Instala o pacote na raiz do sistema mais rapidamente.
# getbinpkg / buildpkg: Tenta usar pacotes binários oficiais e cria backups locais.
# -----------------------------------------------------------------
FEATURES="getbinpkg buildpkg parallel-fetch parallel-install"
EMERGE_DEFAULT_OPTS="--binpkg-respect-use=y --getbinpkg=y --jobs=4 --load-average=16 --keep-going"

Salvando sua Memória RAM em caso de Pacotes Gigantes

Alguns usuários de Gentoo montam a pasta /var/tmp/portage (onde a compilação acontece) na memória RAM (usando tmpfs) para que tudo seja compilado na velocidade da luz, poupando o SSD de desgaste.

Isso é bom, mas pode criar um Problema: se você tem 16GB de RAM reservados para o tmpfs e usa um MAKEOPTS="-j16" (16 tarefas simultâneas), a compilação de "monstros" como rust, firefox, llvm ou qtwebengine vai estourar o limite do seu tmpfs, gerando erro de "No space left on device" (Falta de espaço) ou travando a máquina inteira.

Há como prevenir esse problema sem diminuir a velocidade geral do sistema. Em vez disso, a gente cria uma exceção ensinando o Gentoo a compilar apenas esses pacotes pesados diretamente no disco físico, usando menos threads.

Crie uma pasta no disco físico (SSD/HD):

mkdir -p /var/cache/portage-tmpdir
chown portage:portage /var/cache/portage-tmpdir
chmod 775 /var/cache/portage-tmpdir

Crie um arquivo de "Ambiente Alternativo" (Environment):

Vamos criar um arquivo chamado notmpfs.conf. Nele, diremos ao Portage para mudar o diretório de compilação para a pasta que acabamos de criar, e limitar o uso do processador pela metade (ex: 8 threads) para não congelar o uso do PC durante horas.

mkdir -p /etc/portage/env
echo 'PORTAGE_TMPDIR="/var/cache/portage-tmpdir"' > /etc/portage/env/notmpfs.conf
echo 'MAKEOPTS="-j8 -l8"' >> /etc/portage/env/notmpfs.conf

Vincule os pacotes gigantes a este ambiente:

Agora criamos o arquivo que diz quais pacotes devem obedecer a essa regra de exceção.

mkdir -p /etc/portage/package.env
cat < /etc/portage/package.env/notmpfs
dev-lang/rust notmpfs.conf
sys-devel/llvm notmpfs.conf
sys-devel/clang notmpfs.conf
sys-devel/gcc notmpfs.conf
www-client/firefox notmpfs.conf
dev-qt/qtwebengine notmpfs.conf
EOF

Pronto! Todo o sistema continuará sendo compilado normalmente na RAM (foi esse o motivo que me fez comprar 32Gb de RAM em 2022), mas quando chegar a vez do firefox ou do rust, o Portage automaticamente passará a compilar no disco de forma mais conservadora, evitando que o sistema trave.

    Próxima página

Páginas do artigo
   1. Introdução
   2. USE Flags
Outros artigos deste autor

A Origem dos Nomes (parte 2)

Instalação do Dspace no CentOS

Melhorando a experiência com Cinnamon no LMDE

Com vocês, Larry, a vaca

LAMP no Debian 8 (Apache 2, PHP 5 e MariaDB)

Leitura recomendada

Aprimoramento de Desempenho da Instalação Debian

Driver nVidia se sua placa tem chipset da SiS

Monitoração com Zabbix no Debian Squeeze

GRUB com imagens aleatórias e KDM com vídeo de fundo

Configurando o DNS - BIND9

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts