Optimiser le temps de démarrage d'Ubuntu Eee 8.04 sur l'Eee PC 701

(English translation here)

Environ 80 secondes pour démarrer, contre 20 secondes environ pour Xandros... A priori, la distribution Ubuntu EEE n'est pas la plus rapide sur l'Eee PC. Mais on peut grandement améliorer les choses, grâce à quelques petites manips assez simples.

Avant tout, installons un noyau Linux Ubuntu spécialement taillé pour l'Eee. Oui je sais, c'était déjà supposé être le cas avec le noyau proposé dans Ubuntu Eee 8.04. Cependant, pour l'avoir testé, je peux confirmer que ce noyau 2.6.24-19-eeepc change radicalement les choses. Je suis passé de 80 secondes de boot à environ 37 secondes, à décomposer en 27 secondes de boot réel puis 10 secondes pour charger entièrement le bureau Gnome.

Ce noyau "magique" se trouve ici : http://array.org/ubuntu/
Pas d'inquiétude, il s'installe comme un logiciel, après avoir ajouté l'adresse de son dépôt au gestionnaire de sources de logiciel. Dans un terminal, ça donne ça (taper Entrée après chaque ligne) :

echo "deb http://www.array.org/ubuntu hardy eeepc" | sudo tee /etc/apt/sources.list.d/array.list
wget http://www.array.org/ubuntu/array-apt-key.asc
sudo apt-key add array-apt-key.asc
sudo apt-get update
sudo apt-get install linux-eeepc linux-headers-eeepc


Il faut ensuite redémarrer, c'est ce nouveau noyau qui sera désormais lancé au démarrage de la machine.

Pour gagner encore quelques secondes :

Editer le fichier /boot/grub/menu.lst pour modifier quelques paramètres de lancement du nouveau noyau (il doit se trouver à la ligne 132 du fichier) : on supprime le paramètre "splash" (la jolie barre de progression orange d'Ubuntu fait perdre 2 secondes lors du démarrage) et on ajoute le paramètre elevator=deadline (qui permet d'utiliser une autre politique d'accès disque, faisant gagner 1 seconde) ainsi que la déclaration de la résolution d'écran. La ligne doit alors ressembler à ça :

kernel /boot/vmlinuz-2.6.24-19-eeepc root=UUID=4454fc22-95bf-4519-8402-06e6296780d3 ro elevator=deadline x=800 y=480

On peut aussi réduire le décompte initial de 3 à 1 seconde (paramètre "timeout" dans les premières lignes du fichier).



L'utilitaire BootChart (sudo aptitude install bootchart) permet de générer des rapports détaillés à chaque démarrage de la machine. Ces rapports se retrouvent sous forme de fichiers PNG dans le dossier /var/log/bootchart. Comme on le voit, avec ces manip,s je suis passé de 42 secondes de boot à 25 secondes, un gain pour le moins appréciable.

Enfin, on peut installer wicd en lieu et place de network-manager, pour éviter d'avoir à saisir le mot de passe du trousseau Gnome à chaque fois qu'on ouvre une session, au moment du raccordement au réseau wifi (voir cette page du wiki eeeuser). Comme il est très probable que vous serez le seul utilisateur de votre Eee PC (un bijou comme ça, ça se prête pas !), on peut aussi se connecter directement, sans passer par la page d'accueil GDM, en allant dans Administration > Fenêtre de connexion, onglet Sécurité, puis cocher "Activer la connexion automatique" en choisissant votre login dans le menu déroulant juste en dessous de la case à cocher.

Pour plus de détails techniques, consulter cette page du forum eeeuser.com, en anglais. Pour quelques manips supplémentaires, voir la page Asus Eee PC 701 du wiki français Ubuntu, ainsi que Ubuntu on the Eee PC dans la documentation Ubuntu anglo-saxonne.

Processeur à 100 % quand le wifi est activé

J'ai remarqué qu'au démarrage de l'EEE PC, avec ce nouveau noyau, le CPU semblait monopolisé à presque 100 % dès le démarrage, sans jamais retomber. Le moniteur Gnome n'indiquait pourtant aucun processus à plus de 5 ou 6 % d'utilisation... C'est avec la commande TOP, dans un terminal, que j'ai pu voir qu'un certain iwpriv était le coupable. Il s'agit d'un processus lié à l'activation du wifi... Effectivement, en coupant le wifi (Fn+F6), le CPU retombait à un niveau d'utilisation correct, pratiquement 0 % lorsqu'aucun logiciel n'est lancé. Curieusement, cette monopolisation à 100 % ne paraissait pas ralentir outre mesure les performances de la machine...

Sur la page Reduced Power Usage du wiki Ubuntu (en anglais), j'ai trouvé la solution pour régler ce problème. Il s'agit simplement de créer quatre petits scripts, deux dans /etc/acpi/battery.d et deux dans /etc/acpi/ac.d/.

Pour créer ces scripts, je conseille d'utiliser la commande sudo nano suivie du chemin et du nom du fichier à créer, puis de copier-coller dans la console les contenus proposés (Nano est un éditeur de fichier en mode console : Ctrl+O pour valider une modification du fichier, puis Ctrl+X pour sortir de Nano). Ce qui donne donc :

sudo nano /etc/acpi/ac.d/10-vm_settings.sh

dans lequel on place le code suivant :

#!/bin/bash
# Tweak virtual memory for running on AC.

echo 60 > /proc/sys/vm/swappiness
echo 3000 > /proc/sys/vm/dirty_expire_centisecs
echo 500 > /proc/sys/vm/dirty_writeback_centisecs
echo 10 > /proc/sys/vm/dirty_background_ratio
echo 40 > /proc/sys/vm/dirty_ratio


Puis :

sudo nano /etc/acpi/battery.d/10-vm_settings.sh

où l'on place le code suivant :

#!/bin/bash
# Tweak virtual memory to conserve power when running on batteries.

echo 10 > /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/dirty_expire_centisecs
echo 0 > /proc/sys/vm/dirty_writeback_centisecs
echo 60 > /proc/sys/vm/dirty_background_ratio
echo 95 > /proc/sys/vm/dirty_ratio


Puis

sudo nano /etc/acpi/ac.d/20-wireless_power.sh

où l'on place :

#!/bin/bash
# Change the wireless power mode to AC.
# This should work for most chipsets

for x in $(/bin/ls -d /sys/class/net/*/wireless | /usr/bin/cut -d'/' -f5); do
/sbin/iwconfig $x power off
/sbin/iwpriv $x set_power 6
done


Et enfin...

sudo nano /etc/acpi/battery.d/20-wireless_power.sh

Que l'on remplit ainsi :

#!/bin/bash
# Change the wireless power mode to Battery.

for x in $(/bin/ls -d /sys/class/net/*/wireless | /usr/bin/cut -d'/' -f5); do
/sbin/iwconfig $x power on power period 2 power timeout 300u
/sbin/iwpriv eth1 set_power 7
done


On reboote, et désormais le CPU paraît beaucoup plus calme...
Vus : 362
Publié par Grégory Gutierez : 12