English version

Repartitionner la carte mémoire interne du Nokia N810

Note: cette procédure n'est pas officielle et n'est pas garantie. Elle fonctionne avec mon N810, mais je n'ai pas pu tester tous les cas de figure. En particulier, je n'ai pas testé la connexion par USB à un PC, ni la mémoire virtuelle. En cas de blocage, il y a toujours la solution d'effectuer un redémarrage complet en enlevant la batterie pendant plusieurs secondes.

Toutes les commandes suivantes doivent être exécutées en tant que root (cf la FAQ pour passer root). Vous devez aussi désactiver la mémoire virtuelle via le panneau de configuration (si vous l'aviez activée).

Repartitionnement de la carte mémoire

Créons d'abord le point de montage pour la seconde partition:

# mkdir /media/mmc3

Avant de repartitionner la carte, assurez-vous que vous avez sauvegardé toutes vos données, car elles seront perdues. Pour pouvoir repartitionner, il faut démonter la partition de la carte, normalement montée sur /media/mmc2 automatiquement:

# umount /media/mmc2

Puis on lance l'utilitaire de partitionnement sur le device associé à la carte mémoire:

# sfdisk /dev/mmcblk0

Il faut ensuite entrer le premier secteur de la partition, puis la taille (en cylindres). sfdisk indique le nombre total de cylindres: 61440. Je l'ai divisé par 2 (pour obtenir deux partitions de 1 Go): 30720. Donc pour la première partition: 0 30720, et pour la seconde: 30720. Je ne sais pas pourquoi, mais la première partition a été remontée. Donc on la démonte de nouveau:

# umount /media/mmc2

Les partitions ont été déclarées; il faut maintenant les construire:

# mkfs.vfat -F 32 /dev/mmcblk0p1
# mkfs.ext3 /dev/mmcblk0p2

(si vous ne les avez pas, ces deux commandes sont fournies respectivement par les paquets dosfstools et e2fsprogs, qu'il faut donc installer au préalable). Avant de passer au montage automatique, vous pouvez voir ce que j'ai obtenu sur mon N810 en tapant toutes ces commandes.

Montage et démontage automatique

Maintenant, après un redémarrage, la première partition va toujours être montée automatiquement, mais pas la seconde. Cette dernière peut être montée à la main (sous root), mais on peut préférer la monter automatiquement.

La manière standard pour définir les choix de montage sous Linux est de modifier le fichier /etc/fstab, mais le N810 ignore ce fichier (apparemment à cause d'un bug du noyau qui fait qu'une carte mémoire ne serait pas toujours associée au même device); d'ailleurs, le contenu par défaut de ce fichier sur le N810 est incorrect.

Sur le N810, le montage automatique de la carte mémoire interne se fait par le script /usr/sbin/osso-mmc-mount.sh (qui utilise le script /usr/sbin/mmc-mount, que l'on peut modifier pour autoriser les exécutables sur la partition en VFAT, par exemple), et il y a aussi un script pour le démontage: /usr/sbin/osso-mmc-umount.sh. Voici mes modifications:

/usr/sbin/osso-mmc-mount.sh

Avant le exit $RC (dernière ligne), j'ai ajouté:

if [ $PDEV = /dev/mmcblk0p1 ] && [ $MP = /media/mmc2 ]; then
  # Try to mount the second partition too, but do not report any error.
  KERNEL_VERSION=`uname -r`
  if install_module $KERNEL_VERSION mbcache; then
    if install_module $KERNEL_VERSION jbd; then
      if install_module $KERNEL_VERSION ext3; then
        mount -t ext3 -o noatime /dev/mmcblk0p2 /media/mmc3
      fi
    fi
  fi
fi

J'ai mis l'option noatime, classique pour les mémoires flash. On peut également ajouter l'option data=writeback. Pour plus d'information, voir la page man de la commande mount (page en français).

/usr/sbin/osso-mmc-umount.sh

Juste avant le else, j'ai ajouté:

if [ $MP = /media/mmc2 ]; then
  # Try to unmount the second partition too, but do not report any error.
  umount /media/mmc3 2> /dev/null
fi

Mais attention! Le démontage échouera si le système de fichier est busy (e.g., fichier ouvert ou processus qui a son répertoire de travail dessus).

Utilisation de la partition ext3

Sur la partition ext3, on a évidemment les attributs standard Unix. En ce qui me concerne, j'ai créé un répertoire /media/mmc3/user (sous root), puis j'ai exécuté: chown user.users /media/mmc3/user. Ainsi, ça me fait un deuxième répertoire personnel. J'ai également créé un répertoire /media/mmc3/opt où j'installe les logiciels compilés par moi-même (avec un make install sous root, évidemment).



webmaster@vinc17.org