Après avoir installé Linux et l'avoir fait tourner sur mon portable, je me suis aperçu qu'il accédait sans arrêt au disque dur, même quand il n'y avait pas d'utilisateur logué sur le système. Le disque dur ne pouvait pas rentrer dans son mode d'économie d'énergie. Comme la réduction de l'activité du disque dur peut augmenter de façon importante la durée d'utilisation de la batterie, j'ai collecté les idées générales qui suivent.
Je les ai toutes testées sur une RedHat 4.1. Donc la localisation de certains fichiers de configuration peut être différente sur votre distribution (si c'est le cas, s'il vous plaît faites-le moi savoir).
Vérifiez dans votre /etc/crontab s'il démarre un processus toutes les minutes. Vous trouverez souvent atrun là.
Avec la commande at, vous pouvez mémoriser des commandes qui sont à exécuter ultérieurement. Certains systèmes Linux utilisent un démon atd spécialement consacré à cela ; d'autres (comme la RedHat) laissent le démon crond exécuter atrun une fois par minute.
Tout cela n'est pas réellement indispensable sur la plupart des systèmes puisque les commandes at ont rarement besoin d'être invoquées à une heure précise. Donc si vous trouvez une ligne comme celle qui suit dans votre /etc/crontab :
# Run any at jobs every minute * * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun
vous pouvez sans risque la changer en :
# Run any at jobs every hour 00 * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun
Lire man 5 crontab pour les détails. Certaines personnes peuvent même travailler correctement sans le démon crond. Donc si vous savez ce que vous faites, vous pouvez éventuellement envisager de le désactiver complètement.
Linux jongle à chaque instant avec un grand nombre de tampons correspondant à des fichiers ouverts. Donc votre système doit être assuré que les changements à l'intérieur des fichiers sont sauvegardés sur le disque dur dès que possible. Sinon ces changements seront perdus après un crash système.
Le démon update / bdflush s'occupe de cela. (Il y a deux noms pour le même programme, donc vous pouvez utiliser n'importe lequel des deux noms pour démarrer le démon). Le paramétrage par défaut fera en sorte que le démon appelle flush toutes les 5 secondes et sync toutes les 30 secondes.
Sur mon disque Fujitsu, cela engendre des accès incessants. (Apparemment, ce disque dur vide son cache en ram même si rien n'a changé. Mais cela dépend de la marque du disque dur : d'autres personnes m'ont dit que leur disque dur entre effectivement en mode "économie d'énergie" sans même les modifications qui suivent.)
Puisque Linux ne plante pas vraiment souvent, j'ai remplacé les deux valeurs ci-desssus par 3600 secondes (= une heure). Cela ne pose absolument aucun problème et de cette façon, l'accès incessant au disque cesse. (Mais si maintenant mon système plante, il y aura plus de fichiers perdus, bien entendu.)
ud::once:/sbin/update -s 3600 -f 3600
Lire la page de manuel de update pour davantage de détails.
Le démon syslogd est responsable des différents fichiers de log du système Linux qui se trouvent dans le répertoire /var/log/. Par défaut, syslogd écrira dans le fichier de log à chaque fois qu'il recevra un message provenant du système.
Vous pouvez arrêter cela en faisant précéder le nom du fichier d'un tiret dans /etc/syslog.conf. Voici un exemple comme trouvé dans le syslog.conf de mon système :
# Logge tout (sauf le mail) de niveau info ou plus. # Ne pas logger les messages d'authentication prives ! *.info;mail.none;authpriv.none -/var/log/messages
Cela signifie encore que si le système plante, le message qui a reporté le problème peut ne pas avoir été enregistré sur le disque dur. Dilemme...
Pendant la séquence de démarrage, les processus initiaux et les démons sont démarrés à l'aide de la commande init. Cette commande appelle sync avant chaque processus qu'elle crée.
Vous pouvez modifier cela en enlevant l'appel sync() dans le code source et en recompilant la commande.
Pour éviter des problèmes de tampons de fichiers perdus, vous devriez ajouter un appel à sync dans le script système /etc/rc.d/init.d/halt, juste avant que le script démonte les systèmes de fichier.
La partition de swap de Linux est utilisée pour augmenter la mémoire vive grâce à une mémoire virtuelle. C'est encore une cause possible d'accès au disque dur. Si votre portable a déjà beaucoup de RAM ou bien si les applications que vous utilisez sont très rustiques (pensez à vi), vous pouvez envisager de la désactiver.
Bien entendu, cela dépend de ce que vous avez l'intention de faire. De 4 à 8 Mo, ce n'est pas suffisant et vous devez dans ce cas utiliser une partition de swap. De 8 à 16 Mo, des applications en console texte fonctionneront très bien et si vous pouvez éviter d'utiliser trop de fonctionnalités multitâches, vous pouvez sans risque désactiver le swap. L'environnement X Window nécessite beaucoup de RAM et vous ne devriez pas l'utiliser sans partition de swap à moins que vous ayez beaucoup plus que 16 Mo.
Aparté : mon portable avec ses 16 Mo et sa partition de swap désactivée peut exécuter une session emacs, quatre shells bash et compiler un noyau sans dépassement de mémoire. C'est suffisant pour moi.
echo "Should the system use swap?" echo " 0: No." echo " 1: Yes." /bin/echo "Your choice: \ c" read SWAPCHOICE case "$SWAPCHOICE" in 0) # Do nothing. echo "(Swap partitions disabled)" ;; *) # Start up swapping. echo "Activating swap partitions" swapon -a esac
De cette façon, vous pouvez utiliser la partition de swap avec l'adaptateur branché et la désactiver quand vous êtes sur batterie.
J'utilise mon portable pour développer et tester des scripts CGI pour des sites Web, c'est pour cette raison que je fais tourner un serveur local sur mon portable. La configuration standard est un peu trop sophistiquée si la seule chose que vous voulez faire est juste de tester des scripts et vérifier des pages Web de temps en temps.
Dans httpd.conf, vous n'avez qu'à mettre les valeurs de MinSpareServers et de StartServers à 1. Ça sera suffisant pour un site local de test.
Si vous ne souhaitez plus que le démon httpd logue ses messages, vous devez le recompiler. Lisez la documentation pour plus de détails.
Grant Taylor a recompilé la partie log d'Apache et découvert que ça "ne l'empêche pas de déclencher le disque. J'ai donc utilisé une autre, et AMHA meilleure, solution : j'ai configuré Apache pour être lancé par inetd au lieu de se lancer tout seul". Lire man inetd pour les détails.
Configurer XFree pour les portables est tout un poème. Et une fois encore, je dois vous renvoyer à la page "Linux laptop" où vous pourrez trouver beaucoup d'aide sur ce sujet.
L'extinction de la console sous X ne fait que rendre l'écran noir mais ne coupe pas ce dernier. Comme mentionné dans la note de bas de page sur cette fonctionnalité, vous pouvez utiliser les options dpm de xset pour changer cela. Cependant, cette fonctionnalité dépend du chipset et du BIOS de votre portable.
Grant Taylor utilise le paramétrage suivant pour mettre en veille son portable avec l'aide de apmd et de l'économiseur d'écran :
# Run xscreensaver with APM program xscreensaver -timeout 5 \ -xrm xscreensaver.programs:apm_standby \ -xrm xscreensaver.colorPrograms:apm_standby &
où "apm_standby est un script perl suid qui permet seulement à certaines personnes de faire un apm -S".
Nous sommes bien d'accord qu'Emacs n'est pas un éditeur mais un art de vivre. Voici un truc de Florent Chabaud : "si vous utilisez emacs, peut-être avez-vous remarqué que l'éditeur fait des sauvegardes automatiques. C'est bien sûr utile et cela ne doit pas être désactivé mais les paramètres par défaut peuvent être adaptés à une utilisation sur un portable.
J'ai mis dans le fichier /usr/share/emacs/site-lisp/site-start.el les deux lignes suivantes :
(setq auto-save-interval 2500) (setq auto-save-timeout nil)
Cela désactive l'auto-sauvegarde réglée sur le temps et fait que l'auto-sauvegarde ne se fait que toutes les 2500 touches. Bien entendu, si vous tapez un texte, ce dernier paramètre devrait être réduit, mais pour la programmation, c'est suffisant. Puisque chaque action est comptée (touche fléchée, backspace, delete, copier-coller, etc...), le nombre de 2500 actions est atteint rapidement."
Si votre système Linux semble continuer à accéder au disque dur trop souvent, vous pouvez essayer de comprendre ce qui se passe à l'intérieur en utilisant une commande ps ax. Cela montrera tous les processus en cours et leur nom complet. Parfois, il révèle aussi l'argument en ligne de commande de chaque processus.
Puis lisez la page de manuel de chaque processus pour comprendre ce qu'il fait et comment changer son comportement. Avec cette méthode, vous trouverez très vraisemblablement le processus responsable. strace peut également se révéler utile.
S'il vous plaît envoyez moi un email si vous découvrez quelque chose de nouveau.