Chargement...
 
Skip to main content

Historique: rtirq

Aperçu de cette version: 62

rtirq est un utilitaire de configuration pour le noyau Temps-Réel.
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 le noyau RT.

Image



Informations

Site web officiel : http://www.rncbc.org/.
Version actuelle : 20240220.
Licence : GNU GPL v2.
Compatible : noyau temps-réel.
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 s'utilise en conjonction avec un noyau temps-réel pour augmenter la priorité temps-réel des threads IRQ, afin d'optimiser la latence des périphériques (interfaces-son). Augmenter la priorité des threads IRQ est une étape obligatoire lorsque l'on utilise un noyau temps-réel avec jack. 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

pré-requis : Un noyau temps-réel est obligatoire pour utiliser rtirq.

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


Ubuntudebian sid: 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 :
Copy to clipboard
$ 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 :
Copy to clipboard
$ 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 :
Copy to clipboard
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)
Copy to clipboard
$ 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 :
Copy to clipboard
$ lsmod

ou d'en apprendre plus sur vos ports pci :
Copy to clipboard
$ 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 : /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 😉) 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.
Copy to clipboard
$ su -c "/etc/init.d/rtirq start"

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


Lancement automatique

Lorsque vous êtes satisfait des tests effectués, il faut ajouter l'execution 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 redemarrer le service à la main (voir le restart plus haut) ou créer une règle udev personnalisée.

gentoo :
Copy to clipboard
$ rc-update add rtirq default


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


Mandriva :
Copy to clipboard
$ chkconfig --level 5 rtirq on

(voir aussi "drakxservice")

Redhat/Fedora :
Copy to clipboard
$ chkconfig --add rtirq


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


Changelog

[+]

Liens

En savoir plus :


[+]REDIRECT plugin: The redirection to 'rtirq&structure=Accueil+Tutos' is disabled in preview mode.

Historique

Avancé
Information Version
Mardi 10 mars 2026 10:42 olinuxx 85
Afficher
Samedi 14 mai 2022 20:08 olinuxx + LZK-4 84
Afficher
Lundi 25 mai 2020 11:36 olinuxx + LZK3 + ponctuations + drapeau EN 83
Afficher
Mercredi 28 novembre 2018 16:16 olinuxx changement titre de page 82
Afficher
Mercredi 31 octobre 2018 13:53 olinuxx 81
Afficher
Mardi 13 mars 2018 10:59 olinuxx 80
Afficher
Mardi 13 mars 2018 10:58 olinuxx + info noyau rt/pas-rt 2.6.39 79
Afficher
Mardi 13 mars 2018 10:56 olinuxx drapeaux EN 78
Afficher
Mardi 13 mars 2018 10:55 olinuxx cohérence wiki 77
Afficher
Mardi 13 mars 2018 10:51 olinuxx cohérence + mise en page 76
Afficher
Lundi 20 novembre 2017 09:57 olinuxx correction lien lzk 75
Afficher
Lundi 20 novembre 2017 09:56 olinuxx coquilles 74
Afficher
Lundi 20 novembre 2017 09:55 olinuxx 73
Afficher
Lundi 20 novembre 2017 09:54 olinuxx + lzk2 + cohérence wiki 72
Afficher
Jeudi 15 juin 2017 16:52 olinuxx 71
Afficher
Lundi 01 mai 2017 16:17 olinuxx 70
Afficher
Lundi 01 mai 2017 16:16 olinuxx corrections + suppression des références à l'obligation d'utiliser un noyau RT 69
Afficher
Samedi 05 novembre 2016 15:40 olinuxx 68
Afficher
Samedi 05 novembre 2016 15:00 Sasaki ajout d'infos sur les distros pour le chemin d'accès au fichier de configuratin de rtirq 67
Afficher
Vendredi 06 novembre 2015 14:47 olinuxx Recherche et remplacement en masse 66
Afficher
Mardi 09 septembre 2014 17:05 olinuxx mise en cohérence des variables : version logiciel + date 65
Afficher
Vendredi 05 septembre 2014 16:21 olinuxx Recherche et remplacement en masse 64
Afficher
Vendredi 05 septembre 2014 08:47 olinuxx Recherche et remplacement en masse 63
Afficher
Vendredi 05 septembre 2014 08:38 olinuxx Recherche et remplacement en masse 62
Afficher
Vendredi 05 septembre 2014 08:23 olinuxx Recherche et remplacement en masse 61
Afficher
Jeudi 04 septembre 2014 09:04 olinuxx Recherche et remplacement en masse 60
Afficher
Dimanche 06 avril 2014 11:36 fbz +lien LinuxAudio 59
Afficher
Mercredi 03 juillet 2013 15:25 pianolivier structure par défaut 58
Afficher
Jeudi 30 mai 2013 19:28 pianolivier 57
Afficher
Jeudi 30 mai 2013 19:24 pianolivier mise en page 56
Afficher
Mardi 02 avril 2013 10:29 utilisateur_anonyme2 55
Afficher
Jeudi 14 mars 2013 22:49 xzu {box} d'ariane virrée 54
Afficher
Dimanche 05 août 2012 12:32 olinuxx coquilles 53
Afficher
Dimanche 05 août 2012 12:17 olinuxx 52
Afficher
Lundi 21 mai 2012 11:02 pianolivier modif lien(s) interne(s) 51
Afficher
Jeudi 17 mai 2012 18:27 pianolivier modif lien(s) interne(s) 50
Afficher
Lundi 09 avril 2012 10:50 pianolivier 49
Afficher
Lundi 09 avril 2012 10:49 pianolivier 48
Afficher
Dimanche 01 avril 2012 17:45 pianolivier +fil d'ariane 47
Afficher
Dimanche 26 février 2012 13:18 pianolivier +section changelog 46
Afficher
Mardi 22 novembre 2011 20:05 pianolivier mise en page 45
Afficher
Mercredi 16 novembre 2011 20:00 pianolivier 44
Afficher
Mercredi 16 novembre 2011 19:59 pianolivier 43
Afficher
Mercredi 16 novembre 2011 19:53 pianolivier +précision image 42
Afficher
Dimanche 02 octobre 2011 10:33 pianolivier 41
Afficher
Dimanche 02 octobre 2011 10:30 pianolivier 40
Afficher
Dimanche 02 octobre 2011 10:23 pianolivier 39
Afficher
Dimanche 02 octobre 2011 10:23 pianolivier 38
Afficher
Jeudi 29 septembre 2011 21:54 pianolivier 37
Afficher
Jeudi 29 septembre 2011 21:53 pianolivier 36
Afficher
  • «
  • 1 (en cours)
  • 2