Instalando Pipeware (Áudio)(Opcional)
Não desinstale o Pulseaudio nem o alsa-plugins-pulseaudio, o Cinnamon e o Pipewire precisam das biliotecas deles, pois o Pipewire funcionará por cima do Pulseaudio.
O Pipewire no Void com Cinnamon é bem xarope de configurar, pois tem uma sequência rigorosa para ser respeitada, senão depois até os vídeos do Youtube travarão com o círculo girando porque o aplicativo do Youtube fica esperando o áudio sincronizar.
sudo xbps-install -Syu
Instalando primeiro dumb_runtime_dir que cria permanentemente a variável de ambiente XDG_RUNTIME_DIR no login:
sudo xbps-install -S dumb_runtime_dir
sudo xbps-install -S pipewire wireplumber alsa-pipewire libjack-pipewire libspa-bluetooth bluez-alsa pavucontrol
Configurando o Alsa
sudo mkdir -p /etc/alsa/conf.d
sudo ln -s /usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/
sudo ln -s /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
Entre no arquivo:
sudo vim /etc/pulse/client.conf
Descomente e altere a linha:
; autospawn = yes
para
autospawn = no
Salve e saia.
Testando:
pipewire
Abra outro terminal:
pactl info
String do servidor: /run/user/1000/pulse/native
Versão do protocolo da biblioteca: 35
Versão do protocolo do servidor: 35
É local: sim
Índice do cliente: 72
Tamanho de fragmento: 65472
Nome do usuário: kluster
Nome da máquina: servidor
Nome do servidor: PulseAudio (on PipeWire 1.6.2)
Versão do servidor: 15.0.0
Especificação padrão de amostragem: float32le 2ch 48000Hz
Mapa de canais padrão: front-left,front-right
Destino padrão: alsa_output.pci-0000_00_1f.3.analog-stereo
Fonte padrão: alsa_input.pci-0000_00_1f.3.analog-stereo
Cookie: 8f49:7efe
Veja a linha "Nome do servidor: PulseAudio (on PipeWire 1.6.2)" diz que a configuração no Void
Linux está 100% correta.
O sistema está usando o PipeWire como motor principal, o Pipewire-pulse como a ponte para que aplicativos antigos (que ainda procuram pelo PulseAudio) funcionem sem problemas e o Wireplumber, por último, assumindo a gestão.
wpctl status
PipeWire 'pipewire-0' [1.6.2, kluster@servidor, cookie:2403958526]
└─ Clients:
34. pipewire [1.6.2, kluster@servidor, pid:1474]
35. Cinnamon Volume Control Media Keys [1.6.2, kluster@servidor, pid:1245]
37. WirePlumber [1.6.2, kluster@servidor, pid:1508]
49. WirePlumber [export] [1.6.2, kluster@servidor, pid:1508]
50. Cinnamon Volume Control [1.6.2, kluster@servidor, pid:1424]
67. wpctl [1.6.2, kluster@servidor, pid:1757]
Audio
├─ Devices:
│ 51. HDA NVidia [alsa]
│ 52. Áudio interno [alsa]
│
├─ Sinks:
│ * 36. Áudio interno Estéreo analógico [vol: 0.63]
│ 59. HDA NVidia Estéreo digital (HDMI) [vol: 0.40]
│
├─ Sources:
│ 48. Áudio interno Estéreo analógico [vol: 1.00]
│
├─ Filters:
│
└─ Streams:
Video
├─ Devices:
│
├─ Sinks:
│
├─ Sources:
│
├─ Filters:
│
└─ Streams:
Settings
└─ Default Configured Devices:
Para parar tecle Ctrl+c e pode fechar o outro terminal.
Agora temos que criar três arquivos .desktop pela interface gráfica do Cinnamon para que os serviços iniciem com o sistema, não adianta criar pelo Vim ou pelo Nano que o Cinnamon não aceita e não adianta criar os links simbólicos porque o Cinnamon ignora eles.
Você pode até apagar os três arquivos .desktop, se quiser, em /usr/share/applications porque o Cinnamon só enxerga os arquivos criados pela interface gráfica.
No Void Linux, como não há um "systemd --user" para "empurrar" o Pipewire goela abaixo do sistema, a gestão via interface é o caminho mais seguro.
Cuide com as maiúsculas e minúsculas.
1)
Menu > Todos os Aplicativos > Aplicativos da Inicialização > Não apague nada do que estiver ali, clique em + > Comando personalizado > Na janela que abrir-se-á, no campo "Nome" digite Pipewire; em "Comando" digite pipewire > Salvar.
2)
Mesmo caminho inicial > No campo "Nome" digite Pipewire-Pulseaudio, em "Comando" digite pipewire-pulse e em "Atraso para iniciar" coloque 1 > Salvar.
3)
Mesmo caminho inicial > No campo "Nome" digite Wireplumber, no campo "Comando" digite wireplumber e no campo "Atraso para iniciar" coloque 2 > Salvar.
A sequência de inicialização deve ser rigorosamente Pipewire > Pipewire-Pulseadutio > Wireplumber.
Reinicie o sistema que o ícone do áudio aparecerá no canto direito da barra de tarefas.
Para conferir se subiram na ordem correta:
ps -o pid,lstart,cmd -C pipewire,pipewire-pulse,wireplumber
PID STARTED CMD
1468 sáb abr 18 13:12:17 2026 /usr/bin/pipewire
1565 sáb abr 18 13:12:19 2026 /usr/bin/pipewire-pulse
1573 sáb abr 18 13:12:20 2026 /usr/bin/wireplumber
Em caso de problemas verifique os diretórios /usr/share/applications/ e ~/.config/autostart para ver se tem arquivos repetidos.
Só pode ter em ~/.config/autostart os três arquivos .desktop do Pipewire criados pela interface gráfica.
Codecs
Deixo alguns codecs para aprimorar a experiência no áudio:
sudo xbps-install -S ffmpeg gst-plugins-base1 gst-plugins-good1 alsa-plugins alsa-plugins-jack alsa-plugins-pulseaudio alsa-plugins-samplerate alsa-plugins-ffmpeg alsa-plugins-speex gst-plugins-base1 gst-plugins-good1 gst-plugins-bad1
PipeWire
INSTALANDO NAVEGADORES
Firefox
sudo xbps-install -y firefox firefox-i18n-pt-BR
Caso quiser com mais linguagens:
sudo xbps-install firefox-esr firefox-esr-i18n
Google-Chrome
sudo xbps-install -Syu
sudo xbps-install -S base-devel git xtools
git clone https://github.com/void-linux/void-packages
cd void-packages
./xbps-src binary-bootstrap
echo XBPS_ALLOW_RESTRICTED=yes >> ~/void-packages/etc/conf
./xbps-src pkg google-chrome
sudo xbps-install --repository=/home/$USER/void-packages/hostdir/binpkgs/nonfree google-chrome
sudo xbps-install -Syu
https://medium.com/@leandroembu/usando-o-xbps-src-no-void-linux-29550897f66
xcheckrestart
CONFIGURANDO VÍDEO
Identifique sua placa (se não souber):
lspci | grep -i VGA
Instale o driver correto de acordo com a placa de vídeo (instale somente um: ou AMD ou Nvidia ou Intel).
AMD:
sudo xbps-install -S xf86-video-amdgpu linux-firmware-amd mesa-ati-dri mesa-dri mesa-vulkan-radeon mesa-vaapi mesa-vdpau linux-firmware-amd
Nvidia:
sudo xbps-install nvidia mesa-dri mesa-vdpau mesa-vaapi
Intel:
sudo xbps-install -S xf86-video-intel mesa-intel-dri
Reinicie:
sudo reboot
Instalando codecs de áudio e vídeo (vídeos em geral e Youtube):
sudo xbps-install -S gst-plugins-base1 gst-plugins-good1 gst-plugins-bad1 gst-plugins-ugly1 gst-libav ffmpegthumbnailer
Instalando Chrony (NTP)
sudo xbps-install chrony
ln -s /etc/sv/chronyd /var/service/
sudo sv enable chronyd
sudo sv start chronyd
E ele já deverá sincronizar o relógio do sistema.
Para configurar altere o arquivo:
sudo /etc/chrony.conf
Instalando Cronie (Cron)
sudo xbps-install -y cronie cronutils
sudo ln -s /etc/sv/cronie /var/service/
Defina o editor de texto padrão, senão o comando "crontab -e" abrirá o vi e você nunca mais conseguirá fechá-lo.
sudo vim ~/.bashrc
Coloque no final:
export EDITOR='vim' # caso preferir coloque o nano ou outro.
export VISUAL='${EDITOR}'
Salve e saia.
Recarregando:
source ~/.bashrc
Agora, ao executar "crontab -e" abrirá o editor definido no arquivo, no caso, o vim.
Para abrir momentaneamente com outro editor execute:
EDITOR=nano crontab -e
Se tu colocou vim no arquivo, o cronie abrirá com o nano somente dessa vez.
O cronie do Void também suporta a execução de scripts em intervalos regulares colocando-os nas seguintes pastas que são instaladas automaticamente ao instalar o cronie:
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
Certifique-se de que os scripts nessas pastas tenham permissão de execução (chmod +x arquivo).
Exemplo:
sudo vim /etc/cron.weekly/script.sh
sudo chmod +x /etc/cron.weekly/script.sh
Os comandos dentro do script.sh serão executados uma vez por mês.
Editar tarefas do usuário atual:
crontab -e
Listar tarefas:
crontab -l
A sintaxe é a mesma do Cron:
# m h dom mon dow comando
* * * * * /path/to/script.sh
Abra o arquivo:
crontab -e
Coloque dentro como cabeçalho permanente:
# Crontab
#
# Sintaxe:
# m h dom mon dow comando
# * * * * * /path/to/script.sh
# m = minutos
# h = horas
# dom = dia do mes (1-31)
# mon = Mes (1-12)
# dow = dia da semana (0-6, domingo=0)
#
# Formato 24 horas: meia noite=00, 11 da noite=23, 3 da tarde=15
# Exemplo para executar script todo dia as 03:30 AM:
# 30 03 * * * /home/usuario/scripts/backup.sh
#
Salve e saia.
source ~/.bashrc
NFTABLES
Instalando e configurando um firewall básico.
sudo xbps-install -Su
sudo xbps-install nftables runit-nftables
Criando o arquivo de configuração com regras básicas:
sudo vim /etc/nftables.conf
Coloque dentro:
#!/usr/sbin/nft -f
flush ruleset
############################
# FILTER
############################
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Loopback
iif lo accept
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
tcp dport { 22, 80, 443 } ct state new accept
# DHCP
udp dport {67,68} accept
ip protocol icmp accept
}
chain forward {
type filter hook forward priority 0; policy drop;
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
# LAN -> Internet
iifname "eno2" oifname "enp3s0" accept
# (Opcional) LAN -> LAN roteado
iifname "eno2" oifname "eno2" accept
# DHCP
udp dport {67,68} accept
# Ajuste de MSS (evita problemas de carregamento de páginas)
tcp flags syn tcp option maxseg size set rt mtu
ip protocol icmp accept
}
chain output {
type filter hook output priority 0; policy drop;
# Conexoes ja estabelecidas
ct state invalid drop
ct state established,related accept
tcp dport { 22, 80, 443 } ct state new accept
# DNS
udp dport 53 accept
tcp dport 53 accept
# NTP/NTS
udp dport 123 accept
tcp dport 4460 accept
# DHCP (cliente, se aplicavel)
udp dport 67 accept
udp sport 68 accept
ip protocol icmp accept
}
}
############################
# NAT
############################
table ip nat {
chain prerouting {
type nat hook prerouting priority 0;
}
chain postrouting {
type nat hook postrouting priority 100;
# Masquerade para a internet
# oifname "enp3s0" masquerade
}
}
Salve e saia.
Ativando o serviço:
sudo ln -s /etc/sv/nftables /var/service/
Verificando erros no arquivo /etc/nftables.conf, caso retornar sem erros, está tudo certo:
sudo nft -f /etc/nftables.conf
Listando as regras, aparecendo as regras, o nftables está funcionando:
sudo nft list ruleset
Habilitando e iniciando:
sudo sv enable nftables
sudo sv start nftables
ok: run: nftables: (pid 18550) 0s
Daí você pode:
sudo sv start nftables
sudo sv stop nftables
sudo sv restart nftables
sudo sv status nftables
Se você configurar as regras via linha de comando (comando nft) e quiser torná-las permanentes no arquivo, use:
sudo nft list ruleset | sudo tee /etc/nftables.conf
Habilitando o roteamento, caso quiser:
sudo mkdir -p /etc/sysctl.d
sudo vim /etc/sysctl.d/10-custom.conf (O número antes do arquivo você escolhe, mas significa a ordem de leitura, quanto menor mais cedo será lido em relação aos outros arquivos ali presentes.
Coloque dentro:
net.ipv4.ip_forward = 1
Salve e saia.
Aplique todas as configurações:
sudo sysctl --system
ou
Aplique somente o arquivo:
sudo sysctl -p /etc/sysctl.d/10-custom.conf