Cet article présente, via un cas pratique d'installation d'une SD Card, ce
que le Zaurus attend de ces périphériques de stockage pour les reconnaître. Il
sera également l'occasion de jeter un oeil aux différents systèmes de fichiers
exploitables sur le Zaurus.
Le matériel
J'utilise un zaurus SL5500 avec la rom de sharp v3.10. et une carte Nokia.
Sur la carte on peut lire :
|
Memory Card
Minitel
8 Mbyte
Nokia
|
|
Nokia
Type: DTS-8f
MADE IN USA
BH08
V1 REV.-P
D0002DT
USA
|
Il s'agit d'une carte récupérée sur un vieux Nokia Communicator qui ne
servait plus.
Préambule
N'ayant pas les moyens de m'acheter un carte mémoire dans l'immédiat et ayant
toujours besoin d'un peu d'espace sur le zaurus, je me suis dit que j'allais
utiliser cette SD Card laissée à l'abandon ;-). L'emplacement compact flash sur
le zaurus me servant à d'autres applications (Réseau 802.11b, Bluetooth,
Transferts de fichiers sur CF 256Mb, ...), le lecteur de cartes sd est
l'emplacement idéal pour ajouter de l'espace.
J'enfiche donc la carte dans le lecteur et, ô déception, ... rien ne se passe
...
Je décide alors de visiter quelques pages sur internet et ne trouve rien
(malgré des années d'expériences sur google ;-) ).
Examen
Sur le zaurus, dans le terminal ou via ssh, je tape les commandes suivantes
:
# mount /dev/mmcda1 /mnt/card
mount: Mounting /dev/mmcda1 on /mnt/card failed: Invalid argument
# mount /dev/mmcda /mnt/card
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram1 44 44 0 100% /dev
/dev/mtdblock1 28785 14130 13119 52% /home
/dev/mmcda 7810 0 7810 0% /usr/mnt.rom/card
# cat /etc/mtab
/dev/root / cramfs ro 0 0
/proc /proc proc rw 0 0
/dev/ram1 /dev minix rw 0 0
/dev/mtdblock1 /home ext2 rw,sync 0 0
none /dev/pts devpts rw 0 0
/dev/mmcda /usr/mnt.rom/card vfat rw 0 0
On tire plusieurs enseignements de cet ensemble de commandes.
- La carte n'est pas partitionnée de la façon attendue par le zaurus (on doit
pouvoir monter la première partition du périphérique
/dev/mmcda
pour que ça fonctionne automatiquement).
- La carte est reconnue et utilisable puisqu'on peut la monter. Un
lsmod m'apprend que le module utilisé est celui par défaut de
sharp sharp_mmcsd_m .
- Enfin, on voit dans la liste des périphériques montés que le système de
fichier utilisé est vfat.
Mise en conformité
Je décide donc de mettre la carte en conformité avec ce que s'attend à
trouver mon zaurus, c'est à dire une carte partitionnée avec un système de
fichier valide sur la première partition. Les systèmes de fichiers à ma
disposition sont dos, vfat, ext2 et minix. Je choisis ext2, principalement pour
pouvoir utiliser des liens symboliques.
Sous linux, quand on pense partition, on pense fdisk. fdisk (comme nombre
d'utilitaires indispensables, à l'instar de ssh) n'est pas fourni avec le
zaurus. Qu'à celà ne tienne, on le trouve sur le Zaurus Software
Index sous forme d'ipk, on le transfère sur le zaurus ou dans son feed préféré
et on l'installe en trois clics.
Viennent ensuite les opérations chirurgicales de préparation de la carte (ce
que vous avez à taper est en rouge):
# umount /mnt/card
# fdisk /dev/mmcda
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-245, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-245, default 245):
Using default value 245
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: If you have created or modified any DOS 6.x
partitions, please see the fdisk manual page for additional
information.
Syncing disks.
# mkfs.ext2 /dev/mmcda1
mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1960 inodes, 7824 blocks
391 blocks (5.00%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
1960 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
Enfin !
J'éjecte la carte et la réinsère ... Ca marche ! Vite, on vérifie !
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram1 44 44 0 100% /dev
/dev/mtdblock1 28785 14130 13119 52% /home
/dev/mmcda1 7574 15 7168 0% /usr/mnt.rom/card
Et sur le zaurus, on trouve le bel icône sd card à droite de la barre des
tâches...
Retour sur les systèmes de fichiers
L'avantage principal de la vfat est qu'elle laisse plus de place
disponible que l'ext2 et offre le support des noms longs. Vous
l'utiliserez donc pour du stockage (répertoires de mp3, archives,
documents).
Les systèmes "dos" (msdos et vfat) sont les plus répandus. Votre carte
servira donc plus facilement de vecteur de transfert de fichiers entre le
zaurus et votre appareil photo, votre palm ou votre pocket pc. En plus, à
condition d'utiliser une FAT16, ce sont les seuls systèmes de fichiers que vous
pouvez utiliser poue flasher votre Zaurus. Pour rappel mkfs.vfat formatte en
FAT16 par défaut, pour formatter en FAT32, il faut taper mkfs.vfat -F 32,
man mkfs.vfat pour de plus amples informations.
Le principal avantage de l'ext2 est la prise en charge des liens
symboliques. Il est à utiliser si on veut se servir de la carte pour
installer des applications supplémentaires. En effet, les installations
provoquent presque à coup sûr la création de liens symboliques, non pris en
charge par la vfat.
Cartes Compact Flash
La technique est la même (création d'une partition, création d'un système de
fichier, utilisation). Le zaurus crée de lui même les répertoires nécessaires
une fois la carte reconnue. Vous n'avez qu'à créer le système de fichiers. Pour
les CF comme pour les SD, vous avez le choix du type parmi les trois cités plus
haut et minix (ce dernier n'est utilisé à ma connaissance que pour la partition
/dev, créée en ram. Pour plus d'informations sur la création de la partition
/dev sur /dev/ram1 (cocasse ?) voyez la page "the Z boot process [8a]" sur
docs.zaurus.com.
Points de montage
Voici un tableau récapitulatif des points de montage de votre zaurus :
Périphérique | Point de montage | Système de
fichiers |
/dev/root | / | cramfs |
/proc | /proc | proc |
/dev/ram1 | /dev | minix |
/dev/mtdblock1 | /home | ext2 |
none | /dev/pts | devpts |
/dev/mmcda1 | /mnt/card | A votre goût |
/dev/hda1 | /mnt/cf | A votre goût |
cramfs (vous avez bien dû vous posez la question, non ?) est un
système de fichiers compressé dans lequel on ne peut écrire mais ne nécessitant
que très peu de place. Il est donc tout naturellement employé dans les ROM des
ordinateurs de poche tel que le zaurus. La meilleure source de documentation
sur cramfs est son code source, dans les sources du kernel linux et la
documentation succinte trouvable sur votre système dans les fichiers
/usr/src/linux/Documentation/filesystems/cramfs.txt et
/usr/src/linux/fs/cramfs/README , à condition que vous ayez
installé les sources d'un kernel. Enfin, signalons que pour créer un système de
fichiers cramfs, on utilise la commande mkcramfs et pour le
vérifier cramfsck ... Vous savez tout maintenant...
@+
Xavier Garreau - <xavier@xgarreau.org>
http://www.xgarreau.org/
Ingénieur de recherche PRIM'TIME TECHNOLOGY
http://www.prim-time.fr/
Membre fondateur du ROCHELUG
http://www.rochelug.org/
Références :
- ZSI : Zaurus Software Index : http://www.killefiz.de/zaurus/
- Zaurus CF/SD Device List : http://zaurus.knightfire.com/ZaurusIndex.php
- Sharp Zaurus Developer site : http://docs.zaurus.com/
- The Z boot process : http://docs.zaurus.com/index.php?id=the-z-boot_process
Auteur : Xavier GARREAU
Modifié le 11.06.2003
|