xiva-meta-audio-config - Manjaro e Arch Linux

Olá, pessoal! O "Barnabé de Cartola", um dos desenvolvedores do projeto XiVA, fez um "meta pacote" de configurações para preparar o sistema para produção musical no Manjaro e Arch Linux.
Abaixo ele descreve o que o meta pacote xiva-meta-audio-config faz e como reproduzir os passos manualmente. Esse meta pacote foi criado única e exclusivamente para Manjaro e Arch Linux, para outros sistemas operacionais precisa de formas diferentes de fazer a mesma coisa.

Download: 
https://github.com/BarnabediKartola/xiva-meta-audio-config/raw/main/xiva-meta-audio-config-1.0.0-9-any.pkg.tar


- Instala o meta pacote realtime-privileges
pamac install realtime-privileges
Obs: esse pacote cria o arquivo /etc/security/limits.d/99-realtime.conf + uma lib, um rules e cria o grupo realtime.

- Instala o cpupower-gui + trayicon, pacote que controla o escalonamento da cpu
pamac install cpupower-gui libappindicator-gtk3

- Seta o cpupower a fazer o escalonamento em todas as CPUs, por padrão ele só escalona a cpu0 com o comando:
sudo sed -i '/allcpu/s/=.*$/= True/' /etc/cpupower_gui.conf

- Tem um verificador que verifica se o processador for intel, desabilita o auto-escalonador pstate e transfere o escalonamento para manual. O comando para desabilitar o pstate é:
sudo sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/s/\"/ intel_pstate=disable"/2' /etc/default/grub
sudo update-grub
Obs: Reiniciar o computador após essa etapa.
Obs: O pstate é muito para conservação de bateria de notebooks, mas péssimo para extrair o máximo de potencia do processador, com o cpupower-gui vc fica no controle, indico usar o modo schedutil como governador. Após a instalação e configuração, use o programa cpupower-gui (que vc vai encontrar no menu "iniciar" na sessão configurações) para mudar o governador do seu CPU

- Instala as libs de audio/video:
pamac install a52dec faac faad2 flac jasper lame libdca libdv libmad libmpeg2 libtheora libvorbis libxv opus wavpack x264 xvidcore

- Adiciona o usuário aos grupos audio e realtime:
usermod -a -G realtime $USER
usermod -a -G video $USER

-Verifica se tem placa de audio PCI e adiciona prioridade as mesmas:
setpci -v -d *:* latency_timer=b0
for i in $(lspci | grep -i audio | awk '{print $1}'); do sudo setpci -v -s $i latency_timer=ff; done

- Habilitar PAM no login com os comandos:
echo "session required pam_limits.so" | sudo tee -a /etc/pam.d/login
echo "session required pam_limits.so" | sudo tee -a /etc/pam.d/polkit-1
echo "session required pam_limits.so" | sudo tee -a /etc/pam.d/system-services


- O meta também trás alguns arquivos de configuração e um service do systemD.  Para criar manualmente os comandos são:
#Increasing the maximum watches on files to 6000:
echo fs.inotify.max_user_watches = 600000 | sudo tee /etc/sysctl.d/90-max_user_watches.conf


- Aumentar a prioridade e memoria para o audio:
echo "@audio - rtprio 98" | sudo tee -a /etc/security/limits.d/audio.conf
echo "@audio - memlock unlimited" | sudo tee -a /etc/security/limits.d/audio.conf
echo 'KERNEL=="rtc0", GROUP="audio"' | sudo tee -a /etc/udev/rules.d/40-timer-permissions.rules
echo 'KERNEL=="hpet", GROUP="audio"' | sudo tee -a /etc/udev/rules.d/40-timer-permissions.rules
echo 'KERNEL=="raw1394", GROUP="audio"' | sudo tee -a /etc/udev/rules.d/50-raw-firewire.rules


- O service do systemD é:
1 - Cria arquivo /etc/systemd/system/xiva-audio-config.service com o conteudo:

[Unit]
Description=xiva-audio-config
[Service]
ExecStart=/usr/bin/xiva-audio-config
[Install]
WantedBy=multi-user.target


2 - Criar o arquivo /usr/bin/xiva-audio-config com o conteúdo:

#!/bin/sh
#Aumentar a frequência de interrupção RTC
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq

#configurar o swapness para 10
sysctl vm.swappiness=10
sysctl vm.vfs_cache_pressure=100

3 - Dar permissão de execução ao arquivo /usr/bin/xiva-audio-config:
sudo chmod +x /usr/bin/xiva-audio-config

4 - Habilitar o service para iniciar no boot:
sudo systemctl enable xiva-audio-config

- Tem uma configuração que alguns citam como importante, outros que da problemas, então não entrou para o pacote, fica a critério de cada um testa-la.

- O threadirqs, os comandos são:
sudo sed -i '/GRUB_CMDLINE_LINUX_DEFAULT/s/\"/ threadirqs"/2' /etc/default/grub
sudo update-grub

Links de referência de onde foi extraído o conteúdo:

https://wiki.archlinux.org/title/Professional_audio
https://wiki.archlinux.org/title/Systemd/FAQ#How_can_I_make_a_script_start_during_the_boot_process?
https://wiki.archlinux.org/title/CPU_frequency_scaling
https://wiki.archlinux.org/title/Realtime_process_management#Configuring_PAM
https://www.kernel.org/doc/html/latest/admin-guide/rtc.html
https://wiki.linuxaudio.org/wiki/system_configuration#limitsconfaudioconf

Agradecimento

Muito obrigado ao Barnabé e já aproveito para convidar a todos a conhecer o projeto XiVA:
https://xivastudio.org/

***Os links deste blog não são clicáveis, então será preciso copiar e colar para ir até os endereços.***


Comentários

  1. Sensacional esse meta! Mão na roda demais! Agradecimentos ao Barna pelo desenvolvimento e ao William pela divulgação! Abraços!

    ResponderExcluir
  2. Show de bola Wiliam, instalei aqui e funcionou perfeitamente para mim.

    William faça algo sobre o pipewire e como utilizar ele no arch linux, valeu

    ResponderExcluir
    Respostas
    1. Opa! Que bom que deu tudo certo!!! Sobre o pipewire, alguns colegas andaram testando e ainda acontecem alguns conflitos e erros. Tem até um vídeo do Unfa em que ele comenta que o Pipewire ainda não está pronto para a produção musical. Tenho certeza que logo estará! Se não me engano o Fedora 35 já vem nativamente com ele! Obrigado pela visita aqui no Blog e muito obrigado por deixar o seu comentário aqui! Temos um grupo no Telegram, junte-se a nós! Abração

      Excluir

Postar um comentário