Asignación de IRQ's

Imagen de marcelu80
0 puntos

Hola a todos,

Acabo de comprar una tarjeta de sonido firewire de gama media alta, Presonus FP10, la cual funciona a la perfección en Linux. Por otro lado tengo una controladora firewire Sunix con chipset Texas Instruments. El caso es que para que jack funcione adecuadamente, sin problemas de xrun ni otra clase de ruidos, tengo que combinar los frame/periods a 512 llegando a una latencia de 34ms, cosa que es una barbaridad tratándose de una tarjeta de este tipo capaz de trabajar con latencias de 2ms.

He revisado montones de cosas pero lo que veo más claro es que la controladora firewire comparte IRQ con mi tarjeta de red lo cual no tiene porque ser malo pero sí que podría serlo. Si pongo lspci -v entre otras cosas me devuelve:

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
Subsystem: Giga-byte Technology Unknown device e000
Flags: bus master, fast devsel, latency 0, IRQ 17
I/O ports at a000 [size=256]
Memory at eb000000 (64-bit, non-prefetchable) [size=4K]
[virtual] Expansion ROM at 50000000 [disabled] [size=64K]
Capabilities: <access denied>

04:01.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
Flags: bus master, medium devsel, latency 32, IRQ 17
Memory at ec004000 (32-bit, non-prefetchable) [size=2K]
Memory at ec000000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>

Me sorprende que todos los componentes que me lista el comando tengan latency 0 excepto este, que además resulta que sólo funciona bién ajustando la latencia a 34.8ms. Parece mucha casualidad, no?

Naturalmente he cambiado la IRQ a otra desde la BIOS pero parece que mi placa es Plug&Play, por lo que cede al sistema la asignación de cada componente.

¿Alguna sugeréncia? Gracias por adelantado.

PD: No es problema de capacidad porque el ordenador es moderadamente potente.

 

Imagen de RagonichaFulva
+1
0
-1

Aunque tu placa tenga la funcionalidad plug&play, ésta puede deshabilitarse para asignar IRQs manualmente.

Si ves que no puedes, abre la caja y cambia de slot PCI la tarjeta conflictiva para que le asignen otra IRQ.

El problema de IRQs puede venir de asignación por BIOS o por el sistema operativo (en Windows era común).

Saludos.

Edito: Al parecer me falló la conexión a la web y pensando que no había llegado mi post lo he "duplicado".

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Reclutador sin escrúpulos de doc.ubuntu-es.org ;)

¡Sorteo de foto de los admins de Tux!

+1
0
-1

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Imagen de Julius-Caesar
+1
0
-1

Yo hace tiempo ponía mis tarjetas en los slots apropiados (*) y después configuraba
las peticiones de interrupción (IRQ) en la BIOS. Creo recordar que también tenía
que ajustar allí algo como: PnP OS => NO

Por otra parte, la latencia tiene mucho que ver con el subsistema de drivers, más
que con la electrónica de la tarjeta. Eso sí, si tu tarjeta tiene un microprocesador
ó DSP capaz de correr efectos, entonces si podrá haber latencia a nivel de hardware.

* En mi ordenador de escritorio hay slots que comparten IRQ, a pesar de que la
placa base tiene APIC (Advanced Programmable Interrupt Controller), es decir,
que maneja 32 IRQ en vez de sólo 16.

Esto es algo que veremos en el manual de la placa.

Poco más puedo decir. Mi experiencia "sonora" con Linux es nula.

Julio para los amigos.

 

+1
0
-1
Imagen de Julius-Caesar
+1
0
-1

Acabo de ver esto en mi sistema (DELL Inpiron 9400 notebook):

FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller:

Flags: bus master, medium devsel, latency 64, IRQ 18
Capabilities: [dc] Power Management version 2

Pero aquí la IRQ 18 no está compartida con otro dispositivo.

Por cierto, ¿qué Ubuntu usas?, ¿has oído hablar del kernel con Low Latency?.

Creo que el kernel de UbuntuStudio está compilado con baja latencia en mente,
¿lo has probado?.

 

+1
0
-1
Imagen de marcelu80
+1
0
-1

Tengo Ubuntu Studio y uso el kernel real time. La latencia en un firewire con chipset Ricoh puede ser normal incluso si no comparte bus. Gracias. Miraré de cambiar la tarjeta de ranura aunque preferia no dejar la parte de atrás de mi pc como un colador.

 

+1
0
-1
Imagen de Julius-Caesar
+1
0
-1

Pues igual en cualquier tienda consigues chapitas de esas.

Yo tengo un montón pero, claro, de vez en cuando le monto un puter a alguien y
todo lo que sobra; chapitas, tornillería, cables SATA, pegatinas... todo eso es
pa mí.

Por cierto, vaya tarjetón que te has comprao, enhorabuena.

 

+1
0
-1
Imagen de marcelu80
+1
0
-1

Pues a trastear el hardware se ha dicho.

La tarjeta está asequible en Thomann. Estoy muy contento con ella. 

Gracias!

+1
0
-1
Imagen de marcelu80
+1
0
-1

Nada. He cambiado la tarjeta de slot pero sigue igual. Ahora ya no comparte IRQ pero la latencia sigue intacta. Pego salida de lspci -v:

04:00.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link) (prog-if 10 [OHCI])
        Flags: bus master, medium devsel, latency 32, IRQ 19
        Memory at ec004000 (32-bit, non-prefetchable) [size=2K]
        Memory at ec000000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>

¿Realmente la latencia se la asigna el sistema? ¿O bién el sistema le da la más baja que el dispositivo pueda soportar?

Agradeceré cualquier orientación al respecto ya que ando muy perdido. 

Saludos. 

+1
0
-1
Imagen de RagonichaFulva
+1
0
-1

Bueno, yo creo que ya se ha solucionado el 50%, ¿no? Ya no hay conflicto de IRQ. Ahora a ver la latencia...

¿Podrías poner tu placa base? 

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Reclutador sin escrúpulos de doc.ubuntu-es.org ;)

¡Sorteo de foto de los admins de Tux!

+1
0
-1

"La perseverancia es un árbol de raíces amargas, pero de frutos muy dulces."

Imagen de marcelu80
+1
0
-1

La placa es una Gigabyte GA-945P-S3

http://www.gigabyte.com.tw/Products/Motherboard/Products_Overview.aspx?P...

No dispone de Pnp.  Si veis algo en el manual que yo no detecte os agradeceré cualquier comentario.

Ahora que se acerca Ubuntu 8.04 y que formatearé el disco quizás tenga suerte y cambien las cosas. 

 

+1
0
-1
Imagen de Julius-Caesar
+1
0
-1

Le he echado un vistazo y no veo nada a destacar, según mis limitados conocimientos.

Mencionar que en tu BIOS tienes un apartado llamado "PnP/PCI" y que es ahí donde se
pueden establecer IRQs manualmente. Por defecto, los tres slots PCI de tu placa
estarán puestos en modo <auto>.

Eso es todo.

 

+1
0
-1
Imagen de Julius-Caesar
+1
0
-1

Imagen de marcelu80
+1
0
-1

Gracias. El segundo ya lo conocía. El primero parece muy interesante, sobretodo por la herramienta para medir la latencia.

Saludos. 

+1
0
-1
Imagen de marcelu80
+1
0
-1

Finalmente conseguí que el sistema respetara la asignación que venía de la BIOS. Se trata de añadir opciones al núcleo editando el archivo /boot/grub/menu.lst en la linea donde figura la versión del kernel. Añades noapic a continuación. La mía quedó así:

title Ubuntu 7.10, kernel 2.6.22-14-rt
root (hd1,0)
kernel /boot/vmlinuz-2.6.22-14-rt root=UUID=0b1ed40f-934f-4708-98a2-6484d18ba5cc ro quiet splash noapic
initrd /boot/initrd.img-2.6.22-14-rt

Reinicié y por fin conseguí que la controladora firewire estuviera sola. No obstante me sigue marcando latencia 32 y realmente me la da cuando escucho música a un determinado nivel de exigencia del sistema con jack. Si no fuera porque se trata de la controladora firewire que utiliza una conocida marca de ordenadores especializados en audio profesional (Citriq) pensaría que es un problema de rendimiento de la misma.

No sé qué más queda por probar.

+1
0
-1
Imagen de Julius-Caesar
+1
0
-1

Poniendo esto en Google salen muchas cosillas: presonus fp10 ubuntu

Entre ellas, ésta: http://daresbalat.livejournal.com
(My recording setup with Ubuntu Studio and a Presonus Firewire FP10)

Poco más puedo decir.

Julio para los amigos.

 

+1
0
-1