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).
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.
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:
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).
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).
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).
Article: emacs on N810 (dans les forums de Maemo). C'était plus ou moins mon point de départ.
Cet article est lui-même basé sur les instructions suivantes.
Bug: inconsistent mmc device naming at boot time when one card is missing.
Discussion: mount point confusion (dans les forums de Maemo).
Discussion: Mount mmc2 in ext3 using fstab (dans les forums de Maemo).