Bonjour, je viens de finir ma partition pour mon système embarqué (elle fait 49 Mo). Maintenant j'aimerais monter en Cramfs tous les repertoires accessibles en lecture seul (comme bin,usr,sbin,..) et d'autres en lecture/écriture mais en mémoire vive (comme /home,/etc,...)
Je ne sais pas comment faire cela.. J'ai deja essayé de tout mettre en cramfs, mon image fait 23Mo ùmais qd je la passe à inird de grub , il me met image too big...
Merci pour votre aide!!
Nicolas.
# cramfs ?
Posté par lcld . Évalué à 2.
Si j'ai bien compris ce que tu veux faire, ton système charge toute ta partition en mémoire vive : tu en as assez ?
Je demande car tu peux aussi utiliser un système à la KNOPPIX, cad avec un système de fichiers compressé en lecture seule. Ex. de systèmes de fichiers : cloop, squashfs, isofs (avec compression transparente)
Si tes besoins le permettent, il se peut que tu puisses te passer d'une image de démarrage (solution non testée) :
* intégrer au noyau tous les pilotes nécessaires pour qu'il puisse monter / sans module et passer la bonne valeur pour l'option 'root'
* pas d'option initrd
* créer un script /sbin/preinit (exécutable) du genre : * ajouter l'option init=/sbin/preinit
Avec une image de démarrage, même très petite, tu as beaucoup plus de libertés pour préparer /. Et puisque c'est pour de l'embarqué, il reste préférable d'intégrer au noyau tous les pilotes nécessaires pour monter /.
Avant de développer cette possibilité, ce serait mieux que tu décrives plus précisement ce que tu veux.
Au fait, tu pars de quelle distribution ? Quel quantité de RAM ? Quoi comme unité de stockage ?
[^] # Re: cramfs ?
Posté par KARP Nicolas . Évalué à 1.
De plus je me passe deja d'une image de mon système de fichier au démarrage. Je passe root=maPartition au grub et ca marche nickel.. J'ai aussi intégrer tous les pilotes pour la gestion de ma carte (+ système de fichier en ROM et ext2)
Ma distribution est une distrib que je crée de toutes pièces ( noyau sur kernel.org, commandes de bases : busybox, etc..)
De plus je n'ai pas l'executable tar d'installer sur ma machine, est ce qu'il est obligatoire ou est ce qu'on peut se passer de lui si tu as une autre solution n'hésite pas...
Merci d'avance!!
PS : Les sources de mon système embarqué seront présentes dès la fin du projet sur mon site internet.. Je mettrais un lien dans le forum..
Nicolas
[^] # Re: cramfs ?
Posté par lcld . Évalué à 2.
J'imagine que Linux garde tout ce qu'il peut en cache donc si tu as assez de RAM, il ne devrait pas y avoir de différence selon que tu copies ou non tout ta partition (à la limite, tu peux forcer une mise en cache au démarrage).
(... et bunzip2)
Bah, c'était pour compresser et gagner de la place. Apparemment, tu en as assez (49Mo sur 64) donc tu peux aussi y aller à coup de 'cp -a'
Si tu peux te contenter de tout copier sauf certains répertoires (ex: /bin), la solution que j'ai donnée dans mon précédent post doit suffire, quitte à ajouter /usr (pour Firefox) à la liste /etc,/home...
Pour avoir _toute_ ta partition en RAM, j'aurais dit qu'il faut passer par un image de démarrage (initrd). Mais apparemment, dans ton cas, la méthode suivante devrait fonctionner :
* intégrer au noyau tous les pilotes nécessaires pour qu'il puisse monter / sans module et passer la bonne valeur pour l'option 'root'
* pas d'option initrd
* créer un script /sbin/preinit (exécutable) du genre : * ajouter l'option init=/sbin/preinit
* (dans ce cas, plus besoin de faire quoique ce soit de spécial pour /etc, /home, etc)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.