Artisan Numérique

/vintage/zaurus/ Ajouter du Swap sous pdaXrom

Le swap c'est, en gros, une extension de la mémoire sur un disque dur. Les disques sont généralement plus lents que la mémoire mais cela permet d'avoir plus d'applications chargés, ou des fichiers plus lourds qu'ils ne seraient possible autrement.

Le swap fonctionne essayant de mettre sur les disques les blocs mémoire les moins utilisés et remontant en mémoire vive ceux qui sont "actifs". Activer le swap sur un Zaurus permet donc de stocker sur un disque la mémoire des applications les moins actives en laissant la place libre à celle que vous utilisez.

Ceci dit, il y a du pour et du contre. La mise en place d'un swap a clairement rendu mon système plus réactif, en revanche certains dirons, et n'auront pas tord, que cela réduis la vie de la carte flash sur laquelle le swap est hébergé. En effet, la mémoire flash s'use, c'est connu, et plus on écrit au même endroit, plus cet endroit s'use vite. ceci dit c'est un "vite" tout relatif :)

Choix du média

Pour les possesseurs d'un SL-C3X00 avec disque dur, le choix de la place est tout trouvé. Pour les autres, j'ai une préférence pour une carte CF car plus rapide en accès que la SD. Ceci dit, pour ceux qui ont une carte Wifi, le choix est vite fait ;-)

Choix du système de fichier

En réalité il s'agit plus là d'un choix partition/fichier. En effet, on peut utiliser un fichier comme stockage du swap, ou une partition faite pour cela. J'ai une préférence pour la partition car pour un fichier, on rajoute un intermédiaire. EN effet, écrire dans un swap fichier, c'est aussi écrire à travers un fileSystem type FAT ou EXT2 en plus du fileSystem spécifique dédié au Swap. Après c'est à vous de voir.

Choix de la taille

Là, vous êtes seul juge, je pense que le classique mémoire x 2 peut être utilisé même si cela n'a rien de scientifique. Personnellement, je tourne avec 16Mo.

Création d'une partition Swap

Si vous faites le choix de la partition, il suffit d'utiliser fdisk pour créer une partition de la taille désirée. Il faut que cette partition soit de type 82 (Linux Swap). Une fois votre partition crée en /dev/hda1 par exemple, il suffit de la formater :

mkswap /dev/hda1

Votre partition est maintenant utilisable. Sauter à l'étape suivante...

Création d'un fichier Swap

Si l'on désire créer un fichier de swap de 16mo par exemple sur le disque /mnt/card (SD), il suffit de taper :

dd if=/dev/zero of=/mnt/card/.SwapFile bs=1M count=16

Une fois ceci fait, il faut "formater" le fichier de swap :

mkswap /mnt/card/.SwapFile

Mise en oeuvre du swap

A noter qu'à partir de la béta 4 de pdaXrom, le script qui suit n'est plus nécessaire. En effet, pdaXrom reconnait automatique, au démarrage, la présence d'une partition de swap et l'active tout seul.

Il faut que le swap soit déclaré à chaque redémarrage de la machine. Pour cela il suffit de créer un fichier /etc/rc.d/init.d/swap comme suit. Ceux qui ont utilisé un fichier de swap doivent remplacer /dev/hda1 par /mnt/card/.SwapFile :

#!/bin/sh

# Zaurus pdaXrom swap script
# Auteur: site.artisan@_bad_karma-lab.net (remove _bad_ to send an email)
#
# modify /etc/sysconfig/swap file to specifiy storage device (or file)

. /etc/rc.d/init.d/functions
. /etc/sysconfig/swap

case "$1" in
    start)
        action "Starting swap:" /sbin/swapon $SWAP
        ;;

    stop)
        action "Stopping swap:" /sbin/swapoff $SWAP
        ;;

    restart|reload)
        $0 stop
        $0 start
        ;;

    *)
        echo "Usage: $0 (start|stop|restart)"
        exit 1
        ;;
esac
exit 0

Ce script se paramètre en créant puis modifiant un fichier placé en /etc/sysconfig/swap

# define your swap file/partition here
# swap file/partition should be create with mkswap command
SWAP=/dev/hda1

Ensuite pour lancer le script au démarrage

chmod +x /etc/rc.d/init.d/swap
ln -s ../init.d/swap /etc/rc.d/rc4.d/S15swap
ln -s ../init.d/swap /etc/rc.d/rc5.d/S15swap
ln -s ../init.d/swap /etc/rc.d/rc6.d/S15swap

Attention, si vous utilisez la fichier swap, vous devez placer le démarrage du swap après le lancement des services SD/SF selon le cas.

Conclusion

Une fois redémarré, le système est fonctionnel, pour s'en assurer :

swapon /dev/hda -s

Filename Type Size Used Priority /dev/hda1 partition 15656 0 -4 Cela nous montre que l'un swap de 16mo d'activité et pour l'instant assez peu utilisé.