Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

#1 26 Nov 2006 19:46:53

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Librairie Fosfat pour la lecture d'une FAT Smaky..

Pour les amateurs d'ordinateurs Smaky j'ai fais une petite librairie permettant l'accès _en lecture seul_ au système de fichier "FOS", afin de copier facilement des données d'une disquette 3'1/2 ou d'un disque dur Smaky sur votre système Linux.

On peut se demander l'intérêt de faire ça.. Le mien est de pouvoir récupérer mes données pour du backup sur de l'Ext3. Et cela même si les fichiers ne peuvent être lus uniquement qu'à l'aide des logiciels Smaky (Sauf les éventuels textes, images et sons convertis en des formats courant depuis le Smaky).

Un de mes deuxième but est de transformer cette lib en un module noyau afin de directement monter le FOS dans l'arborescence.. Mais c'est vraiment dans un deuxième temps car il y aurait nettement plus de travail (la librairie actuelle va droit au but, si j'puis dire...). Tout comme je pense faire un petit outil pour convertir les .image et .color du Smaky en un format courant comme le PNG.


Quelques informations importantes :
* lorsqu'un fichier est chargé sur le système, tous les attributs donnés par le FOS sont perdus (les dates, la couleur, si le fichier est system, etc,..), seul le contenu binaire est parfaitement conservé
* la librairie est considérée comme _instable_ et donc comme version _Alpha_
* la librairie a été testée uniquement avec des disquettes, je n'ai pas encore pu tester un disque dur


La page du site (tout est expliqué) : http://fosfat.schroetersa.ch
Il n'y a donc pas encore de release, il faut la télécharger via Subversion.

PS : il y a sûrement pleins de fautes d'anglais mais ça devrait être acceptable ;-)
Et je rajouterais bientôt une petite documentation sur FOS.


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#2 27 Nov 2006 17:32:09

OdyX
Alumni (ex-membre)
Lieu: Vevey
Date d'inscription: 06 Jun 2006
Messages: 490
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Excellent !

Hors ligne

 

#3 28 Dec 2006 19:14:42

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

J'ai pas mal retravaillé la librairie (je l'ai rendu bien plus haut niveau qu'au début) depuis tout ce temps et j'ai également, depuis aujourd'hui, commité une première "ébauche" fonctionnelle d'une extension FUSE. Ainsi il est désormais possible de monter un disque (disquette) Smaky FOS directement dans l'arborescence Linux et en Userspace.

Donc OdyX, vu que t'es le seul à avoir un Smaky à ma connaissance et si tu t'emmerdes un jour, quelques retours d'expériences m'aideraient grandement a cibler les bugs importants..

Donc c'est pas sorcier, il faut également avoir installé le >=libfuse-dev-2.5. Ca peut peut-être marcher avec de plus vieux FUSE.

1. récupérer le trunk

Code:

svn co http://svn.gna.org/svn/fosfat/trunk fosfat
cd fosfat

2. compiler et installer

Code:

./configure
make
sudo make install

3. créer un dossier de montage et monter comme suit (en user, et par exemple avec le floppy disk 0)

Code:

mkdir ~/fos
fosmount ~/fos --dev=/dev/fd0

Et si c'est un disque dur, il ne faut pas oublier le paramètre --harddisk, par exemple:

Code:

mkdir ~/fos
fosmount ~/fos --dev=/dev/sda --harddisk

Ensuite les fichiers et dossiers devraient se lister comme des grands, et il devrait être possible de copier en local n'importe quoi comme n'importe quel système de fichier. La grande différence c'est que tout ici est en lecture seule.

Ensuite pour démonter (toujours en userspace)

Code:

fusermount -u ~/fos

Bien sûr les commandes root peuvent être utilisées comme

Code:

sudo umount ~/fos

pour le démontage.


Voilà, en espérant que ça puisse être utile à d'autres que moi :-)


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#4 10 May 2007 23:04:37

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Quelques nouvelles depuis tout ce temps.. Je suis passé en beta ainsi ça marche bien mieux qu'avant. Un disque dur devraient pouvoir être lu sans problème. L'extension FUSE (fosmount) a été améliorée néanmoins lorsqu'un dossier est relativement gros, le listage des fichiers peut sembler un peu lent (extrêmement visible avec le dossier SYSTEME :-s).
Par contre l'outils non dépendant de FUSE (et ne permettant donc pas de monter le système dans l'arborescence) est plus rapide (fosread).

J'ai fais deux packages Ubuntu Feisty. un i386 et un amd64
http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb
http://download.gna.org/fosfat/fosfat_0 … _amd64.deb

Bien sûr les sources sont disponibles sous forme d'archive : http://download.gna.org/fosfat/fosfat_0.2.0.orig.tar.gz

Mais il est plus judicieux d'utiliser le dernier trunk.
voir directement le site : http://home.gna.org/fosfat/

Pour monter un disque, j'ai également changé les commandes, ainsi (par exemple):
pour un disque dur

Code:

mkdir ~/fos
fosmount -a /dev/sda ~/fos

une disquette

Code:

fosmount /dev/fd0 ~/fos

pour plus d'info, fosmount --help

Et comme toujours,

Code:

fusermount -u ~/fos

pour le démontage..

En ce qui concerne les autres outils, pour fosread (par exemple):

Code:

fosread -a /dev/sda list systeme

liste le contenu du dossier SYSTEME
pour plus d'info: fosread --help


Et j'ai également rajouté un petit outil de conversion des fichiers textes Smaky en ISO-8859-1

Code:

smascii smaky_file converted_file --unix

permet donc de convertir le fichier smaky_file (préalablement récupéré à l'aide de fosmount ou fosread)
--unix sert à convertir les retours à la ligne en Line Feed. Dans le cas contraire ils resteront inchangés et donc en Carriage Return.

Je prévois également de faire un logiciel pour convertir dans un premier temps les fichiers .IMAGE en un format standard comme PNG.

Tout ceci n'est donc pas stable.. ainsi il ne faut pas s'étonner s'il y arrive qu'un segfault se pointe. Je n'ai pas pu tester tous les cas à fond. Et sûrement que certains fichiers hautement fragmentés posent un problème, mais j'espère pas trop. Certaines erreurs me sont déjà connues mais pour les régler, il me manque encore quelques données sur cette FAT.
Bref, vu que le nombre de potentiels utilisateurs de Smaky est extrêmement faible, je n'attend pas de rapport d'erreur :-). Mais peu importe.. qui sait..


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#5 22 Jun 2007 20:46:28

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Et on continue.. cette fois avec une moins grosse mise à jour, mais bien plus importante. Au menu des nouveautés:
* L'extension Fuse est désormais bien fonctionnelle et les données ne sont plus étrangement corrompues (enfin smile)
* Les soft-links Smaky sont interprétés comme des liens symboliques avec Fuse et non plus comme des fichiers
* Et la _grosse_ nouveauté, un cache est intégré afin d'accélérer (énormément) la navigation dans les répertoires

Les commandes n'ont pas changés depuis mon message précédent..

Ainsi cette version 0.2.1 (beta) est dispo pour Ubuntu Feisty Fawn:
amd64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb
i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb

Ainsi que les sources: http://download.gna.org/fosfat/fosfat_0.2.1.orig.tar.gz

Et comme toujours, il est plus judicieux d'utiliser le dernier trunk (http://home.gna.org/fosfat/).

Code:

svn co http://svn.gna.org/svn/fosfat/trunk fosfat

Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#6 07 Jul 2007 18:26:34

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Et plop, une nouvelle version beta estampillée 0.2.2 avec principalement une meilleur stabilité. Et à part des corrections de bugs divers et variés il y a qu'en même deux nouveautés.

* Tout d'abord un logger est désormais intégré à la librairie et peut être activé et désactivé au besoin.. Celui-ci se traduit donc par l'option --fos-logger depuis les applications fosread et fosmount. S'il est utilisé avec fosmount, alors le processus ne se détachera pas de la console, comme c'est déjà le cas avec le debugger de FUSE (--fuse-debugger).

* La deuxième nouveauté concerne le choix entre un disque dur et une disquette.. le FOS ne débutant pas au même block avec les deux types de média, dans les versions précédentes (<=0.2.1) il était nécessaire d'utiliser l'option -a (ou --harddisk) afin qu'un disque dur soit monté correctement. Sinon par défaut, c'était le choix de la disquette. Désormais la librairie va automatiquement détecter le bon type et faire le choix pour vous. Néanmoins des options ont été conservées pour forcer le type (-a, --harddisk) et (-f, --floppydisk) dans le cas où la détection échouerait (ce qui est très peu probable smile, à moins d'essayer de monter autre chose qu'un système FOS).

Et pour finir, je me suis amusé à faire un logo au projet.. question de ne plus utiliser une image de Blupi qui n'était pas de moi (j'avais qu'en même demandé l'autorisation à un dév. d'Epsitec). Alors voici Fosblup qui s'est mit en CC-by-sa.
http://home.gna.org/fosfat/fosblup_1.0_color.png
Sa forme correspond (plus ou moins) à une des molécules de phosphate (Fosfat).


Les paquets pour Ubuntu Feisty Fawn:
amd64 : http://download.gna.org/fosfat/fosfat_0 … _amd64.deb
i386 : http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb

Et le reste comme d'hab.:
sources : http://download.gna.org/fosfat/fosfat_0.2.2.orig.tar.gz
site : http://home.gna.org/fosfat/
svn :

Code:

svn co http://svn.gna.org/svn/fosfat/trunk fosfat

Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#7 08 Jul 2007 02:58:16

fonji
Gourou(e) du libre
Lieu: Fribourg, don !
Date d'inscription: 15 Feb 2006
Messages: 490
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

[GO]Skywalker13 a écrit:

Sa forme correspond (plus ou moins) à une des molécules de phosphate (Fosfat).

Hahaha excellent ! big_smile

Hors ligne

 

#8 16 Dec 2007 17:47:26

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Et non, la réincarnation de Blupi en Fosblup n'était pas du vent mais bien du phosphate. Il ne pouvait donc pas s'envoler et était alors obligé de continuer son travail pour offrir une nouvelle version estampillée 0.3.0.

Quoi de neuf?

* Les liens symboliques
L'outil indépendant de FUSE (fosread) gère désormais correctement les liens symboliques du Smaky FOS. C.-à-d. qu'ils ne sont plus visibles en tant que fichier, mais bien en tant que lien et donc navigables comme des dossiers.

* Multiple disques
La libfosfat peut maintenant gérer plusieurs disques dans un même programme.

* Le mode undelete
La librairie peut désormais travailler avec les fichiers effacés.. Ce qui implique qu'il est possible de restaurer des fichiers qu'on aurait détruit par mégarde. Néanmoins j'ai activé cette option uniquement sur l'outil fosread. Je dois vous avouer que mes premiers tests avec mon disque dur Smaky étaient très amusants.. j'ai retrouvés des choses vraiment vieilles.. en gros.. ça marche impec smile

Alors c'est simple..  voyez ci-dessous:

En exécutant simplement fosread comme avec les version 0.2.x, le contenu est bien listé avec les fichiers réellement existants.

Code:

$ fosread /dev/sda list /progr
Smaky disk #545_MB:
path: progr

        size creation         last change      last view        filename
        ---- --------         -----------      ---------        --------
d--        0 2000-00-00 00:00 2000-00-00 00:00 2000-00-00 00:00 .
d--    12800 1997-04-12 11:30 2005-05-14 18:21 2005-05-14 18:21 pascal
d--    12800 1997-04-12 11:32 2000-01-23 13:04 2000-05-04 20:28 rs
d--    12800 1997-04-12 11:30 2000-01-23 13:04 2000-05-04 20:27 chargeur
-h-      128 1993-03-12 17:45 1997-04-12 11:32 1999-12-27 11:40 start_dir.info
d--    12800 1997-04-12 11:28 2001-02-21 14:43 2001-02-21 14:43 basic

d:directory  l:link  h:hidden  e:encoded    (X):undelete

En ajoutant l'option `-u` ou `--undelete`, on découvre un nouveau fichier signalé par un (X), celui-ci étant effacé.

Code:

$ fosread /dev/sda list progr -u
Smaky disk #545_MB:
path: progr

        size creation         last change      last view        filename
        ---- --------         -----------      ---------        --------
d--        0 2000-00-00 00:00 2000-00-00 00:00 2000-00-00 00:00 .
---     1735 1999-12-08 13:03 1999-12-08 13:03 1999-12-08 13:03 couleur.bas (X)
d--    12800 1997-04-12 11:30 2005-05-14 18:21 2005-05-14 18:21 pascal
d--    12800 1997-04-12 11:32 2000-01-23 13:04 2000-05-04 20:28 rs
d--    12800 1997-04-12 11:30 2000-01-23 13:04 2000-05-04 20:27 chargeur
-h-      128 1993-03-12 17:45 1997-04-12 11:32 1999-12-27 11:40 start_dir.info
d--    12800 1997-04-12 11:28 2001-02-21 14:43 2001-02-21 14:43 basic

d:directory  l:link  h:hidden  e:encoded    (X):undelete

On peut alors tenter une récupération.. pour cela il suffit de faire exactement comme avec un fichier "normal".

Code:

$ fosread /dev/sda get progr/couleur.bas -u
Smaky disk #545_MB:
File "progr/couleur.bas" is copying ...
 1792 bytes
 1844 bytes
Okay..

Et dans cette exemple il a pu être lu sans aucun problème! Bien sûr, il se peut que des blocs de DATA soit détruits à cause d'autres fichiers.. Mais dans ce cas, soit le fichier est corrompu, soit fosread n'arrive tout simplement pas à le lire.
En cas d'échec il est judicieux d'activer le logger de la libfosfat avec l'option `-l`ou `--fos-logger`. En mode "undelete" il est normal que le logger retourne beaucoup d'erreurs. Simplement car il tente de suivre des dossiers effacés sans succès. Néanmoins, si l'undelete n'est pas activé et que des erreurs sont visibles il peut y avoir deux raisons. Tout d'abord j'ai peut être laissé un bug et dans ce cas faut me tenir au courant, ou alors votre disque à une corruption quelque part. Mais dans tous les cas il ne devrait pas y avoir de plantage, mais juste des messages d'erreur en retour. Un plantage serait alors aussi une faute de ma part.

* Le support de Window$ 9x/NT
N'étant pas un fan de ce cher Window$, mais étant conscient que ça puisse qu'en même rendre service à d'autres utilisateurs malheureusement encore prisonniés par Microsoft.. J'ai fais un petit effort en portant une partie des outils sous ce système (bien sûr, ce qui concerne FUSE n'est pas dispo avec Window$).
Alors tout d'abord c'est complètement expérimental, c'est tout juste si j'ai testé.. mais au premier abord ça semble marcher (en tout cas avec WinXP). Le plus gros souci c'était d'avoir un accès bas niveau au disque dur avec ce foutu OS. J'ai donc trouvé un morceau de code C++ qui permet de le faire pour Win9x et NT en théorie. Il m'a juste fallu écrire un petit wrapper C par-dessus afin que je puisse l'utiliser avec la libfosfat.

La ligne de commande de fosread est semblable à la version Linux.. la seul différence c'est le paramètre du périphérique..
Avec Linux: fosread /dev/sda list (ou /dev/fd0 voir même une image disque)
Avec Window$: fosread.exe d list (pour le disque d, mettre a pour la disquette, etc,..)
La version Window$ ne peut pas non plus travailler avec des images disques.. je pourrais le faire, donc peut être dans une futur version.


Ainsi il y a donc trois versions binaires disponibles:
i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb (Gutsy Gibbon)
amd64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb (Gutsy Gibbon)
Win9x/NT: http://download.gna.org/fosfat/fosfat_0.3.0.win32.zip

et les sources: http://download.gna.org/fosfat/fosfat_0.3.0.orig.tar.gz


Et le site comme d'hab: http://home.gna.org/fosfat/


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#9 07 Jul 2009 15:35:40

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Déterrage de poste..  une petite mise à jour (0.3.2) de Fosfat qui supporte désormais la conversion des fichiers images .IMAGE du Smaky. En gros il suffit de monter le disque Smaky avec fosmount (comme expliqué dans les anciens postes) et d'ajouter le paramètre -i (ou --image-pbm). Ce qui va faire en sorte de convertir à la volée les fichiers .IMAGE en fichiers .PBM. (Les PBM étant des pixmap tout bête). Pour le moment cela ne marche qu'avec les images monochromes.. les .COLOR ne sont donc pas supportés. La raison est très simple, je n'ai pas encore pris le temps de comprendre le codage des .COLOR. Ce qu'il faut savoir c'est que les images du Smaky sont codées d'une certaines manière pour réduire au mieux leur place tout en étant rapides à lire. Se ne sont pas de simples pixmap comme les PBM. Mais la méthode de codage reste très simple qu'en même.. ça ressemble à du RLE..

Les résultats..

On monte le disque avec l'option -i :

Code:

~$ fosmount --image-pbm /dev/sda /home/foobar/smaky/dev

Puis quand on se balade dans des dossiers où il y a des images.. celles-ci sont décodées et renommées en nom_image.image.[fosgra].pbm et sont ainsi directement lisibles.

Ce qui donne:
http://www.gamesover.ch/prov/smaky/smaky.disk.IMAGE.png
http://www.gamesover.ch/prov/smaky/smaky.disk.IMAGE.png

et
http://www.gamesover.ch/prov/smaky/smaky.disk.browse.png
http://www.gamesover.ch/prov/smaky/smak … browse.png

Leurs tailles sont forcément plus grandes car décodées.. pour garder les images originales (non décodées) il suffit de monter le disque sans l'option -i.
Ça se démonte toujours de la même manière:

Code:

~$ fusermount -u /home/foobar/smaky/dev

Dans le poste précédent j'avais également parlé d'un mode undelete.. il y a désormais une petite application dédiée à la restauration des fichiers effacés.. il suffit de faire:

Code:

~$ fosrec /dev/sda /home/foobar/smaky/recovery

Et absolument tous les fichiers effacés (et récupérables) vont se retrouver dans le dossier recovery.


J'ai qu'en même mis à jour les paquets..

i386: http://download.gna.org/fosfat/fosfat_0 … 0_i386.deb (Jaunty)
x86_64: http://download.gna.org/fosfat/fosfat_0 … _amd64.deb (Jaunty)
Win9x/NT: http://download.gna.org/fosfat/fosfat_0.3.2.win32.zip

(la conversion d'image n'est pas encore dispo avec la version Windows)

et les sources: http://download.gna.org/fosfat/fosfat_0.3.2.orig.tar.gz


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

#10 02 Feb 2010 18:03:08

[GO]Skywalker13
Modérateur
Lieu: Choëx (VS)
Date d'inscription: 05 Oct 2004
Messages: 896
Site web

Re: Librairie Fosfat pour la lecture d'une FAT Smaky..

Je me suis enfin intéressé aux fichiers .COLOR.. qui ne sont guère plus compliqués que les .IMAGE (monochrome). La différence intervient uniquement à la façon d'interpréter les données décodées. L'algorithme de décodage est exactement le même que pour le monochrome.
Au lieu d'avoir 1 bit par pixel, il y a 4 bits par pixel. A noter également l'existence d'une colormap en en-tête. Celle-ci contient les correspondances RGB des couleurs de 0 à 15.

Je n'ai pas encore fais de nouvelle release de la lib, mais toutes les modifications sont dans le trunk.

La conversion des .COLOR en .XPM se fait à la volée. De la même manière que pour les .IMAGE en .PBM. L'arborescence visible dans le screenshot est le disque de modèle (disponible avec l'installateur du Smaky Infini http://www.smaky.ch/~infini/ ) monté dans un répertoire de mon home (~/documents/developement/dev.linux/linux.c/c.smaky/dev/) à l'aide de l'extension fuse, fosmount (options -i et -j pour activer les conversions à la volée).

http://gamesover.ch/prov/smaky/smaky.disk.COLOR.1.png
http://gamesover.ch/prov/smaky/smaky.disk.COLOR.1.png


Les fichiers PBM sont utilisés pour le monochrome, et XPM2 pour la couleur. C'est pour cela que les miniatures ne sont pas visibles dans Nautilus. XPM2 n'est pas lisible par la majorité des applications. Je n'ai trouvé que Gimp et l'outil SXPM pour les lire. Je n'utilise pas le format XPM le plus répandu (XPM1|3) par commodité. Les petites fenêtres des images .COLOR sont donc créées par http://www.xfree86.org/current/sxpm.1.html .

http://gamesover.ch/prov/smaky/smaky.disk.COLOR.2.png
http://gamesover.ch/prov/smaky/smaky.disk.COLOR.2.png


Mathieu SCHROETER
log.schroetersa.ch

Hors ligne

 

Pied de page des forums

Powered by FluxBB