Mot-clé - Xubuntu

Fil des billets

Améliorer simplement une installation d'Ubuntu

Ce petit aide-mémoire recense de petites modifications permettant d'optimiser le fonctionnement d'une distribution Ubuntu.

Paramétrage disque

Le fichier /etc/fstab

Le fichier /etc/fstab indique au système quels disques utiliser. Il a le format suivant :

# <file system>                            <mount point>  <type>       <options>                   <dump>  <pass>
proc                                       /proc          proc         defaults                    0       0
UUID=be35a709-c787-4198-a903-d5fdc80ab2f8  /              ext4         errors=remount-ro           0       1
UUID=413eee0c-61ff-4cb7-a299-89d12b075093  /home          ext4         defaults                    0       2
UUID=cee15eca-5b2e-48ad-9735-eae5ac14bc90  none           swap         sw                          0       0
/dev/scd0                                  /media/cdrom0  udf,iso9660  user,noauto,exec,utf8       0       0
  • La première colonne indique la référence périphérique (de la partition).
  • La deuxième le point de montage, c'est-à-dire l'endroit où le contenu du disque sera accessible dans le système de fichier.
  • La troisième le format de la partition.
  • La quatrième les options de montage.

Attention ! Modifier le fichier /etc/fstab peut empêcher votre système de redémarrer.

L'option noatime

L'option noatime indique au système de ne pas comptabiliser les dates de dernier accès à chaque fichier et à chaque répertoire. Cela évite des écritures disques lors de l'accès en lecture aux fichiers. Cela améliore donc les performances de système et diminue l'usure des disques, sans aucun inconvénient pour l'utilisateur, la date de dernier accès étant peu fiable et peu utile.

Utilisation : pour tous les disques de type ext2, ext3, ext4, vfat et ntfs, ajoutez l'option noatime. Si la seule option indiquée est defaults, remplacez defaults par noatime.

Après modification, le fichier devrait ressembler à ça :

# <file system>                            <mount point>  <type>       <options>                   <dump>  <pass>
proc                                       /proc          proc         defaults                    0       0
UUID=be35a709-c787-4198-a903-d5fdc80ab2f8  /              ext4         noatime,errors=remount-ro   0       1
UUID=413eee0c-61ff-4cb7-a299-89d12b075093  /home          ext4         noatime                     0       2
UUID=cee15eca-5b2e-48ad-9735-eae5ac14bc90  none           swap         sw                          0       0
/dev/scd0                                  /media/cdrom0  udf,iso9660  user,noauto,exec,utf8       0       0

Pour en savoir plus :

Paramétrage mémoire

Les paramètres vm.dirty_bytes et vm.dirty_background_bytes

Ces 2 paramètres contrôlent l'écriture sur disque des fichiers. Lorsqu'un programme cumule vm.dirty_background_bytes octets en attente d'écriture, on commence à les écrire sur disque en tâche de fond. Lorsqu'un programme cumule vm.dirty_bytes octets en attente d'écriture, on passe à une écriture directe sur le disque.

Pour des PC fixe 64 bits, le paramétrage par défaut n'est pas adapté. Le paramétrage ci-dessous permet d'éviter les blocages du systèmes lors de l'écriture de grands fichiers sur des supports lents (par exemple des clefs USB 2).

Utilisation : créez un fichier /etc/sysctl.d/60-local-dirty-bytes.conf contenant les 2 lignes :

vm.dirty_bytes = 67108864
vm.dirty_background_bytes = 33554432

Ces deux valeurs ont été obtenus selon la très scientifique méthode du doigt mouillé. N'hésitez pas à les ajuster si vous le jugez nécessaire.

Ce paramètre n'est pas forcément applicable à un portable, car il peut augmenter la fréquence des écritures disques et donc augmenter la consommation électrique du portable.

Cas particulier de Xubuntu

Sous Xubuntu, du fait d'un défaut du paquet pm-utils, il est nécessaire de désactiver le script /usr/lib/pm-utils/power.d/laptop-mode pour que ce paramètre soit pris en compte. Pour cela, éditez ce fichier et ajoutez en 2e ligne la commande exit 0 :

 #!/bin/sh
 
 exit 0
 
 . "${PM_FUNCTIONS}"
 
 VM="/proc/sys/vm"
 vmfiles="laptop_mode dirty_ratio dirty_background_ratio 
          dirty_writeback_centisecs"

Pour en savoir plus :

Modifier le navigateur par défaut sous Xubuntu (et tous les dérivés de Debian)

Sous Xubuntu, lorsque plusieurs choix existent pour la même commande, le logiciel utilisé par défaut sur la machine sera défini au travers du mécanisme des alternatives.

Il s'agit d'un mécanisme système de bas niveau. Les environnements de bureau comme XFCE ont leur propre mécanisme de sélection, mais qui ne couvre pas tous les cas.

Le mécanisme des alternatives fonctionne de la façon suivante : par défaut, une note est attribuée à chaque alternative pour une commande donnée. L'application ayant la meilleure note sera sélectionnée par défaut. Il est ensuite possible à un administrateur de sélectionner manuellement une autre commande moins bien noté (mais mieux adapté à ses besoins).

Il pourra s'agir de commandes réelles (quelle version de java doit-on utiliser lorsque l'utilisateur utilise la commande java) ou de commandes virtuelles (par exemple, une application appellera la commande x-www-browser pour invoquer le navigateur par défaut).

Pour définir manuellement le navigateur par défaut sous Xubuntu, suivez la procédure suivante :

  • Lancez le « Configurateur d'alternatives » (dans « Tous les paramètres » sous Xubuntu).
  • La fenêtre de paramétrage des alternatives apparaît :

galternatives.png

  • Dans la liste de gauche (« Alternatives »), sélectionnez « x-www-browser », qui définit la commande servant à appeler le navigateur par défaut.
  • À droite (dans « Options »), apparaît la liste des navigateurs disponibles. Sélectionnez la navigateur voulu dans cette liste.
  • Fermez le « Configurateur d'alternatives ».

Xubuntu peut-il parler français ?

Si vous avez essayé d'utiliser la synthèse vocale sous Xubuntu, vous aurez constaté que le résultat n'est pas terrible, voire pas terrible du tout :

spd-say "Essai de la synthèse vocale"

Ce n'est pas difficile à expliquer, la synthèse vocale sous Ubuntu est paramétrée pour l'anglais. Donc les textes français sont prononcés avec un affreux accent anglais...

Il est possible d'utiliser Pico-TTS (https://github.com/rhdunn/svox), qui offre une bien meilleure prononciation du français :

  • Installez pico TTS et Speech-dispatcher :
sudo apt-get install libttspico-utils speech-dispatcher
  • Ouvrez le fichier « /etc/speech-dispatcher/speechd.conf » :
sudo nano /etc/speech-dispatcher/speechd.conf
  • Dans ce fichier, modifiez les lignes définissant le type de voix et la langue :
DefaultVoiceType  "MALE1"
DefaultLanguage "fr"
  • Puis, décommentez la ligne activant le module « pico-generic », en supprimant le « # » en début de ligne :
AddModule "pico-generic" "sd_generic" "pico-generic.conf"
  • Enfin, modifiez le module par défaut, afin d'utiliser « pico-generic » :
DefaultModule pico-generic
  • Sauvegardez le fichier « /etc/speech-dispatcher/speechd.conf » modifié.
  • Pour terminer, arrêtez le service de gestion de la synthèse vocale (il se relancera automatiquement) :
killall speech-dispatcher
  • Puis testez le paramétrage que vous venez de réaliser :
spd-say "Essai de la synthèse vocale"

Attention, ne lancez pas la synthèse vocale avec une commande sudo, cela l'empêcherait de fonctionner par la suite :

https://bugs.launchpad.net/ubuntu/+...

Des noisettes pour Squirrelmail

J'utilise pour gérer mon courrier un client de messagerie web, Squirrelmail. Celui-ci dispose d'un module d'extension, change_sqlpass qui permet de changer en ligne son mot de passe, si celui-ci est enregistré dans une base de données.

Le module annonce fièrement que ça dernière version est compatible avec PostgreSQL, qui est la base de données que j'utilise.

Génial, exactement ce que je cherchais !

Aussitôt dit, aussitôt fait, je vais chercher le module et je l'installe...

Installation... Relance... Essai...

Et là, déception, ça ne marche pas.

Petit tour du code, et là quelques surprises :

  • Les guillemets utilisé dans les requêtes SQL sont des guillemets doubles (ce qui marche avec MySQL, mais pas avec PostgreSQL).
  • Le mot de passe est passé à la moulinette escapeSimple[1] avant d'être chiffré. Avec MySQL, ça marchait bien, car le mot de passe était chiffré dans une requête SQL. Avec PostgreSQL, il faut utiliser une fonction externe de chiffrement avant de mettre le mot de passe en base. Là, c'est la cata., si le mot de passe contient, par exemple, un guillemet simple, celui-ci sera transformé, et le mot de passe enregistré ne sera pas celui que l'utilisateur a entré... Mauvaise surprise garantie à la reconnexion ^^
  • Petite cerise sur le gâteau (ce n'est pas forcément la faute du module), les caractères accentués ne passe pas. Par sécurité, il vaudrait mieux refuser ces mots de passe

Là, un léger doute m'étreint... Ce module a-t-il déjà été testé avec PostgreSQL... Peut-être pas ^^

Qu'à cela ne tienne, vous trouverez en annexe un petit correctif corrigeant ces problèmes (ce correctif, coupé en morceaux, a été dûment remonté au projet, avec un petit rapport d'anomalie en prime 1 2 3 4).

Ce correctif effectue les modifications suivantes :

  • Utilisation de guillemets simples dans le requêtes (attention, mettez à jour votre fichier config.php à partir de config.php.sample, faute de quoi ça ne marchera plus).
  • Utilisation de escapeSimple uniquement lorsque le mot de passe est envoyé tel quel dans une requête.
  • Ajout d'une option pour refuser les mots de passe contenant des caractères accentués (enfin, non ASCII).

Note

[1] Une fonction servant à modifier une chaîne de texte pour éviter qu'elle soit mal interprétée par une base de données