Chargement...
 
Skip to main content

5 - Les serveurs son : JACK, PipeWire, PulseAudio et autres...


XRUN réguliers et longs (résolu)

Salut à tous,

voici le problème que je n'arrive pas à résoudre: j'ai de très très nombreux XRUNs très court (0,04ms) et de temps à autre un gros XRUN de prêt d'une seconde (environs toutes les 3 mns)

J'ai beaucoup cherché sur la toile mais j'ai vraiment pas trouvé de cas similaire au mien. Si vous avez une idée quelconque, je suis preneur. La seule piste sérieuse concerne le partage de l'IRQ 10 entre les 2 cartes son, les 2 ports scsi et la carte réseau. Y'a certainement un lien dans tout ça...

Pour plus de précision, je n'ai pas ce problème lorsque je n'utilise qu'une seule des 2 cartes sons.
Le pc est dédié à la mao, et j'ai décidé de ne pas mettre d'interface graphique dessus, j'utilise un le X forward de ssh pour ca sur un portable. L'avantage, c'est que je peux mettre le portable dans le studio en gardant le pc dédié dans une salle à côté.

La config:
bi-xeon 2Ghz
2Go RAM
carte scsi AIC-7899P
1 DD pour le système
1 DD pour les fichiers son en XFS
2 echo layla24 (non synchronisés)
pas de chipset son sur la carte mère

Gentoo avec noyau RT
jackd version 0.103.0 tmpdir /dev/shm protocol 16
alsa 1.0.13

/proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 280583 0 0 0 XT-PIC ........N/ 0-level pit
1: 8 0 0 0 XT-PIC ........./ 0-level i8042
2: 0 0 0 0 XT-PIC ........N/ 0-level cascade
7: 0 0 0 0 XT-PIC ........N/ 0-level lpptest
8: 2 0 0 0 XT-PIC ........./ 0-level rtc
10: 10282163 0 0 0 XT-PIC ........./ 0-level aic7xxx, aic7xxx, Layla24, Layla24, eth0
NMI: 0 0 0 0
LOC: 280492 280492 280492 280492
ERR: 0
MIS: 0

lspci
00:00.0 Host bridge: Intel Corporation E7500 Memory Controller Hub (rev 03)
00:02.0 PCI bridge: Intel Corporation E7500/E7501 Hub Interface B PCI-to-PCI Bridge (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 42)
00:1f.0 ISA bridge: Intel Corporation 82801CA LPC Interface Controller (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801CA Ultra ATA Storage Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801CA/CAM SMBus Controller (rev 02)
01:00.0 Multimedia controller: Motorola DSP56361 Digital Signal Processor (rev 01)
01:02.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27)
02:1c.0 PIC: Intel Corporation 82870P2 P64H2 I/OxAPIC (rev 03)
02:1d.0 PCI bridge: Intel Corporation 82870P2 P64H2 Hub PCI Bridge (rev 03)
02:1e.0 PIC: Intel Corporation 82870P2 P64H2 I/OxAPIC (rev 03)
02:1f.0 PCI bridge: Intel Corporation 82870P2 P64H2 Hub PCI Bridge (rev 03)
03:02.0 Multimedia controller: Motorola DSP56361 Digital Signal Processor (rev 01)
04:01.0 Ethernet controller: Intel Corporation 82544EI Gigabit Ethernet Controller (Copper) (rev 02)
04:04.0 SCSI storage controller: Adaptec AIC-7899P U160/m (rev 01)
04:04.1 SCSI storage controller: Adaptec AIC-7899P U160/m (rev 01)

Si vous avez besoin d'autres informations...

Merci à tout le monde d'avance.

Vincent
France
Pour rendre les cartes son prioritaires (en admettant que ce sont bien les "Motorola DSP56361" dans ta liste), tu peux essayer ca:

Copy to clipboard
setpci -v -s '*:*' latency_timer=20 setpci -v -s '0:0' latency_timer=0 setpci -v -s '03:02.0' latency_timer=FF setpci -v -s '01:00.0' latency_timer=FF


Quand tu utilises les 2 cartes en même temps, c'est à l'aide d'un device virtuel via Jack qui te permet d'avoir les 2 cartes dans Ardour ? Je pense qu'il doit être très important de les synchroniser d'une façon ou d'une autre. Tu n'as pas essayé ?

Sinon pour changer les IRQ, une solution simple consiste à changer de place une des cartes dans le PC.
Hello,

non, je n'ai pas encore essayé la synchro.
Pour changer les IRQs, en fait, c'est pas vraiment possible, les cartes utilisent l'irq 10 et c'est tout (c'est pas moi qui le dit, c'est la doc 😊 ). Les chipsets scsi et réseau sont intégrés à la carte mère.
Oui, c'est un device virtuel via un fichier de conf.
et oui, ce sont bien les motorolas.

Je vais essayer de changer la latence pci pour les cartes sons. a très bientôt pour les résultats. Merci 😀
Bon, ben même problème, ca change rien ...

On va essayer de synchroniser tout ça. A part le world clock, y'a un autre moyen?
Si tes cartes ont des E/S nuériques SPDIF ou AES/EBU tu peux essayer de relier la sortie d'une carte à l'entrée de l'autre. Ensuite il faudra trouver un moyen pour activer l'entrée numérique de la carte tout en conservant les entrées analogiques.
Ne connaissant pas ces cartes je ne sais en dire plus. Je synchronise une carte a base d'ICE1724 de cette facon.

Attention aussi à la version d'Alsa, il y a un bug qui gène le fonctionnement de PCM-MULTI avec jack. Me semble qu'un palliatif est d'éviter le mode full-duplex. Utilisation possible en entrée OU en sortie mais pas les deux en même temps. Ce bug est corrigé dans la dernière version peut être pas encore officielle...
Allez zou! Un compte-rendu.

Alors, tout content, je reçois mon câble estampillé wordclock 75Ohms compliant, je le sors du sachet, je connecte le wc-out de l'une pour le rentrer dans le wc-in dans l'autre, je patauge un peu pour trouver où dire à l'esclave d'utiliser le wc du maitre, j'y arrive, je lance jackd avec les "bonnes options de l'époque", et là?

Ben, pareil, ca marche pas mieux, je me retrouve dans la situation que je connais.🙄

Pas fou, je regarde à nouveau la conf de jackd et je sais pas ce qui m'a pris, j'ai changer la fréquence de 48KHz par défault à 44,1KHz (enfin, certainement parce que j'ai lu la veille qu'enregistrer en 48KHz c'était mal). Je relance le bousin et ca fait 13 mns qu'il ne se passe rien... mais alors vraiment rien! 😬Plus de XRUNS, presque plus d'activité CPU au repos( j'étais dans les 4-5% avant, la je tourne à 0,35%)

Si c'était ça, faut le savoir. Il me reste encore à enregistrer en multipiste pour être sur ... mais ca se présente bien.

Donc, on peut utiliser 2 laylas mais pas à n'importe quelles fréquences. Avis aux amateurs 😉
France
Peut-être que tu peux relater ton expérience dans une page Wiki ... non ?

ouaip! On va faire.
Avant de faire un topo complet et total, il me reste juste à comprendre un truc:

tout marchait bien jusqu'à hier soir ... A nouveau, plus de petit XRUNS et des gros de temps en temps même à la fréquence 44,1Khz.
La synchro des cartes ne s'effectue pas toujours bien. Lorsque je démarre, le worldclock n'est pas présent sur le slave. Pour le faire apparaitre, je suis obligé virer le module layla, d'éteindre et de rallumer les cartes et de reloader le module!

Bref, j'ai encore quelque petit test à faire pour vraiment comprendre le pourquoi du comment...

Suite bientôt.
Allez, un edit.

Je suis maintenant sur qu'il ne s'agit que d'un "bête" problème de synchro. La synchro entre les cartes est super bancale. Je me demande d'ailleurs si ça ne cache pas un problème hardware ...😕

Suite au prochain épîsode.
La suite de l'aventure:

mon bête problème de synchro n'a finalement que très peu de chose à voir avec une panne hardware.

je m'explique brievement, l'idée étant de faire un petit topic un peu plus tard.
Au boot, après le chargement du module alsa, impossible de faire la synchro via wordclock, echomixer me disant qu'il n'existait pas alors que ça marchait "forcement" très bien avant. Après avoir remis en cause, les cartes, les câbles, intervertit les cartes pci, tripatouiller à tout les réglages d'alsa et de jack, avoir bien regarder les echomixer et finalement sacrifier un poulet au dieu du son, miracle, le "word" apparait sur la carte esclave.
Pas fou, forcement, je reboot pour vérifier que c'est bien revenu synchronisé, et non, ce continue de ne pas remarcher.👻
Finalement, je me souviens d'une chose, l'obligation de lancer les echomixers pour avoir du son, ben là, en plus il faut lancer le grmix de l'echomixer de la seconde carte, ce qui reveille le "word". Résultat: ca synchronise maintenant à chaque fois.😬 Et oui, c'est pas ergonomique, mais ca fonctionne. Au passage, si quelqu'un a une explication...

Il ne me reste plus qu'a comprendre pourquoi les XRUNS disparaisse en changeant les fréquences ...


A bientôt.

Re à tous,

avant de faire un truc un peu plus propre, j'ai fini, à défaut d'en trouver la cause, par trouver un palliatif.

Petit résumé rapide: j'avais des problèmes de XRUNS, d'abord long et régulier puis très court et très nombreux. Les premiers étaient très génants et se sont résolus lorsque les cartes ont été bien synchro par le WC.
Quant au deuxième, je viens à l'instant de trouver la soluce (enfin pour l'instant, ca fonctionne): il "suffit", avant de lancer jackd avec les options qui vont bien ( dans mon cas:"jackd -R -dalsa -r$studio_freq -H -M -C multi_capture -P multi_playback -D"), de lancer individuellement un petit:
jackd -R -dalsa -r$studio_freq -H -M -D -dhw:0,0&
jackd -R -dalsa -r$studio_freq -H -M -D -dhw:0,1&

Ca à l'air de rien, mais ca "réveille" les cartes qui visiblements n'étaient pas à la même fréquence (elles ont 2 ans d'écarts...).

Aucun soucis depuis 2h.

++
UPDATE de la situation:

il arrive de temps à autres que les cartes son layla ne prennent pas la bonne fréquence lors du boot. d''où l'astuce qui se révèle payante pour moi.

Pour les xruns apparaissant dans qjackctl, ils sont "malheureusement" réapparus dès que le système a été un peu plus chargé. Cependant, c'est pas grave, la réponse est là: -> http://www.sound-man.co.uk/linuxaudio/pcm_multi.html

citation plus qu'intéressante:
"Applications Report Lots of xruns

There is some kind of interaction between jackd and pcm_multi which causes some JACK clients to report lots of xruns even though alsa_pcm doesn't report any and there is nothing audibly wrong. JAMin, for example does this if using less than the default maximum period size, and some qjackctl users have reported it too. This is inconvenient but appears to be harmless (although users should still watch out for xrun messages from alsa_pcm, which indicate real xruns)."

Et c'est aussi le cas avec qjackctl. C'est finalement juste un "bug".

++
Édition (admin jy_moustache) : sujet fermé car résolu. Merci de remonter les informations pertinentes dans les pages Wiki adéquates.
Si besoin de réouvrir le sujet, vous pouvez vous adresser à un des admins 😉
Pour des conseils sur le fonctionnement général du forum, vous pouvez voir cette page.