Affichage des articles dont le libellé est Système. Afficher tous les articles
Affichage des articles dont le libellé est Système. Afficher tous les articles

dimanche 14 septembre 2014

Compiler ou faire un traitement consommateur (ex; audio/vidéo) sans trop faire chauffer son ordinateur (portable)

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

aujourd'hui je vous parle d'un soucis que vous avez peut-être déjà rencontré pendant une compilation  ou autre traitement audio/vidéo : la surchauffe de l'ordinateur et l'extinction des feux ...

Ce problème est particulièrement courant sur les ordinateurs portables qui ont tendance à beaucoup chauffer !

Si vous voulez préserver votre ordinateur mais que vous voulez quand même compiler et utiliser vos logiciels de traitement audio/vidéo sans trop le stresser, cet article est fait pour vous.

Monitoring de la température


Prérequis

Installer le package debian lm-sensors qui permet d'obtenir la température des CPUs et qui est utilisé par les scripts ci-dessous:
$ sudo apt-get install lm-sensors ubuntu-sounds vorbis-tools jack-tools

Principe de l'astuce

En général, les compilateurs utilisés sont gcc et g++ mais ce principe peut s'appliquer à d'autre compilateur. Nous allons écrire des scripts gcc et g++ qui remplaceront aux yeux du système les vrais programmes gcc et g++. Ce sont juste des wrappers qui attenderont que la température des cpus diminuent avant de lancer la compilation suivante.

tout d'abord, créez un répertoire bin dans votre répertoire utilisateur:
$ mkdir ~/bin

Puis éditer les deux scripts à créer:
$ gedit ~/bin/gcc ~/bin/g++

Contenu du script gcc :
#!/bin/bash
white='\e[1;37m'
NC='\e[0m'

MAX_TEMP="70"

temp() {
  sensors | grep "Core[ 0-9]*:" | sed -e 's/.*\([+-][0-9.]\+\)°C.*(.*$/\1/' | sort -n -r | head -n 1 | sed -e 's/-[0-9.]\+/0/;s/+//'
}


CURRENT_TEMP=$(temp)
TOO_HOT=0
# now wait for it to cool down...
while [ $(echo "$CURRENT_TEMP > $MAX_TEMP" | bc) = 1 ]; do
    [ $TOO_HOT == 0 ] && echo -e "${white} CPU temp $CURRENT_TEMP ${NC}"
    TOO_HOT=1
    sleep 10
    CURRENT_TEMP=$(temp)
done

[ $TOO_HOT == "1" ] && echo -e "${white} CPU was too hot : ok now, restarting...${NC}"

/usr/bin/gcc $@

Contenu du script g++  (la même chose que précédemment mais la commande à lancer est g++):
#!/bin/bash
white='\e[1;37m'
NC='\e[0m'

MAX_TEMP="70"

temp() {
  sensors | grep "Core[ 0-9]*:" | sed -e 's/.*\([+-][0-9.]\+\)°C.*(.*$/\1/' | sort -n -r | head -n 1 | sed -e 's/-[0-9.]\+/0/;s/+//'
}


CURRENT_TEMP=$(temp)
TOO_HOT=0
# now wait for it to cool down...
while [ $(echo "$CURRENT_TEMP > $MAX_TEMP" | bc) = 1 ]; do
    [ $TOO_HOT == 0 ] && echo -e "${white} CPU temp $CURRENT_TEMP ${NC}"
    TOO_HOT=1
    sleep 10
    CURRENT_TEMP=$(temp)
done

[ $TOO_HOT == "1" ] && echo -e "${white} CPU was too hot : ok now, restarting...${NC}"

/usr/bin/g++ $@


Rendez les scripts exécutables:
$ chmod 755 ~/bin/gcc ~/bin/g++

Mettre en avant du PATH les scripts créés: Pour cela modifiez votre ~/.profile:
Pour éditer le fichier:
$ gedit ~/.profile

Ajouter à la fin du fichier la ligne suivante:
export PATH=~/bin:$PATH

Généralisation

Voici un autre script : script qui démarre un programme utilisateur et surveille la température des CPUs. si la température dépasse le seuil MAX_TEMP alors le programme utilisateur est arrêté (pause) puis lorsque la température descend, le process est réactivé (continue).

Son utilisation:
mon_cpu_too_hot.sh COMMAND
Exemple:
$ mon_cpu_too_hot.sh cp -r / /Backup

Pour les applications audio sous jack:
mon_cpu_too_hot.sh -j COMMAND
Exemple:
$ mon_cpu_too_hot.sh -j ardour3

Voici le contenu du script:
#!/bin/bash
white='\e[1;37m'
NC='\e[0m'

MAX_TEMP="80"

HANDLE_JACKAUDIO=0
export JACK_PLAY_CONNECT_TO="system:playback_%d"

jack_bell() {
  jack.play /usr/share/sounds/ubuntu/stereo/bell.ogg
  jack.play /usr/share/sounds/ubuntu/stereo/bell.ogg
  jack.play /usr/share/sounds/ubuntu/stereo/bell.ogg
}

temp() {
  sensors | grep "Core[ 0-9]*:" | sed -e 's/.*\([+-][0-9.]\+\)°C.*(.*$/\1/' | sort -n -r | head -n 1 | sed -e 's/-[0-9.]\+/0/;s/+//'
}

stop_process_and_childs() {
      kill -STOP $1
      ps -o pid --no-headers --ppid $1 | 
      while read CPID
      do
        kill -STOP $CPID
      done
}

continue_process_and_childs() {
      ps -o pid --no-headers --ppid $1 | 
      while read CPID
      do
        kill -CONT $CPID
      done
      kill -CONT $1
}

jackd_stop() {
  pkill -STOP jackdbus
}

jackd_continue() {
  pkill -CONT jackdbus
}

if [ "$1" == "-j" ]; then
  HANDLE_JACKAUDIO=1
  shift
fi

COMMAND="$1"
shift

"$COMMAND" "$@" &

PID=$!

echo -e "${white}CPU temp max $MAX_TEMP : control PPID $PID ${NC}"

while [ "$(ps -p $PID --no-header)" != "" ]
do
  CURRENT_TEMP=$(temp)
  TOO_HOT=0
  sleep 3
  while [ $(echo "$CURRENT_TEMP > $MAX_TEMP" | bc) = 1 ]; do
    if [ $TOO_HOT == 0 ]; then
       echo -e "${white} CPU temp $CURRENT_TEMP : STOPPING PROCESS $PID and its childs ${NC}"
 #     ogg123 -d pulse -y 3 /usr/share/sounds/ubuntu/stereo/bell.ogg 2> /dev/null
       [ $HANDLE_JACKAUDIO == 1 ] && jack_bell
    fi
    TOO_HOT=1
      [ $HANDLE_JACKAUDIO == 1 ] && jackd_stop
      stop_process_and_childs $PID
      sleep 10
      CURRENT_TEMP=$(temp)
  done

  if [ $TOO_HOT == 1 ]; then
    echo -e "${white} CPU was too hot : ok now, restarting...${NC}"
    continue_process_and_childs $PID
    [ $HANDLE_JACKAUDIO == 1 ] && jackd_continue
  fi
done

Si vous ne voulez rien changer à vos habitudes, vous pouvez créer des alias qui appelleront automatiquement ce script (dans le fichier ~/.bashrc):
alias del='mon_cpu_too_hot.sh /usr/bin/trash-put'
alias rsync='mon_cpu_too_hot.sh /usr/bin/rsync'
alias cp='mon_cpu_too_hot.sh /bin/cp'
alias mv='mon_cpu_too_hot.sh /bin/mv'
alias rm='mon_cpu_too_hot.sh /bin/rm'
alias ardour3='mon_cpu_too_hot.sh -j /usr/local/bin/ardour3'
...

Si vous voulez utiliser ces alias avec la commande sudo, il vous faudra ajouter l'alias suivant pour cela fonctionne:
alias sudo='sudo '

NB: l'espace est important !


Toutes ces opérations seront dorénavant soucieuse de la température de votre CPU ! Notez l'option -j qui arrête également le serveur de son jack lorsque c'est nécessaire.

Attention, ce script ne fonctionne pas avec les commandes en ligne interactive (comme 'rm -i').

Si vous voulez utiliser des interfaces graphiques avec ce script (comme ardour3), démarrez le logiciel à partir d'un terminal comme cela vous pourrez voir les messages de ce script (en gras et blanc).

Si vous avez une carte son avec pulseaudio sur votre ordinateur, vous pourrez émettre un son de votre choix lorsque le CPU est trop chaud et qu'un programme est mis en pause: (décommentez la ligne suivante dans le script ci-dessus)

ogg123 -d pulse -y 3 /usr/share/sounds/ubuntu/stereo/bell.ogg 2> /dev/null

Tuner votre script ...

La variable MAX_TEMP représente la température maximum à ne pas dépasser. Vous pouvez tuner ce paramètre à votre guise. (Prenez une valeur moins élevé que la température critique de votre CPU: Pour la connaître tapez: $ sensors).

La ligne "sleep 10" fait attendre le programme pendant 10s. Si ce n'est pas suffisant pour refroidir le CPU, vous pouvez augmenter le nombre de secondes ...

Les scripts gcc et g++ rendront fatalement la compilation beaucoup plus longue qu'à pleine puissance mais vous arriverez au bout sans problème.

Sinon, sur des programmes nécessitant beaucoup de puissance de calcul (faisant donc chauffer l'ordinateur: traitement audio/vidéo e.g. ardour, ffmpeg; avconv, lame, oggconvert, ...), le troisième script (e.g mon_cpu_too_hot.sh) sera d'une aide précieuse pour éviter l'extinction intempestive de votre ordinateur ...

Enfin, si malgré cela, votre ordinateur continue à s'éteindre rapidement, scrutez les processus consommateur avec la commande top et vérifiez si ils sont pertinents, Sinon, pensez à faire réviser votre ordinateur - souvent un dépoussiérage de l'intérieur suffira (CPU / ventilateur).

Alternative : Limiter l'utilisation du CPU par un process

Vous pouvez aussi utiliser cpulimit qui permet de limiter l'utilisation du CPU à un certain pourcentage de puissance CPU. 

Cette commande utilise aussi les signaux STOP et CONT pour mettre en pause et faire repartir le processus visé par la commande de tel façon à ce qu'il n'utilise pas plus que le pourcentage de puissance CPU indiqué en paramètre.

Pour installer cet outil:
$ sudo apt-get install cpulimit

Lancer le processus et le limiter à 40% de CPU:
$ monprogramme & cpulimit -p $! -l 40

Les pourcentages indiqués ici correspondent aux pourcentages indiqués  par la commande top.

L'avantage de cette commande est que l'on peut attacher et détacher cpulimit d'un processus.

Pour l'utilisation d'un logiciel audio comme ardour3, vous pouvez l'attacher à cpulimit lorsque vous faîtes un traitement lourd (batch) sur de l'audio ou de la vidéo et le détacher lorsque vous mixez ou visionnez le résultat.

pour obtenir le PID d'un programme appelé monprogramme:
$ ps -axf | grep monprogramme

La première colonne donne le PID (un nombre entier).

Limiter un processus et ces processus fils sur Ubuntu 12.04


Enfin, la version de cpulimit sur Ubuntu 12.04 ne gère pas les processus childs. Cependant les dernières versions de cpulimit les gérent.

CPULimit peut être télécharger ici. Il vous faudra le compiler et l'installer.

$ tar xvfz cpulimit-2.2.tar.gz
$ cd cpulimit-2.2
$ make

Puis pour créer un package debian et l'installer:
$ sudo checkinstall -D make install

sinon pour installer directement:
$ sudo make install



Voilà, amusez-vous bien !
Musicalement,


Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

mercredi 23 juillet 2014

Mesurer les performances de votre système Linux

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

L'article "Configurer Linux pour la MAO" présente de nombreuses astuces afin d'optimiser son système Linux pour la MAO.

Il est évident que la la carte son pro (faible latence), la RAM, la rapidité des disques, la puissance CPU, la carte graphique (si vous utilisez un séquenceur avec interface graphique) sont autant d'éléments dans votre configuration qui influencent les performances audio temps réel de votre système.

Aussi, ici je vous présente quelques outils pour évaluer vos besoins en terme de mémoire, CPU et rapidité disque.

Démarrez votre séquenceur en lecture et/ou enregistrement et lancer les commandes suggérées dans les sections suivantes pour mesurer la RAM, la charge CPU et l'usage de vos disques:

RAM (mémoire vive)


La RAM peut être mesurée grâce à top et à sar.
$ sudo apt-get install sysstat procps


$ top

top donne la mémoire utilisée par chaque processus. Les colonnes VIRT (sur disque, dans le swap), RES (en RAM) et SHR (en RAM) sont à prendre en compte.

sar permet de mesurer sur un temps donné (ici 180 sec) et faire la moyenne:
$ sar -r 1 180

Si votre disque s'affole et que le son est haché, il est fort probable que vous n'avez pas assez de RAM et que le système "swap" sur le disque. Soit le seuil de déclenchement de l'utilisation du swap est trop bas, soit le système n'a définitivement pas assez de RAM.

CPU


La charge CPU peut être mesurée grâce à top et à sar.
$ sudo apt-get install sysstat procps


$ top

top donne la charge CPU (colonne %CPU) utilisée par chaque processus. sar permet de mesurer sur un temps donné et faire la moyenne (idle est le pourcentage de puissance CPU non utilisée par le système):
$ sar 1 180

Si vous avez des xruns et que vous avez appliqué les optimisations conseillées dans ce blog sur votre système Linux MAO , il est probable que la charge CPU soit trop importante.

Vous avez alors deux choix,
- soit vous diminuez la charge CPU nécessaire :
           + en minimisant les fenêtres de votre séquenceur (moins de traitement pour les mises à jour de l'interface graphique)
           + en désactivant des plugins d'effets inutiles
           + en augmentant la période (taille des échantillons) de jack (dans la page réglages de  qjackctl par exemple) mais cela augmentera la latence ...
           + en dernier recours, vous pouvez essayer un multi-pistes en ligne de commande (sans interface graphique : ecasound le multitrack recorder léger !)

- soit vous vous procurez un CPU plus puissant ...

Disques 


Le capacité de votre disque dur déterminera la durée d'enregistrement selon le nombre de pistes, l'échantillonnage et le nombre de bits de définition du son.

Voici un lien vers un site vous permettant de calculer facilement la capacité disque nécessaire en fonction de la durée, du nombre de pistes, de l'échantillonnage et du nombre de bits de définition.

Pour calculer la capacité de transfert disque nécessaire par seconde, calculez l'espace disque pour une minute et divisez par 60.

Souvent, le disque est sollicité en lecture et en écriture en même temps hors les tests de performances des disques font soit de la lecture/soit de l'écriture ... Mais cela vous donnera une idée des besoins en terme de capacité de transfert ...

Ceci dit vous pouvez mesurer l'activité de vos disques grâce à la commande sar, iotop, hdparm et sync:
$ sudo apt-get install iotop sysstat hdparm coreutils

sudo iotop : vous donne les transferts par processus.
sar -b 1 180 : vous donne les transferts de bloc (512 octets) toutes les secondes 180 fois et fait la moyenne voir la page man.

Le temps d'accès au disque est importante. Aussi les disques SSD pulvérisent les disques durs HDD en terme de temps d'accès. Pour les HDD classiques préférez des 7200 rpm à des 5400 rpm.

Mesurer la capacité de votre disque en lecture

Adaptez la ligne de commande ci-dessous à vos besoins: sda pour le premier disque, sdb pour le deuxième disque ...
$ hdparm -t --direct /dev/sda

Mesurer la capacité de votre disque en écriture

Pour le test ci-dessous, vous avez besoin de 4,1Go sur votre disque. Placez-vous sur le disque à tester et exécutez la commande suivante:
$ sync;time bash -c "(dd if=/dev/zero of=bf bs=8k count=500000; sync)"

Une fois le test terminé, effacez le fichier créé:
$ rm bf

Voilà, j'espère que cela vous aidera à diagnostiquer votre système et à mieux cibler vos besoins.

A bientôt,
musicalement,

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

mardi 22 juillet 2014

Configurer Ubuntu 12.04/14.04 pour la MAO

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

afin de tirer le plus partie de votre ordinateur pour la MAO sous Linux, que ce soit une configuration récente ou ancienne, ce blog vous donne un certain nombre d'astuces avancées que vous pouvez mettre en place pas à pas.

En voici une revue et quelques ajouts:

Préparer son système Ubuntu pour la MAO

NB: les étapes 1, 2 et 3 peuvent être remplacées par l'installation d'une distribution dédiée à la MAO (KXStudio, UbuntuStudio, ...). Mais prendre le temps de les appliquer vous permettra de mieux comprendre votre système et son fonctionnement.

1/ Installez le dépôt KXStudio (uniquement pour ubuntu LTS - Long Term Support - en 12.04 et en 14.04) pour avoir accès aux dernières versions de vos logiciels open source favoris:
KXstudio PPA : Le dépôt des dernières versions de logiciels multimedia et audio pour precise (Ubuntu 12.04)

2/ Installation de jack ! Il est important de passer du temps à comprendre le fonctionnement et surtout le paramétrage de ce serveur de son dédié à l'audio faible latence.
- Installer Jack, le faire cohabiter avec pulseaudio et éliminer le message "cannot lock down"

note: n'activez pas la cohabitation de pulseaudio avec jack pendant un enregistrement car cela dégrade les performances ...

3/ Installez un noyau spécialisé dans le traitement audio à faible latence:

4/ Appliquez un certain nombre d'astuces sur votre système pour optimiser ses performances pendant vos sessions audio:

5/ L'un des postes CPU les plus important si vous utilisez un séquenceur avec interface graphique est l'interface graphique. Il existe différents types d'interfaces X11 avec chacune des caractéristiques bien spécifiques. 

L'interface par défaut d'Ubuntu 12.04 est unity. Cependant, cet environnement est gourmand et n'est pas très adapté au traitement audio. Aussi vous pouvez installer XFCE pour libérer un peu de CPU grâce à ces environnements légers et performants.

Pour cela, appliquez la commande suivante:
$ sudo apt-get install xfce4 xfce4-goodies xfce4-whiskermenu-plugins xubuntu-desktop

Une fois terminée, fermez votre session utilisateur et lorsque vous vous retrouvez sur l'écran de login, choisissez votre environnement cible (xfce4). Ce choix peut être changé à chaque ouverture de session. Vous pouvez donc à tout moment, revenir à unity ou autre environnement X11 présent sur votre système.

Conseils 

pour le choix de votre séquenceur et de vos plugins


Avec wine, on peut faire tourner des logiciels comme REAPER, Mixcraft 7 ou des plugins VST windows tel que Guitar Rig 5, Amplitube 3 et bien d'autres ... Cependant, gardez en tête que ces options ne sont pas optimales sur Linux. En effet, ces logiciels n'étant pas natif à Linux, leur utilisation peut entraîner une surcharge en CPU par rapport à des solutions natives ...

- Installer la station de travail audio Reaper et le driver Wineasio sous Linux (qui utilise Jack)
- pour utiliser Mixcraft 7, on peut aussi utiliser wineasio (cf. l'article sur Reaper).
- Démarrer des plugins VST windows sous Linux

L'utilisation de ardour3 ainsi que des plugins calf sont à préférer car ce sont des solutions natives à Linux et opensource.

- L'alternative libre à ProTools : la station de travail audio numérique (DAW) Ardour
- Les plugins audio LV2 indispensables avec Ardour (prise de son, mixage, mastering)


Vous voulez diagnostiquer votre système ?


Si malgré l'optimisation de votre système pour la MAO, vous avez toujours des soucis de performances dans votre cas d'utilisation, vous voudrez peut-être diagnostiquer ce qui manque sur votre système (CPU, mémoire ou disque). Alors je vous conseille la lecture de cet article: Mesurer les performances de votre système Linux

Vous voulez gagner du temps au chargement de vos programmes ?


Si vous voulez que vos programmes se chargent plus rapidement et que votre système démarre rapidement, je vous conseille la lecture de cet article: Optimiser votre système Ubuntu avec un disque SSD et un disque HDD !

Optimisez votre DAW



Les deux options proposées ci-dessous sont courantes dans les DAWs et permettent de gagner un peu de CPU:

- ne pas afficher la forme d'onde pendant l'enregistrement
- ne pas suivre la tête de lecture (éviter le défilement ou scrolling).

Pour commencer votre maquette


Quelques astuces et liens vers des articles utiles pour faire vos premiers pas dans la réalisation d'une maquette:
- Faire une maquette : quelques conseils et astuces pour bien débuter
- S'initier à la prise de son, au mixage et au mastering


Bon courage !
Amusez-vous bien,
Musicalement,



mardi 5 novembre 2013

Optimiser votre système Ubuntu avec un disque SSD et un disque HDD !

Pour accéder à la Liste des articles de ce blog c'est par ici

Bonjour,

Aujourd'hui je vous parle de l'optimisation de votre système grâce à un disque SSD (Solid State Drive).

Pour booster mon ordinateur portable, j'ai acheté un disque SSD que j'ai installé dans une baie de remplacement SATA (à la place du lecteur DVD) en disque slave. L'installation très simple et rapide de ce système m'a convaincu.

Prérequis

Afin d'éditer les fichiers textes, on pourra utiliser gedit.

pour l'installer:
$ sudo apt-get install gedit

Introduction

Les disques SSDs, de nos jours, sont plus rapides que les disques durs classiques. Ils sont cependant, dans biens des cas, beaucoup plus rapides en lecture qu'en écriture. Ils sont aussi plus résistants aux chocs et sont particulièrement adaptés aux ordinateurs portables mais conviennent également aux ordinateurs de bureau. Leur point faible est la limite du nombre de réécritures possibles sur un même emplacement mémoire.

Partant de ce constat, afin d'utiliser le SSD à plein rendement et le plus longtemps possible, je vous propose de l'utiliser principalement en lecture. Tous les dossiers du système en lectures-écritures fréquentes seront donc écartés du disque SSD afin de le préserver. Il vous faudra un second disque dur HDD (Hard disk drive) en plus du disque SSD.

Les dossiers en lectures / écritures fréquentes sont:
+ /var
+ /tmp
+ /home
+ swap

EDIT: Il existe maintenant des disques SSHD qui sont des disques durs conventionnels avec de la mémoire SSD qui sert de cache. Ces disques sont beaucoup moins cher que les SSDs et permettent d'obtenir de bon résultat sur l'écourtage du démarrage de vos programmes les plus utilisés/de votre ordinateur grâce à une gestion du cache intelligente. 

Personnellement j'utilise un SSD et SSHD maintenant. J'obtiens de meilleur performance qu'avec le couple SSD/HDD au niveau du démarrage de l'ordinateur avec Ubuntu (voici un comparatif très instructif sur les SSHD). Par contre, d'un point de vue traitement audio ou vidéo, vous n'y trouverez pas votre compte, il vaut mieux acheter des HDD 7200 rpm ou 10000 rpm, ce sont toujours des valeurs sûrs !


Le partitionnage

Il vous faudra donc créer quatre partitions sur un HDD  (vous pouvez utiliser une partition étendue et placer à l'intérieur ces 4 partitions logiques) et une partition primaire sur votre SSD. Je vous laisse apprécier la taille de ces partitions en fonction de l'utilisation de votre système ainsi que sa capacité totale. Ne vous inquiétez pas, vous avez une certaine marge de manœuvre puisque les partitions Linux sont en général redimensionnable (en utilisant l'outil graphique gparted par exemple). Je vous conseille d'utiliser un système de fichier ext4 sur vos partitions (sauf le swap biensûr qui est de type swap). ext4 est adapté aux SSDs et aux HDDs.

Il est conseillé de laisser 10% de la taille du SSD en mémoire disque non allouée.Une fois ces partitions créées, il suffira de préciser leur point de montage sur le système de fichiers. Ces opérations sont prises en charge en mode avancé de l'installation d'Ubuntu.

Migrer une partition existante sur votre SSD

Si vous partez d'un système existant et que vous voulez le migrer sur votre disque SSD, il vous faudra taper quelques lignes de commandes ...

Si vous avez beaucoup de RAM (+ de 4 GO), vous pouvez monter /tmp en RAM directement.

Que votre disque SSD soit en position slave (secondaire) ou master (primaire), Linux saura démarrer votre partition système sans problème grâce à Grub (gestionnaire de boot ou programme d'amorçage).

Copier vos données

Pour migrer vos données (adaptez "sdb1" à la partition que vous voulez utiliser) :
$ sudo mkdir /media/root_ssd
$ sudo mount /dev/sdb1 /media/root_ssd
$ cp -ax / /media/root_ssd
$ rm -rf /media/root_ssd/var/* /media/root_ssd/home/* /media/root_ssd/tmp/*

Alternativement, si vous voulez simplement synchroniser votre partition source ( / )avec votre partition cible ( /media/root_ssd) (càd ne copier que les fichiers qui ont changé sur la cible par rapport à la source) :
$ sudo rsync -axh / /media/root_ssd/

Modifier /etc/fstab de votre partition cible

Modifier le fichier fstab de votre partition ROOT cible dans /media/root_ssd/etc/fstab pour définir le montage des partitions /var, /tmp et /home ainsi que le swap:

Pour éditer le fichier, tapez:
$ sudo gedit /media/root_ssd/etc/fstab


Exemple de fstab:
# / was on /dev/sdb1 during installation
UUID=b10c82d8-e0f1-470f-b0dd-a2796d762414 /             ext4    errors=remount-ro,noatime 0       1

# /var was on /dev/sda2 during installation
UUID=84859917-1d4a-4a0a-8f53-0619da06ac3e /var          ext4    defaults,noatime        2       2

# /home was on /dev/sda3 during installation
UUID=297c3104-d3d5-48be-a511-ef3d0be52824 /home         ext4    defaults,noatime        0       2

# swap was on /dev/sda4 during installation
UUID=8d053da8-827e-47d0-ae8a-0a70b0b77aaf none          swap    sw              0       0

# tmpfs RAM disk
tmpfs /tmp tmpfs defaults,noatime,size=1G 0 0

# log : RAM disk
tmpfs /var/log tmpfs defaults,noatime,size=256M 0 0
Pour obtenir les uuid des partitions en question. Tapez:
ls -l /dev/disk/by-uuid/

La liste uuid de chaque partition s'affichira. Un uuid est un identifiant unique pour le disque et la partition. (même si le disque dur change de lettre passant par exemple de sda à sdb ...).

L'option noatime inhibe la mise à jour de l'attribut "atime : access time" des fichiers lors de leurs accès en écriture (plus d'informations ici en anglais).

Ajouter un TRIM exécuté automatiquement au démarrage

Éditer le fichier /media/root_ssd/etc/rc.local. Tapez:
$ sudo gedit /media/root_ssd/etc/rc.local
Ajouter au dessus de la commande
exit 0

la commande
fstrim -v /

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
exit 0

Le nettoyage fait par la fonction TRIM est nécessaire pour optimiser les performances de votre SSD. Sans cette commande, votre SSD deviendra de plus en plus lent avec le temps. En plaçant la commande fstrim dans rc.local, on s'assure qu'à chaque démarrage de l'ordinateur la fonction TRIM sera lancée. Vous pouvez aussi le faire manuellement si cela fait un jour que l'ordinateur n'a pas redémarré.

Positionner le scheduler à la valeur deadline

Pour éditer le fichier de paramètrage Grub, tapez:
$ sudo gedit /media/root_ssd/etc/default/grub
Il faut changer le scheduler à [deadline]. Modifier la ligne:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

et la remplacer par la ligne suivante:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=deadline quiet splash"

Ce paramétrage est par défaut sur Ubuntu 13.10 et convient aux HDDs et SSDs.

Si vous n'avez qu'un SSD, vous aurez un léger gain de performance en sélectionnant [noop].

Après un update-grub et un redémarrage, vous pourrez vérifier l'état du scheduler en tapant:
cat /sys/block/sda/queue/scheduler

remplacer sda par le disque SSD que vous utilisez.

l'affichage devrait être le suivant:
noop [deadline] cfq

au lieu de:
noop deadline [cfq]

Configurer l'amorce de votre partition cible

Pour configurer l'amorçage des différents noyaux de votre disque cible (slave : secondaire).

$ sudo mount -B /proc /media/root_ssd/proc
$ sudo mount -B /dev /media/root_ssd/dev
$ sudo chroot /media/root_ssd
$ sudo update-grub
$ exit

Maintenant, il faut configurer l'amorçage sur le disque primaire:
sudo update-grub

Redémarrer votre ordinateur et voilà, si tout c'est bien passé, vous disposerez d'un menu pour démarrer votre ancien système (sur le HDD primaire) ainsi que votre système cible (sur le SSD secondaire).

Maintenant le démarrage de votre Ubuntu est plus rapide que jamais (quand vous démarrez sur le SSD) !

Après avoir redémarré sur le disque secondaire (SSD), si vous voulez installer Grub (secteur d'amorçage) après avoir passé la commande sudo update-grub à partir de votre disque secondaire sur le disque primaire:
$ sudo grub-install /dev/sda


Voilà, profitez bien de votre installation !
Musicalement,

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.

Source de cet article en anglais.

dimanche 15 juillet 2012

Résoudre les ronflements, les buzzs ou les problèmes de parasites dans votre système audio (carte son du PC, table de mixage, enceintes, guitare basse ...)

Pour accéder à la Liste des articles de ce blog c'est par ici

Aujourd'hui, je vous présente un billet sur un problème agaçant !

Les ronflements et les parasites

Les ronflements ou parasites peuvent être de différentes sortes:
- Ronflement 50hz
- Bruits parasites aigus de PC sur la carte son (mouvement de souris, disque durs, activité du processeur, rayonnement de l'écran à tube cathodique ...)

Les ronflements et les parasites peuvent avoir différentes causes mais la plupart du temps ces ronflements ou parasites sont liés à une boucle de masse. Ensuite, vient les câblages défectueux.

La boucle de masse

Si vous obtenez un ronflement ou des bruits parasites sur votre système audio. Il se peut que vous ayez un problème avec l'alimentation de vos appareils: plus précisément une boucle de masse.

Veuillez noter que le problème ne peut venir que d'un appareil relié à la masse (fiche ronde).

Si vous utilisez un PC portable, débranchez l'alimentation et éventuellement éteignez votre système audio puis rallumez-le (sur batterie) puis écoutez si vos parasites sont toujours présent.

Si ce n'est pas suffisant, débranchez tous les appareils USB qui ont une alimentation propre (HUB, disque durs, ...) et testez l'écoute de votre système audio.

Sinon débrancher tous vos appareils et rebrancher un à un en isolant l'alimentation de chaque périphérique audio (table de mixage, pré-ampli, enceintes ...) qui pose problème sur une prise murale (et non sur une multiprise déjà chargée). Si le problème persiste, il se peut que d'autres appareils chez vous provoquent des boucles de masses (frigo, ...). Il vous faudra alors investir dans un transfo d'isolement ou un transformateur d'isolation.

Un transformateur d'isolement permet d'assurer la sécurité d'une installation en protégeant des électrocutions par exemple et permet également d'isoler des parasites ( ronflements) provoqués par des boucles de masse.

Il existe aussi des transformateurs d'isolation permettant l'isolement d'un câble audio.

Buzz aigu sur interface audio USB

Parfois, on obtient un buzz aigu sur l'interface audio USB. Pour résoudre ce problème plusieurs solutions:

- couper le wifi/bluetooth de l'ordinateur
- ne branchez qu'un seul périphérique USB: votre interface audio (pour le test)
- essayer de changer le port usb sur lequel est branché l'interface audio
- changer l'interface audio de place (pour éviter qu'elle soit trop proche d'un ordinateur et/ou d'une prise/multiprise)
- éventuellement changer le câble USB reliant l'interface audio à l'ordinateur

À chaque changement, il est préférable d'éteindre et de rallumer son ordinateur puis de faire un test d'enregistrement pour vérifier si le buzz est parti ou pas.

Autres astuces ...

1. Si vous utilisez des prises multiples, essayez de regrouper entre eux les appareils travaillant avec des niveaux audio faibles, et de séparer les appareils travaillant avec des signaux audio plus élevés.

2. Séparez correctement les câbles qui véhiculent le secteur alternatif, des câbles qui véhiculent de l'audio analogique (surtout pour les faibles niveaux).

3. Vérifier la qualité de votre câblage. Il se peut qu'un câblage défectueux laisse entendre un ronflement ou des parasites.

4. Préférez des connexions symétriques sur de longues distances (XLR)  au connexions asymétriques (Jacks, ...).

5. Parfois, sur certains appareils, il y a un switch "ground" qui permet de supprimer les ronflements. (exemple: Bass POD pro).

6. Pour l'écran à tube cathodique, il n'y a pas de solution. Son rayonnement se retrouve dans les câbles passant à proximité en général. La seule solution est d'éteindre l'écran pendant l'utilisation du système audio ...

Les buzz sur la guitare basse

Les buzz sur la guitare basse peuvent avoir plusieurs origines (source: slappyto)

- L’interférence électromagnétique : les basses passives à micros simple bobinage sont sensibles aux bruits parasites produites par diverses sources électriques (ordinateur, ampli, moteurs électriques…). Les micros vont capter ces interférences électromagnétiques et vont les restituer d’où ce buzz. Ce bruit est assez typique des Jazz Bass, notamment lorsque un des micros est coupé. Ce bruit est tout à fait normal, limite vendu avec la basse. Pour remédier à cela, il faut blinder les différentes cavités : micros, électro…à l’aide de feuilles de cuivres ou d’aluminium autocollantes et constituer ce que l’on appelle une cage de faraday. Ainsi les différents composants sensibles seront protégés. Les micros Noiseless qui sont des micros doubles bobinages permettent aussi d’isoler la basse des interférences (les micros doubles sont pas ou peu sensibles aux bruits électromagnétiques).

- Le défaut de masse : cette cause peut toucher toutes les basses. En effet un fil de masse mal soudé peut provoquer un défaut de masse, et ne permet plus à la basse d’être reliée à la terre (via le jack et l’ampli). Un buzz significatif apparaît, buzz qui disparaît quand l’on touche un élément métallique (accastillage, corde, chevalet…). Il est à noter que le chevalet est bien souvent relié par un fil noir à la masse (voir schémas). Dans ce cas pas de secret : il faut vérifier tout les branchements voire tout ressouder au propre.

Éliminer les ronflements après la prise de son

Vous pouvez avec un logiciel tenter de réduire les bruits gênants. Le logiciel de traitement de son Audacity (disponible sur Ubuntu, MAC et Windows) permet de réduire les bruits de fonds (après l'acquisition audio donc pas en temps réels).

Pour l'installer exécutez la ligne suivante ou utiliser le centre de gestion des applications Ubuntu:
$sudo apt-get install audacity
Pour la réduction des bruits dans audacity:
  - cliquez dans la barre de menu sur Effets >> Réduction de bruits
  - suivez les instructions indiquées

Dans mon cas, ça a fortement atténué les bruits gênants.


Vous trouverez des astuces pour l'audio et la musique sur Ubuntu par ici.

lundi 28 mai 2012

Diminuer, voir éliminer les XRUNS de jack sur votre Ubuntu


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 performance
Le 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 wifi

N'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.sh
et restaurer votre environnement une fois votre session audio terminée:
~$ ./restore_env_after_audio.sh
Vous 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 process
En 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 bum
Une 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).
#
#                

# / 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
Pour éditer le fichier /etc/fstab:
~$ 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 = 10
Pour 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-index
Pour 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.

Diminuer, voir éliminer les XRUNS de jack sur votre Ubuntu


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 performance
Le 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 wifi

N'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.sh
et restaurer votre environnement une fois votre session audio terminée:
~$ ./restore_env_after_audio.sh
Vous 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 process
En 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 bum
Une 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).
#
#                

# / 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
Pour éditer le fichier /etc/fstab:
~$ 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 = 10
Pour vérifier votre paramétrage:
~$ cat /proc/sys/vm/swappiness

Paramètrage des IRQs realtime

~$ sudo apt-get install rtirq-init 

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-index
Pour 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
- 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.3
- Maudio / Mtrack sur 2 pistes (Basse + effets, Chant + effets)
- Un lecteur Audacious pour les 6 autres pistes.

Vous trouverez d'autres astuces pour l'audio et la musique sur Ubuntu par ici.