Linux-rt y JACK en ArchLinux

En esta entrada vamos a preparar ArchLinux para trabajar con audio en tiempo real. Para ello daremos dos pasos principales. Por un lado instalaremos un kernel rt (real time) para reducir al máximo la latencia a la hora de grabar instrumentos acústicos y por otro instalaremos el servidor de sonido JACK que nos permitirá trabajar con aplicaciones como Ardour o LMMS.

Instalando Linux-rt

Linux-rt está disponible desde AUR. En el momento de escribir esta entrada existen dos versiones diferentes: una LTS 4.14 y otra más actualizada 4.18. En esta entrada instalaremos ésta última:

yaourt -S linux-rt

Este proceso tardará bastante ya que debe compilar todo el kernel.

Para aquellos que utilicen drivers propietarios de nvidia, debemos instalar además nvidia-dkms y linux-rt-headers:

yaourt -S linux-rt-headers
sudo pacman -S nvidia-dkms

Esto último nos dirá que nvidia-dkms y nvidia están en conflicto. Deberemos desinstalar el paquete nvidia. Para poder utilizar también los drivers de nvidia con el kernel genérico debemos también instalar sus headers.

sudo pacman -S linux-headers

Ahora ArchLinux ya dispone de dos kernels y del driver de nvidia capaz de funcionar con ambos. Solo queda poder iniciar en cualquiera de ellos. Para los que utilicen grub, deben ejecutar:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Quienes que utilicen refind, deberán modificar el archico /boot/refind_linux.conf y crear las entradas diferentes para cada kernel como en el siguiente ejemplo:

sudo nano /boot/refind_linux.conf
"Boot linux-rt"  "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw quiet add_efi_memmap initrd=/initramfs-linux-rt.img"
"Boot standard kernel"  "root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw quiet add_efi_memmap initrd=/initramfs-linux.img"

Para los impacientes he aquí linux-rt 4.18 ya compilado:

linux-rt-4.18.7_rt5-1-x86_64.pkg.tar.xz

linux-rt-docs-4.18.7_rt5-1-x86_64.pkg.tar.xz

linux-rt-headers-4.18.7_rt5-1-x86_64.pkg.tar.xz

Instalando JACK


A continuación vamos a instalar y configurar JACK para que funcione junto con pulseaudio desde el incio de sesión y que Cadence inicie minimizado automáticamente en la bandeja de sistema.

El primer paso es añadir tu usuario al grupo realtime. Para ello primero instalaremos realtime-privileges:

sudo pacman -S realtime-privileges

y después:

sudo gpasswd -a tunombredeusuario realtime

Ahora instalremos JACK y Cadence para poder configurarlo:

sudo pacman -S jack2 lib32-jack2 cadence

Para que pulseaudio funcione con JACK debemos instalar pulseaudio-jack:

sudo pacman -S pulseaudio-jack

Ahora dentro Cadence en la sección JACK Bridges > ALSA Audio > Bridge Type deberemos seleccionar: ALSA -> Pulseaudio -> JACK (Plugin)

En JACK Bridges > PulseAudio Debemos iniciar pulsando Start.

Y ya podemos iniciar JACK pulsando también Start en la sección JACK Status.

Para que JACK inicie automáticamente al inicio de la sesión bastará con añadir la siguiente linea antes la última linea que empieza por exec dentro de nuestro .xinitrc:

cadence-session-start --start &

Para que Cadence arranque minimizado en la bandeja de sistema también podemos añadir al .xinitrc:

(sleep 3; cadence --minimized) &

El sleep 3 anterior es porque el icono de Cadence solo aparecerá si la bandeja de sistema ya está activa cuando se ejecute Cadence. Es por eso que conviene darle unos segundos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *