Historique: Portail Système
Aperçu de cette version: 6
Table des matières
rtirq
Présentation
Il s'agit "simplement" d'un script permettant de prioriser des IRQ handlers (pour les utilisateurs du groupe "audio"). Le "programme" se compose de 2 fichiers : un script d'initialisation et un fichier de configuration.
Un noyau-RT est évidemment conseillé !
Gentoo
Le plus simple est d'utiliser l'overlay "pro audio production applications" (voir page gentoo)echo "sys-process/rtirq ~x86" >> /etc/portage/package.keywords
emerge rtirq
rc-update add rtirq default
emerge rtirq
rc-update add rtirq default
Pour les autres
L'installation n'est pas trop compliquée ! Vous trouverez l'archive et des instructions (en anglais) ici :
http://lalists.stanford.edu/lau/2005/11/0459.html
Pour résumer, téléchargez l'archive "rtirq-20050914.tar.gz" et décompressez-là :
wget http://lalists.stanford.edu/lau/2005/11/att-0459/rtirq-20050914.tar.gz
tar -zxvf rtirq-20050914.tar.gz
tar -zxvf rtirq-20050914.tar.gz
Placez les 2 fichiers au bon endroit et avec les droits corrects (en root) :
cp rtirq.sh /etc/init.d/rtirq
chmod 0755 /etc/init.d/rtirq
cp rtirq.conf /etc/sysconfig/rtirq
chmod 0644 /etc/sysconfig/rtirq
chmod 0755 /etc/init.d/rtirq
cp rtirq.conf /etc/sysconfig/rtirq
chmod 0644 /etc/sysconfig/rtirq
Intégrez le script dans votre distribution en tant que script d'initialisation (très variable d'une distribution à l'autre)
rc-update add rtirq default (pour Gentoo)
chkconfig --level 5 rtirq on (pour Mandriva. Voir aussi "drakxservice")
chkconfig --add rtirq (pour Redhat)
update-rc.d rtirq defaults (pour Ubuntu, à vérifier ❗
man chkconfig (pour les autres ❗
chkconfig --level 5 rtirq on (pour Mandriva. Voir aussi "drakxservice")
chkconfig --add rtirq (pour Redhat)
update-rc.d rtirq defaults (pour Ubuntu, à vérifier ❗
man chkconfig (pour les autres ❗
Le script utilise ensuite les commandes classiques des scripts d'initialisation de votre distribution :
/etc/init.d/rtirq start (pour démarrer)
/etc/init.d/rtirq stop (pour arrêter)
/etc/init.d/rtirq status (devinez ❗
/etc/init.d/rtirq stop (pour arrêter)
/etc/init.d/rtirq status (devinez ❗
La configuration se fait en modifiant le fichier "/etc/sysconfig/rtirq"
Il paraît plus prudent de s'assurer au préalable de l'absence de conflit d'IRQ, en utilisant la commande
cat /proc/interrupts
Exemples
Pour les utilisateurs de cartes firewire, voir la page suivante, sur le site du projet Freebob :
http://freebob.sourceforge.net/index.php/System_Configuration_Hints
Das_watchdog (Ze_Chien de garde !)
Présentation
Ce programme n'est pas indispensable, il peut néanmoins s'avérer utile dans certains cas.Optimiser, donner l'accès temps réels pour une application, c'est bien ... sauf en cas de plantage de celle-ci par exemple !
Das_Watchdog est un programme de surveillance générale pour linux qui tourne en arrière-plan pour s'assurer qu'un processus en temps réel ne va pas bloquer la machine.
Il s'inspire du programme "rt_watchdog" (http://tapas.affenbande.org/?page_id=38) en apportant quelques améliorations :
- support des noyaux 2.4 et 2.6
- passage temporaire (et non définitif) en mode "non-temps-réel"
- ouverture d'une fenêtre "pop-up" d'avertissement
Installation
Elle nécessite les dépendances suivantes :
- xmessage (intégré à X11)
- libgtop2
Pour Gentoo, le plus simple est d'utiliser l'overlay "pro audio production applications" (voir page gentoo)
echo "sys-apps/das_watchdog ~x86" >> /etc/portage/package.keywords
emerge das_watchdog
rc-update add das_watchdog default
emerge das_watchdog
rc-update add das_watchdog default
Pour les autres distributions :
Téléchargez et décompressez la dernière version ici : http://ccrma.stanford.edu/~kjetil/src/
tar -zxvf das_watchdog-x.x.x.tar.gz
make
cp das_watchdog /usr/local/sbin/
echo '/usr/local/sbin/das_watchdog >/dev/null &' >>/etc/rc.sysinit
reboot
make
cp das_watchdog /usr/local/sbin/
echo '/usr/local/sbin/das_watchdog >/dev/null &' >>/etc/rc.sysinit
reboot
Il s'agit, comme pour rtirq, d'un script d'initialisation. L'intégration dans votre sytème dépendra donc encore de votre distribution (voir ci-dessus)
Vous aurez peut-être le message suivant après la compilation :
das_watchdog and test_rt compiled. Now testing IRQ priorities... ./das_watchdog --checkirq ERROR! The "softirq-timer/0" process has only got priority 1. It should be 99. Watchdog will probably not work.
Utilisez la commande suivante pour rectifier la priorité de softirq-timer :
chrt -f -p 99 `ps -A |grep softirq-timer/0 |awk '{print $1}'` (pour le 1er processeur)
chrt -f -p 99 `ps -A |grep softirq-timer/1 |awk '{print $1}'` (si vous avez un second processeur)
etc ...
chrt -f -p 99 `ps -A |grep softirq-timer/1 |awk '{print $1}'` (si vous avez un second processeur)
etc ...
Usage
Quand un programme bloque votre machine, "das_watchdog" bascule temporairement (pendant 8 secondes) les processus "temps-réels" en mode "non-temps-réel". Un message d'avertissement s'affiche à l'écran pour vous prévenir.
Pour tester das-watchdog, l'archive vous fourni un programme de test, "test_rt". Compilez-le ("make"), fermez toutes vos tâches importantes en cours et lancez-le : il freeze votre machine et vous devriez donc voir apparaître un message de das_watchdog:
Liens
http://ccrma.stanford.edu/~kjetil/src/http://linux.softpedia.com/get/Multimedia/Audio/Das-Watchdog-10825.shtml
Gestion des priorités
➡️ A venir !L'objectif est d'expliquer comment utiliser les différents outils (qjackctl, rtirq, etc.) pour obtenir quelque chose du type:
99 System timer IRQ 98 RTC IRQ 95 . Midi threads of softsynths/midi sequencers 85 82 Soundcard IRQ 70 Jackd main loop 60 . Other IRQ handlers (disk, network, USB, GFX) 40
inspiré de http://tapas.affenbande.org/?page_id=40
Autres optimisations
Pour finir, voici enfin quelques pistes que vous pouvez encore explorer (outre les optimisations de la page Les discs durs et hdparm :
- Méfiez-vous des tâches d'administration automatiques effectuées en arrière plan (cron, messagerie).
- Désactivez les services inutiles. La gestion des services étant très différente d'une distribution à l'autre, consultez la documentation de votre distribution. Certaines proposent des outils graphiques ("drakxservice" sous Mandriva par exemple), pour d'autres, il faudra faire ça "à l'ancienne" (commandes "rc-status" et "rc-update" sous Gentoo, etc). N'oubliez pas enfin que certains services dépendent d'autres services !
- Choisissez un desktop léger pour économiser des ressources.