Chargement...
 
[Voir/Cacher menus de gauche]
[Voir/Cacher menus de droite]

rtirq est un utilitaire de configuration pour le noyau.
Il s'agit plus précisément d'un script permettant d'automatiser le réglage des priorités temps-réel des threads IRQ pour les noyaux.

Image



Informations

Site web officiel : http://www.rncbc.org/ .
Version actuelle : 20150216 du 2015 02 16.
Licence : GNU GPL v2.
Plateforme : GNU/Linux.
Développeur : Rui Nuno Capela.

Description

rtirq est un script bash, destiné à être démarré automatiquement lors de l'initialisation du système. Il permet d'augmenter la priorité des threads IRQ, afin d'optimiser la latence des périphériques (interfaces-son). Pour comprendre le pourquoi du comment ou pour apprendre à faire la même manipulation "à la main", rendez-vous sur la page Temps-réel pour les processus IRQ.

Utilisation


Installation

gentoo : rtirq est présent dans l'overlay pro audio, il vous faudra le démasquer :
$ echo "sys-process/rtirq ~x86" >> /etc/portage/package.keywords
$ emerge rtirq


Ubuntu/debian jessie/stretch : le paquet à installer est nommé rtirq-init

debian 6 squeeze : voir ici

à la main : Vous trouverez les sources ici : http://www.rncbc.org/jack/ .
  • téléchargez les sources
  • décompressez l'archive
  • en super utilisateur
    • modifiez les permissions des 2 fichiers rtirq.conf et rtirq.sh pour qu'ils appartiennent à root.
    • modifiez les permissions du fichier rtirq.conf pour le rendre accessible en lecture/écriture par root.
      renommez le en rtirq et déplacez-le dans le répertoire /etc/sysconfig/
    • modifiez les permissions du fichier rtirq.sh pour le rendre accessible en exécution.
      renommez-le en rtirq et déplacez-le dans le répertoire /etc/init.d/.
Résumé en lignes de commandes pour la version du 14 mars 2011 :
$ mkdir -p ~/localbuilds/rtirq && cd ~/localbuilds/rtirq
$ wget http://www.rncbc.org/jack/rtirq-20110314.tar.gz
$ tar -zxvf rtirq-20110314.tar.gz
$ cd rtirq-20110314
$ su -c "chown root rtirq.conf rtirq.sh"
$ su -c "cp rtirq.conf /etc/sysconfig/rtirq && chmod 0644 /etc/sysconfig/rtirq"
$ su -c "cp rtirq.sh /etc/init.d/rtirq && chmod 0755 /etc/init.d/rtirq"


merci à vous de compléter ce paragraphe avec le procédé d'installation de votre distribution

Réglages et tests


Il est important de s'assurer au préalable de l'absence de conflit d'IRQ, et de repérer à quels thread IRQ donner les priorités les plus importantes.
Pour cela, démarrez un terminal et entrez la commande :
$ cat /proc/interrupts

Chaque ligne correspond à un IRQ, et on peut voir quel thread IRQ est greffé sur quelle IRQ.
Voici un extrait de ce que j'obtiens sur ma machine MAO :
n°IRQ   CPU0       CPU1       
  0:        120          0   IO-APIC-edge      timer
  1:          2            0   IO-APIC-edge      i8042
  8:          0            0   IO-APIC-edge      rtc0
  9:          0            0   IO-APIC-fasteoi   acpi
 16:    9367656     0   IO-APIC-fasteoi   uhci_hcd:usb3, firewire_ohci
 17:          2           0   IO-APIC-fasteoi   ehci_hcd:usb2, uhci_hcd:usb5
 18:          0           0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb7
 19:         28          0   IO-APIC-fasteoi   uhci_hcd:usb6

Voici ce qui m'intéresse dans ma configuration de type MAO :
  • rtc est l'horloge interne haute vitesse, très important !
  • firewire_ohci est le pilote de ma carte son firewire (nouveau stack juju, voir FFADO - configuration)
Nous allons donc donner à ces deux threads IRQ une priorité au dessus des applications audio.

conflit d'intérêt :
Observons une minute l'IRQ n°16. 2 modules se le partagent : firewire_ohci et uhci_hcd:usb3.
Pour éviter les conflit d'intérêt, il vaut mieux déconnecter tout disque-dur et autre périphérique haut-débit branché sur le port usb n°3.
Si votre carte son partage l'IRQ d'un périphérique que vous ne pouvez pas déconnecter (comme une carte réseau), limitez son utilisation (désactivation partielle ou totale) ou changez votre carte son de port.

Pour savoir quel périphérique utilise quel port usb, utilisez l'outil lsusb (du paquet usb-utils)
$ lsusb
Bus 001 Device 00X: un disque dur (IRQ 18)
Bus 002 Device 00X: une clef wifi (IRQ 17)
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub (rien) (IRQ 16 partagée avec ma carte son)
...

chacun de mes périphérique ont leur IRQ dédiée, conflit évité !
vous aurez peut-être aussi besoin de savoir quels modules sont utiles sur votre machine :
$ lsmod

ou d'en apprendre plus sur vos ports pci :
$ lspci


le fichier de configuration :
Maintenant que vous avez repéré vos IRQ et threads IRQ, il faut renseigner rtirq à travers son fichier de configuration.
emplacements possibles :
  • par défaut : /etc/sysconfig/rtirq
  • gentoo : /etc/conf.d/rtirq
  • Debian et dérivées, etc. : /etc/default/rtirq
il vous faudra les droits super utilisateur pour modifier ce fichier. Dedans vous trouverez un tas de bla-bla (un peu comme ici wink) et quatre lignes importantes contenant :
  • RTIRQ_NAME_LIST="..."
    liste des threads IRQ qui nous intéressent par ordre de priorité
  • RTIRQ_PRIO_HIGH="99"
    priorité temps-réel maximum pour les threads IRQ
  • RTIRQ_PRIO_DECR="2"
    pas de décrémentation de la priorité
  • RTIRQ_NON_THREADED=""
    services ne devant PAS être threaded, laissez vide !
Le premier point dépendra donc de votre système, pour les 3 suivants vous pouvez recopier les valeurs proposées ici.
Dans RTIRQ_NAME_LIST on peut mettre le nom complet du thread IRQ, ou une partie de son nom seulement.
ainsi firewire_ohci peut devenir firewire, uhci_hcd:usb3 se fait petit en usb3 et rtc0 se raccourcit en rtc.

exemples de configuration :
  • avec notre exemple ci-dessus (carte son firewire) on obtient :
    RTIRQ_NAME_LIST="rtc firewire"
  • si vous utilisez l'ancien stack firewire (voir FFADO - configuration) :
    RTIRQ_NAME_LIST="rtc ohci1394"
  • si votre carte son usb est sur le port n°3 et que vous avez d'autre périphériques moins importants ailleursc
    RTIRQ_NAME_LIST="rtc usb3"
  • si vous changez souvent votre carte son de port usb, et vous voulez donner la priorité à tous les ports, vous pourrez écrire :
    RTIRQ_NAME_LIST="rtc ehci_hcd uhci_hcd"
vous pouvez ajouter au besoin dans la liste le module de votre disque dur usb qui récupère les enregistrements (sur un autre IRQ), votre contrôleur MIDI,...

test :
Le test consiste en l'exécution du script qui imprimera à l'écran ce qui se passe. Vous devrez avoir les droits super utilisateur pour cela.
$ su -c "/etc/init.d/rtirq start"

Il vous faudra refaire cette manipulation à chaque modification de la configuration :
$ su -c "/etc/init.d/rtirq restart"


Lancement automatique

Lorsque vous êtes satisfait des tests effectués, il faut ajouter l’exécution du script au démarrage du système (init).
Ceci ne fonctionne cependant que pour les périphériques déjà branchés et allumés au démarrage du système. Si vous branchez votre carte son usb après l'étape d'init, il vous faudra redémarrer le service à la main (voir le restart plus haut) ou créer une règle udev? personnalisée.

gentoo :
$ rc-update add rtirq default


Ubuntu : automatiquement ajouté au processus de démarrage lors de l'installation du paquet ??
ou alors :
$ update-rc.d rtirq defaults


Mandriva :
$ chkconfig --level 5 rtirq on

(voir aussi "drakxservice")

Redhat/Fedora :
$ chkconfig --add rtirq


pour les autres : vérifiez dans le manuel.
$ man chkconfig


Changelog

[+]

Liens

En savoir plus :


[+]


Collaborateur(s) de cette page : olinuxx , Sasaki , fbz , pianolivier , utilisateur_anonyme et xzu .
Page dernièrement modifiée le Jeudi 15 juin 2017 16:52:58 par olinuxx.
Le contenu de cette page est licencié sous les termes licence.

Documentation [Afficher / Cacher]

Connexion
[Afficher / Cacher]


Mégaphone [Afficher / Cacher]

olinuxx, 23:21, lun. 23 Oct 2017: bonjour et bienvenue à Odysseus Libre :-)
olinuxx, 11:11, ven. 20 Oct 2017: bonjour et bienvenue à Burnus_1er et Upal :-)
sub26nico, 21:08, jeu. 19 Oct 2017: salut et bienvenue à rosjjim :-)
olinuxx, 15:28, mer. 18 Oct 2017: bonjour et bienvenue à Gopherlechien :-)
olinuxx, 08:46, mer. 18 Oct 2017: @Respire : contacte moi à l'adresse info HATTE linuxmao POINGT org
sub26nico, 23:46, mar. 17 Oct 2017: Salut et bienvenue à Fonky62 :-)
Pascal, 21:03, mar. 17 Oct 2017: Je crois qu'on peut y aller àdonf maintenant ;)
Pascal, 21:02, mar. 17 Oct 2017: avec un coreI5 on peut faire ca sans soucis :-) crash test ben pas de crash ! renoise + ardour + reaper + bitwig + fusion + lightworks + resolve. j'ai pas réussi a planter le PC !!!!
Pascal, 21:02, mar. 17 Oct 2017: Merci sans doute à Apple qui tourne en rond...
Pascal, 21:01, mar. 17 Oct 2017: Pendant des années Linux en MAO vidéo c'était un peu la galère... et puis...
olinuxx, 18:36, mar. 17 Oct 2017: bonjour et bienvenue à Respire :-)
bluedid29, 14:28, mar. 17 Oct 2017: Perso je suis passé (au moins en MAO) sur l'excellente distribution Debian Librazik réalisé par le talentueux olinuxx ! :-)