tout d'abord excusez-moi si je me suis trompé de section mais je ne savais pas trop où poster ce sujet, étant donné que mon problème porte sur l'utilisation d'un ramdisk sur une carte ARM9.
Voici mon problème : j'ai installé un linux sur ma carte ARM9 donc, et je désire utiliser un initrd afin que la carte boote toute seule (pas de NFS pour aller chercher l'initrd sur le réseau). Le soucis est qu'apparemment l'exécutable que je met dans mon initrd pose problème car lorsque l'arborescence est chargée en mémoire vive, j'obtient des erreurs du type :
EXT2-fs error (device ram0): ext2_check_page: bad entry in
directory #103: rec_len is smaller than minimal - offset=0, inode=0,
rec_len=0, nam0
Ceci ne bloque pas le lancement mais lorsque j'essai de faire des commandes classiques comme ls, j'obtient des erreurs pour certains fichiers. Pire, si j'essai de lancer mon exécutable j'obtient un segmentation fault (alors que la première ligne de mon main est un affichage).
Ces problème disparaissent si je remplace mon exécutable par un code plus simple (du type "hello world").
Je pense que le problème vient de la taille de mon initrd. En effet, s'il dépasse, une fois compressé, 2Mo, le téléchargement du fichier sur la carte se passe mal car la taille du téléchargement est inférieure à celle de mon initrd.
J'ai essayé de modifier quelques paramètre de mon noyau (taille et nombre des ramdisk notamment) mais rien n'y fais.
Je trouve quand même bizarre de ne pas pouvoir utiliser un ramdisk de taille supérieure d'autant plus que je dispose de 32 Mo pour le téléchargement et de 16 Mo de mémoire flash!
Quelqu'un aurai-t-il une idée ?
Merci d'avance pour vos réponses.
# linuxrc
Posté par yopy3700 . Évalué à 2.
dans le kernel c'est une taille par défaut qui est définie pour les ramdisk, pour créer un ramdisk à la taille voulue, il faut modifier ton /linuxrc du genre :
mkfse2fs -vm0 /dev/ram0 3072
pour un ramdisk de 3Mo
[^] # Re: linuxrc
Posté par undine . Évalué à 1.
[^] # Re: linuxrc
Posté par undine . Évalué à 1.
En fait je me disais qu'il serai peut-être plus propre d'utiliser JFFS2.
D'après ce que j'ai lu ce système de fichier serai intégré au noyau depuis la version de dev 2.5.*. Vu que j'ai un noyau est 2.6.16, je pense qu'il n'y a pas de problème, mais je n'arrive pas à trouver l'option dans le menu de configuration !
Dois-je patcher mon noyau ? Si oui, où puis-je obtenir ce patch car je n'ai pas réussi à le trouver.
Sinon, après quelques tests supplémentaires, je pense que mon problème vient bien de la taille de l'initrd si elle dépasse 2Mo, et non des fichiers qui le compose.
[^] # Re: linuxrc
Posté par yopy3700 . Évalué à 1.
[^] # Re: linuxrc
Posté par undine . Évalué à 1.
La seule option qui s'en reproche est 'JFS' (Journaled File System).
Est-il nécessaire d'activer une autre option afin que celle-ci devienne visible ?
[^] # Re: linuxrc
Posté par undine . Évalué à 1.
Cette fois-ci la taille est limitée à 4Mo (au dessus ça bugge) et je n'ai pas trouvé où modifier cette taille. J'ai essayé dans le menu de configuration du noyau, dans mon bootloader, rien.
Je commence à désespérer :-(...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.