Ajouter du Swap sous pdaXrom
Le 31 mars, 2006 - 11:20 | Ulhume

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é.

Vos remarques et commentaires...

pgas, le 31 mars, 2006 - 13:52

on peut aussi faire de la swap dans un repertoire nfs
en grugeant linux en utilisant un fichier de swap dans un fichier formaté en ext2 dans un repertoire nfs :)

http://www.denx.de/wiki/DULG/SwappingOverNFS

Pratique pour la compilation native de truc C++

Ulhume, le 1 avril, 2006 - 10:53

Ah oui, ça peut être pratique tant que l'on reste connecté avec un PC. Sinon, j'ai refais des tests côté perfs et lorsque le swap est sur une CF en partition native, y'a pas photo, c'est mieux. Sinon, j'ai vraiment l'impression que le vrai goulot du Zaurus, ce sont les IO.

VNet, le 2 avril, 2006 - 22:29

Sinon pour les débutants en linux comme moi, et qui n'ont d'autre choix que d'utiliser leur SD comme swap, utiliser swapd est très pratique. (mais peut être pas la solution la plus performante j'en convient, mais au moins firefox ne se ferme plus a peine il a chargé une page web)

Ulhume, le 2 avril, 2006 - 23:37

Et bien je connaissais tout simplement pas. Je vais regarder cela pour une mise à jour. En terme de performances comparées cela donne quoi ?

VoodooNet, le 4 avril, 2006 - 02:02

ça je peux pas te dire.. j'ai pas testé avec d'autres méthodes de swap, je veux pas formatter ma SD (ou une partie) en ext2.

Ulhume, le 4 avril, 2006 - 10:25

Je vais tenter cela un de ses 4 alors. A priori si ce n'est pas destructif, je suis mieux placé pour comparer.

VNet, le 4 avril, 2006 - 16:12

En effet ;)

cortex, le 14 avril, 2006 - 21:57

je sait pas si s'est une reur mais chez mois avec
dd if=/dev/null of=/mnt/card/.SwapFile bs=1M count=16
sa ne arche pas
mais avec
dd if=/dev/zero of=/mnt/card/.SwapFile bs=1M count=16
la sa marche

merci pour ce tuto mon zaurus va surement mieu tourner même si s'est sur la sd
et oui j'ai le wifi

Ulhume, le 15 avril, 2006 - 08:46

Oui, c'est bien une erreur, merci :)

arofarn, le 31 mai, 2006 - 01:45

Salut,

je voulais juste relevé une petit incohérence entre le script /etc/rc.d/init.d/swap qui fait appel au fichier de config /etc/sysconfig/swap

et de la suite " Ce script se paramètre en créant puis modifiant un fichier placé en /etc/swap"

sinon, impéccable, c'est super pratique d'avoir un swap sur une partition de la SD

Ulhume, le 5 juin, 2006 - 09:00

C'est corrigé, merci :)

Publier un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <div> <p> <br>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

CAPTCHA
Cette question est là pour déterminer si vous êtes humain ou pas...