Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Premiers pilotes libres pour les imprimantes Samsung

Posté par Aurélien Croc (page perso, ). Modéré le 27 août 2006.
Depuis le temps qu'on les attendait, ils sont arrivés. Voici donc la première version des pilotes libres pour imprimantes SPL2 (Samsung Printer Language) estampillée 0.0.1. Ceux-ci permettront de faire fonctionner une grande partie des imprimantes Samsung et apparemment quelques Xerox en utilisant leur langage natif, procurant ainsi des documents au maximum de leur qualité pour un temps de traitement réduit.

Pour l'heure, les imprimantes utilisant la version précédente, SPL, ne sont pas encore supportées mais ça ne saurait tarder (Recherche de possesseurs d'une de ces imprimantes). Si vous êtes concerné, n'hésitez pas à les tester et à retourner vos résultats à l'auteur afin de peaufiner les fichiers PPD propres à chacunes.

> Lire la dépêche (63 commentaires, moyenne: 3,3).  

Vous avez demandé le commentaire #747748.

Méthode !

Posté par Thomas Petazzoni (page perso, ) le 27/08/2006 à 14:32. (lien). Évalué à 5.

Ceci est très intéressant ! Merci pour ton travail !

Sinon, est-ce que tu pourrais détailler la méthode que tu as utilisée pour trouver ces informations ? Utilisation du pilote sous Windows et sniff des paquets USB ? Et ensuite, pour essayer de trouver une structure dans ce bazar, comment as-tu procédé ?

  • [^]Re: Méthode !

    Posté par FRLinux (page perso, ) le 27/08/2006 à 14:36. (lien). Évalué à 1.

    A mon avis oui, un site travaillant sur un pilote de webcam a quelques documentations sur le sujet : http://zc0302.sourceforge.net/zc0302.php?page=docs

    [^]Re: Méthode !

    Posté par Aurélien Croc (page perso, ) le 27/08/2006 à 14:46. (lien). Évalué à 10.

    Pour commencer, j'ai d'abord regardé l'allure des données transmises à l'imprimante en utilisant l'option « imprimer dans un fichier » sous Windows (les données ainsi stockées dans le fichier sont les données sorti du pilote donc dans le langage de l'imprimante).
    Par la suite, j'ai décompilé les pilotes pour Linux et Win puis j'ai analysé le code asm pour tenter de retrouver les différentes structures envoyées puis les algos. J'avoue que le pilote sous linux m'a beaucoup aidé car il utilise ghostscript pour obtenir un fichier PBM ce qui donne une bonne base de départ pour continuer la progression dans le code décompilé.

    Malheureusement le pilote Linux n'intégrant pas toutes les fonctionnalités du langage, je continue ce travail sur celui de windows.

    • [^]Re: Méthode !

      Posté par zeb () le 27/08/2006 à 15:49. (lien). Évalué à 4.

      Eh bien j'espere que Samsung ne se comportera pas comme Plextor qui m'ont menace de proces (ainsi qu'Alex Noe) pour avoir publie un logiciel permettant de scanner la qualite des DVDs avec leur graveur sous Linux (sans meme faire de reverse engineering des pilotes, juste en ecoutant le port I/O).

      • [^]Re: Méthode !

        Posté par Aurélien Croc (page perso, ) le 27/08/2006 à 16:04. (lien). Évalué à 10.

        Ils peuvent me menacer de ce qu'ils veulent, je m'y suis préparé psychologiquement. J'ai la chance d'habiter dans un pays (la France) où l'ingénierie inversée est autorisée pour des raisons d'interopérabilité, ce qui me semble être le cas ici. Tant que je n'ai pas utilisé leur code pour faire mes pilotes, ils ne peuvent pas grand chose.
        À mon avis, ils comptent surtout sur l'intimidation provoquée.

        • [^]Re: Méthode !

          Posté par FRLinux (page perso, ) le 27/08/2006 à 17:29. (lien). Évalué à 4.

          Au sujet du Reverse Engeneering, une excellente présentation (en Anglais) sur le sujet : http://www.foo.be/re/

          [^]Re: Méthode !

          Posté par Colin Leroy (page perso, ) le 27/08/2006 à 18:31. (lien). Évalué à 1.

          Aurélien++ :-)

          --
          Claws Mail - it bites!

          [^]Re: Méthode !

          Posté par Alain-Pierre Perrin () le 28/08/2006 à 09:03. (lien). Évalué à 1.

          Je vais me faire l'avocat du diable, mais on se situe dans ce cas aux frontières (floues, certes) du domaine de l'inter-opérabilité. Cette dernière vaut surtout pour des liaisons entre systèmes informatiques, entre processus et établit le fait que des données générées par un système A puissent être convenablement par un système B. Pour un périphérique de sortie, du reste non "vital" (pour l'écran ce serait autre chose), cela me semble plus discutable. A moins d'établir le fait qu'aucune imprimante ne fonctionne sous Linux, invoquer la clause d'interopérabilité est contestable dans la mesure où l'on peut se voir répondre "qu'il existe pléthore d'autres marques qui fonctionnent nickel sous Linux"...

          Cela-dit, j'aime quand la communauté, souvent mise en mouvement par un seul individu, fait la nique aux industriels qui déclarent qu'"Economiquement, le développement que vous demandez ne nous rapporte rien donc vous n'aurez rien dans ce sens.". Là où ça peut devenir moche, c'est quand les boîtes susdites, "doublées" sur leur propres produits par l'intelligence collective des utilisateurs, sont mauvaises joueuses et s'appuient de tout leur poids sur des lois protectionnistes et des brevets à la c.. pour faire avorter ces projets "concurrents".

          • [^]Erratum

            Posté par Alain-Pierre Perrin () le 28/08/2006 à 09:08. (lien). Évalué à 1.

            Ne pouvant corriger mon entrée précédente, je me réponds à moi-même pour une micro-correction. Vous aurez de vous-même corrigé la phrase :

            "...que des données générées par un système A puissent être convenablement par un système B."

            en
            "...que des données générées par un système A puissent être convenablement exploitées par un système B."

            • [^]Re: Erratum

              Posté par baud123 (Jabber id, page perso, ) le 28/08/2006 à 10:51. (lien). Évalué à 6.

              A moins d'établir le fait qu'aucune imprimante ne fonctionne sous Linux, invoquer la clause d'interopérabilité est contestable dans la mesure où l'on peut se voir répondre "qu'il existe pléthore d'autres marques qui fonctionnent nickel sous Linux"...
              heureusement que la clause d'interopérabilité concerne le matériel récalcitrant en question et ne se résume pas, comme tu sembles le faire, à dire "z'avez qu'à acheter un autre modèle qui lui marche" (toute ressemblance avec le discours des constructeurs serait purement fortuite).

          [^]Re: Méthode !

          Posté par Zorro () le 28/08/2006 à 09:12. (lien). Évalué à 6.

          Oublie pas que la FSF France a décidé de mettre en place une réserve pour les logiciels libres menacés, et qu'elle a décidé d'aller en justice quand ce sera nécessaire. Hésite pas à te tourner vers eux.

        [^]Re: Méthode !

        Posté par domak () le 28/08/2006 à 12:24. (lien). Évalué à 3.

        S'ils ont mis "compatible linux" sur la boîte et que cela ne fonctionne pas sans l'ajout d'un module, n'est-ce pas de la publicité mensongère?

      [^]ghostscript

      Posté par salvaire () le 28/08/2006 à 15:58. (lien). Évalué à 2.

      j'ai décompilé les pilotes
      Tu est bien courageux!

      car il utilise ghostscript pour obtenir un fichier PBM
      C'est risible. Tant de secret pour utiliser ghostscript comme raster.

      [^]Re: Méthode !

      Posté par Eul Guignol () le 28/08/2006 à 16:23. (lien). Évalué à 3.

      Juste une question en passant,

      Décompiler un programme est une démarche de reverse enginering ? Pour faire du RE, ne doit on pas se limiter aux interactions entre la "boite noire" et l'extérieur (réseau, appels systèmes ...)

      Je me demande simplement oùse trouve la limite entre RE et réutilisation de code. Si quelqu'un peut éclairer ma lanterne ...

      Gnol

      • [^]Re: Méthode !

        Posté par arnaudus () le 29/08/2006 à 09:53. (lien). Évalué à 2.

        Je suis loin d'être spécialiste, mais j'avais compris comme toi : la décompilation est expréssément interdite par la licence du soft en général, et ça dépasse le "reverse ingeneering". Mais peut-être me trompe-je...

        • [^]Re: Méthode !

          Posté par Eul Guignol () le 29/08/2006 à 12:01. (lien). Évalué à 2.

          Devant l'affluence de réponses, j'ai été faire un tour sur mon copain wikipedia. Et j'y apprends que je me trompje !


          La rétro-ingénierie s'applique aussi au logiciel. Ceci peut être réalisé en utilisant des outils d'analyse comme le décompilateur. Les méthodes employées sont similaires à celle du débogage


          Donc la décompilation est parfaitement légale pour le RE... sauf si c'est prévu dans la licence ?

          • [^]Re: Méthode !

            Posté par arnaudus () le 29/08/2006 à 12:37. (lien). Évalué à 2.

            Si c'est légal, alors la licence ne peut rien y faire (d'ailleurs, c'est souvent marqué : sauf disposition contraire gna gna pays de résidence). Mais bon, personnellement, je ne l'aurais pas fait non plus. Je pensais que le reverse ingeneering consistait à reproduire le contenu de la boite noire sans y toucher. Soit. Il apparait qu'on a le droit de tout pêter et d'essayer d'ouvrir la boite noire pour voir comment c'est foutu dedans.

            Une question cependant : dans quelle mesure a-t-on le droit de s'inspirer du code assembleur? Est-ce que le code assembleur est une oeuvre de l'esprit, et est protégé comme tel? Je pense que c'est le cas, parce que 1) des masochistes codent parfois direct en assembleur, et 2) un même algo, en fonction du "talent" du codeur, peut donner différents résultats en assembleur, même en tenant compte des performances du compilo.

            Je persiste à penser que la décompilation est limite limite 1) vis-à-vis de la protection des logiciels et du respect de la licence associée, et 2) vis-à-vis de la propriété intellectuelle. L'interopérabilité est légale, mais je ne sais pas où sont les limites à ne pas franchir : l'interopérabilité n'est pas au dessus des autres lois; on ne peut pas prendre Bill Gates en otage pour avoir les specs du .doc, on ne peut pas payer un agent secret pour aller piquer les plans et les specs de la dernière ATI, etc.

            • [^]Re: Méthode !

              Posté par Eul Guignol () le 29/08/2006 à 12:49. (lien). Évalué à 1.

              Malgré l'article que j'ai lu, je continue aussi à me dire que c'est limite limite...
              exactement pour les même raison que toi.

              [^]Re: Méthode !

              Posté par Aurélien Croc (page perso, ) le 29/08/2006 à 13:47. (lien). Évalué à 5.

              Lorsque je parle d'utiliser l'ingénierie inverse pour développer les pilotes, je n'ai certainement pas décompilé les sources, traduit l'asm en C et mis tout ça dans un fichier pour le mettre en ligne. Cette technique étant interdite.

              Ce que j'ai fait, c'est décompiler les sources pour comprendre l'algorithme de compression des données. Car même un génie aura bien du mal à retrouver l'algorithme de compression en ne s'inspirant que du résultat compressé. Ensuite, une fois l'algo compris, j'ai fermé les sources et j'ai recodé juste à l'aide de la spécification que j'ai écrite, le pilote. Et à mon humble avis, les deux codes génèrent le même résultat mais ils diffèrent allègrement !

              Par conséquent, j'estime avoir utilisé l'ingénierie inverse uniquement dans le cadre de l'interopérabilité et qu'il n'y a eu en aucun cas pillage de code. Par conséquent, rien n'est répréhensible.

              • [^]Re: Méthode !

                Posté par arnaudus () le 29/08/2006 à 14:28. (lien). Évalué à 2.

                OKOK je comprends mieux. J'aurais pensé (peut-être naïvement?) que le nombre de méthodes de compression était fini. Tu veux dire qu'ils utilisent leur propre algo de compression? Quel est l'intérêt de ce truc, à part éviter le reverse-ingeneering? Est-ce que tu ne devrais pas éviter d'expliquer que tu as décompilé le driver original (même si vu ton explication, c'était légitime?). Vu la technique utilisée, personne ne l'aurait jamais deviné, par contre je doute toujours de la légalité de l'acte de décompiler)

                • [^]Re: Méthode !

                  Posté par Sylvain Sauvage () le 29/08/2006 à 16:04. (lien). Évalué à 4.

                  Tu n'es pas naïf en pensant que le nombre est fini : il l'est. Mais il est grand ;o)

                  En gros, tu as deux parties dans un résultat de compression : les données compressées et des méta-données (p.ex. le nom original, la taille, le prénom de la petite nièce du directeur...). Si la méthode utilisée est une méthode classique, sans (trop) de modification (genre, juste un décalage), on peut la retrouver (p.ex. avec hachoir). Mais ça devient vite difficile.

                  En ce qui concerne la décompilation : le principe est de retrouver le format des données et le protocole de communication, par le biais de l'algorithme. C'est là que la décompilation est légale car c'est le (seul) moyen de trouver l'algorithme.

                  Et mentir est rarement une bonne idée.

                [^]Re: Méthode !

                Posté par Eul Guignol () le 29/08/2006 à 16:13. (lien). Évalué à 1.

                Je n'ai jamais remis en cause ton travail, je n'avais même pas imaginé que tu avais fait autre chose que chercher l'explication à certaine. Je sais bien, pour avoir fait la même chose, que ton code C ne ressemble certainement pas à l'original. La question n'est pas là.

                Je voulais juste savoir dans quelle mesure on a le droit de le faire même si c'est la seule solution technique.

                Après m'être renseigné de ci et de là, ma conclusion est que décompiler, c'est du reverse engineering. Mais que avoir le droit de décompiler n'est pas systématique : d'un côté tu peux argumenter sur le cadre de l'interopérabilité et sur ta bonne foi, de l'autre tu peux argumenter sur le non respect de la licence qui donne seulement le droit d'utiliser le binaire. Bref en cas de conflit, c'est bras de fer juridique.

                • [^]Re: Méthode !

                  Posté par Jak () le 02/09/2006 à 04:08. (lien). Évalué à 3.

                  >d'un côté tu peux argumenter sur le cadre de l'interopérabilité et sur ta bonne foi, de l'autre tu peux argumenter sur le non respect de la licence qui donne seulement le droit d'utiliser le binaire. Bref en cas de conflit, c'est bras de fer juridique.

                  Non, car il est précisé dans le texte de la licence que la loi du pays prévaut sur les restrictions qu'elle pourrait contenir.
                  Ainsi, les constructeurs veulent faire peur aux utilisateurs en espérant (à juste titre, d'ailleurs) que ces derniers ne connaissent pas leurs droits.

                  --
                  « Le savoir, n'est-ce pas, est un bien précieux. Trop précieux pour ne pas être partagé. »
                  - Battologio d'Epanalepse, in De Cape et de Crocs, Acte VII (Ayroles & Masbou)