Parcheando un kernel para tiempo real

Ayer reinstalé el equipo con una Debian Lenny, y esto del audio requiere ajustar unos cuantos parámetros. Lo primero será compilar un kernel con los parches de tiempo real de Ingo Molnar.

Para ello voy a kernel.org y descargo la última versión del kernel (ahora mismo la 2.6.23). He oído que con versiones posteriores a la 2.6.18 hay problemas de estabilidad y las aplicaciones de tiempo real… Pero vamos a probar, a ver si consigo 0 xruns en jack funcionando con una latencia de 2 ms :)

Voy a la página con los parches de Ingo, y descargo el último parche para mi versión de kernel (2.6.23 como decía).

En /usr/src descomprimo tanto el kernel como el parche. Entonces entro en las fuentes del kernel:

cd /usr/src/linux-2.6.23.1

y desde ahí parcheo el kernel:

patch -p1 -i ../patch-2.6.23-rt1

Si todo va bien… ojo, si aplicas el parche sobre las fuentes de un kernel de debian, es posible que tengas problemas, porque los kernels que instalas con apt-get ya vienen parcheados por la gente de debian. Por eso conviene usar los de kernel.org. Retomo, si todo va bien, ya está parcheado el kernel, salen unos mensajes y listo. Toca recompilar el kernel, como siempre yo uso make-kpkg (por aquí me escribí como hacerlo… ;) ).

Ahora toca pegarse con las “capabilities” de linux, y tratar de asignar correctamente las prioridades a las tareas de tiempo real (jack, y amigos). Quizá tenga que reasignar las prioridades de alguna interrupción (IRQ) en linux y examinar a fondo el sistema para asegurarme que el bus pci de la tarjeta no comparte interrupción con nada más. Desde hace un tiempo no se usa realtime-lsm para asignar prioridades y recursos a las tareas de tiempo real, y la “moda” ;) es hacerlo con los rlimits de PAM. Se usa un planificador de tiempo real y los procesos pueden además reservar memoria de usuario. Creo que esto merecerá una nueva entrada por aquí ;)

También queda recompilar un kernel con lo mínimo (quitando hasta soporte de red y todo lo que se pueda) y hacer algún tipo de comparativa grabando 8 pistas simultáneas, reproduciéndolas, etc.

He leído bastante por internet y por la lista de usuarios de audio en linux (Linux Audio Users). Es casi de obligado seguimiento :) Unos pocos enlaces interesantes podrían ser:

http://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO
http://rt.wiki.kernel.org/index.php/Main_Page
https://wiki.ubuntu.com/RealTime/Gutsy

Bueno, y como siempre los “gentoo warriors” son los más sanguinarios de toda la sideral galaxia ;) ¡qué haríamos sin ellos! (sólo me acuerdo de estos…)

http://www.gentoo.org/doc/en/alsa-guide.xml
http://gentoo-wiki.com/HOWTO_Jack
http://www.gentoo.org/proj/en/desktop/sound/realtime.xml

A ver si ha terminado de compilar esto, talué ;)

~ por telemacro en 24 octubre, 2007.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: