Pour accéder à la Liste des articles de ce blog c'est par ici
Bonjour,
aujourd'hui nous allons regarder comment diminuer, voir éliminer drastiquement les XRUNS (désynchronisation) du serveur Jack. Cet article suppose que vous avez installez le noyau lowlatency sur Ubuntu 12.04.
Les XRUNS sont géneralement le résultat des nombreux appels des process et daemons qui tournent sur Ubuntu et qui font de petits appels récurrents au noyau. Cela peut aussi être le résultat d'un CPU surchargé, ou l'utilisation de ressources disques ...
Voici une page qui tente de définir l'ordinateur idéal pour faire de l'audio. Cette page donnent des pistes sur les problèmes que l'on rencontre quand on fait de l'audio avec son ordinateur (tous systèmes confondus: Linux - OS/X - Windows).
Réglages du serveur Jack
Dans un premier temps, il est conseillé de lire l'article sur l'installation et le paramétrage du serveur de son jack.Faites plusieurs tests en influant sur la période jusqu'à ce que vous obteniez un résultat sans trop de désynchronisation (XRUNS) (voir les réglages dans l'application qjackctl). Pour les cartes audio qui ne sont pas ASIO (faible latence), il ne faut espérer de miracle. Pour les autres, la latence devrait être inférieure à 10ms en général.
Une fois jack paramétré, vous allez pouvoir améliorer les performances de votre serveur jack en suivant les étapes ci-dessous.
Lorsque que vous aurez optimisé votre Ubuntu 12.04 pour l'audio, vous pourrez éventuellement revoir la période de votre serveur jack à la baisse et refaire des tests.
Gain de performances CPU
Nous allons faire du ménage dans les processus que vous avez en mémoire afin d'optimiser les performances de votre CPU et du kernel low latency (noyau faible latence).
L'une des optimisations les plus évidentes est de couper le réseau (surtout le WIFI très consommateur). Mais on peut ne pas s'arrêter là: webcam, bluetooth, imprimantes, ... peuvent également être coupés et ainsi ne plus solliciter le noyau.
Je vous propose ici deux scripts qui permettent de faire tout cela et quelques astuces en plus. Ces scripts sont directement adaptés d'une page complète dédiée à ce sujet sur wiki.linuxmusicians.com.
Editer ces fichiers dans le répertoire de votre choix:
~$ gedit optimize_env_for_audio.sh restore_env_after_audio.sh &
Le fichier optimize_env_for_audio.sh :
#!/bin/sh sudo modprobe -r ppdev # Pas de ports parallèles sur ma machine sudo modprobe -r lp # Pas besoin d'imprimantes pour faire de la musique sudo modprobe -r uvcvideo # Pas besoin de webcam non plus sudo modprobe -r videodev # idem pour V4L2 (Vidéo for linux 2) sudo modprobe -r wl # Wireless driver (son nom peut varier selon le chipset) #sudo modprobe -r btusb # Pas besoin de Bluetooth USB non plus (décommentez si nécessaire) sudo service bluetooth stop # Stoppe Bluetooth process sudo service cups stop # Stoppe cups qui gére l'imprimante sudo service network-manager stop # Stoppe le réseau sudo /etc/init.d/ondemand stop # Prevent this script from running so my CPU won't use the ondemand governor #sudo service hddtemp stop # Pas besoin de la température du CPU (Décommentez si nécessaire) sudo killall /sbin/wpa_supplicant # Stoppe le service WPA pour le réseau wifi sudo modprobe snd-hrtimer # Charge le module de haute résolution du temps echo Changing CPU Frequence to performance. sudo cpufreq-selector -g performanceLe fichier restore_env_after_audio.sh :
#!/bin/sh echo Changing CPU Frequence to powersave. sudo cpufreq-selector -g powersave sudo modprobe ppdev # Démarre le module kernel de ports parallèles sudo modprobe lp # Démarre le module kernel imprimante sudo modprobe uvcvideo # Démarre le module kernel webcam sudo modprobe videodev # Démarre le module kernel V4L2 sudo modprobe wl # Démarre le module kernel WIFI (le nom peut varier selon votre chipset) #sudo modprobe btusb # Démarre le module kernel Bluetooth USB (Décommentez si nécessaire) sudo service bluetooth start # Démarre le Bluetooth sudo service cups start # Démarre cups, (pour l'imprimante) sudo service network-manager start # Démarre le réseau sudo /etc/init.d/ondemand start # Prevent this script from running so my CPU won't use the ondemand governor #sudo service hddtemp start # Démarre hddtemp pour surveiller la température du CPU (décommentez si nécessaire) sudo /sbin/wpa_supplicant -B -P /run/sendsigs.omit.d/wpasupplicant.pid -u -s -O /var/run/wpa_supplicant & # Démarre WPA service pour le wifiN'oubliez pas de donner les droits en exécution sur ces deux fichiers.
~$ chmod 755 optimize_env_for_audio.sh restore_env_after_audio.sh
Vous pouvez maintenant exécuter la commande suivante lorsque vous démarrez une session audio
~$ ./optimize_env_for_audio.shet restaurer votre environnement une fois votre session audio terminée:
~$ ./restore_env_after_audio.shVous aurez à entrer votre mot de passe root puisque la commande sudo est utilisé dans les deux scripts.
Pour connaître les services qui tournent sur votre ordinateur et qui ont un PID:
~$ initctl list | sort | grep processEn fonction de la liste que vous obtenez, vous pouvez ajouter des commandes de démarrage ou d'arrêt de certains services dans les scripts ci-dessus. Renseignez-vous sur l'utilité de chaque service que vous voulez démarrer ou arrêter afin de garder le contrôle sur ce que vous faîtes.
Ou alors, vous pouvez également utiliser une application graphique qui vous donnera plus d'infos sur les services activés et leur état. Par exemple, Boot Up Manager (bum) dans le dépôt Universe:
~$ sudo apt-get install bum ~$ sudo bumUne aide appréciable pour scripter le démarrage et l'arrêt des services Ubuntu.
Optimisation des accès disques
Type de système de fichiers à éviter
Il est conseillé d'éviter les systèmes de fichiers suivants: reiserfs et fuseblk fs qui ne sont pas adaptés aux applications audio.
Système de fichier en RAM et partition spécifique pour l'audio
Nous allons optimiser votre système de fichiers. Si vous avez beaucoup de RAM (ex: 4 Go+), nous allons pouvoir charger en mémoire une partie du système de fichier: notamment /tmp et /var/log. On ne mettra pas /var/tmp en RAM car il est utilisé pour stocker des fichiers pouvant être accédés après un reboot.
L'inconvénient de monter /var/log en mémoire RAM est qu'au redémarrage de la machine, vous perdrez toutes les logs mais comme on a rarement besoin de les consulter dans une utilisation desktop, cela n'est pas pénalisant.
On créera une partition pour y mettre les fichiers projets de vos DAWs favoris sur laquelle on optimisera les accès grâce à trois options:
- noatime : optimise l'écriture en inhibant la modification de la date d'accès des fichiers
- nodiratime : pareil que noatime mais pour les répertoires.
- data=writeback : optimise l'écriture au risque de quelques pertes en cas d'arrêt brutal du système. Mais cela améliore les performances d'écritures de façon significatives ! (source linuxmao.org)
Il n'est pas conseillé d'utiliser des disques durs USB si vous utilisez une carte son USB. Cela pourrait détériorer les performances du système par une sollicitation trop forte des ressources USBs. Préférez donc une partition sur un disque dur interne de votre ordinateur. Si vous achetez un disque dur interne exprès, préférez un 7200 rpm ou mieux un 10 000 rpm.
Avant de modifier votre fichier de configuration, je vous conseille d'en faire une sauvegarde.
Exemple de fichier /etc/fstab modifié:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # #Pour éditer le fichier /etc/fstab:# / was on /dev/sda5 during installation UUID=b10c82d8-e0f1-470f-b0dd-a2796d762414 / ext4 errors=remount-ro 0 1 # /home was on /dev/sda7 during installation UUID=297c3104-d3d5-48be-a511-ef3d0be52824 /home ext4 defaults 0 2 # /home was on /dev/sda7 during installation UUID=297c3104-d3d5-48be-a511-dedadada5166 /audio ext4 defaults,noatime,nodiratime,data=writeback 0 2 # swap was on /dev/sda6 during installation UUID=8d053da8-827e-47d0-ae8a-0a70b0b77aaf none swap sw 0 0 # tmpfs RAM disk tmpfs /tmp tmpfs defaults,noatime,nodiratime,size=512M 0 0 tmpfs /var/log tmpfs defaults,noatime,nodiratime,size=256M 0 0
~$ sudo gedit /etc/fstab
Déclenchement du swap
Afin de limiter le swap sur votre machine, on va baisser le seuil de déclenchement de l'utilisation du swap à 10% de mémoire restante inutilisée. Pour cela, on modifiera /etc/sysctl.conf afin que la variable vm.swappiness soit présente et prenne la valeur suivante:
vm.swappiness = 10Pour vérifier votre paramétrage:
~$ cat /proc/sys/vm/swappiness
Paramètrage des IRQs realtime
~$ sudo apt-get install rtirq-init
Si la carte son faible latence est une usb alors éditer le fichier /etc/default/rtirq et enlever snd à la variable RTIRQ_NAME_LIST.
RTIRQ_NAME_LIST="rtc usb i8042"
puis redémarrez:
~$ sudo /etc/init.d/rtirq restart
Package consommateur
On prendra soin de supprimer le package apt-xapian-index utilisé par synaptic.
pour avoir un descriptif de ce package:
~$ apt-cache show apt-xapian-indexPour le supprimer:
~$ sudo apt-get remove apt-xapian-index
Inhiber la mise en veille (pour les portables)
Afin que votre portable ne se mettent pas en veille pendant votre session audio, modifiez les paramètres systèmes de l'icône énergie et indiquez que vous ne voulez pas mettre en veille lorsque le câble d'alimentation est branché.Par exemple:
Inhiber la mise en veille de l'écran
Pour inhiber la mise en veille de l'écran, il faut aller dans paramètres systèmes et cliquer sur l'icône luminosité et verrouillage. Par exemple:Conclusion
Le résultat est variable selon les configurations mais il est possible d'atteindre huit pistes en écriture (même avec un DD 5400 rpm):
- Processeur : Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz
- Disque dur à 5400 rpm (courant sur les ordinateurs portables) pour /home et /audio
- SSD 64 GO pour la partition root (disque système)
- 8 GO de RAM
- buffers : 128
- DAW : ardour5
- MAudio/Mtrack sur 2 pistes (Basse + effets, Chant + effets)
- Audacious pour les 6 autres pistes.
Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.
Aucun commentaire:
Enregistrer un commentaire