Journal Scanner pour HP LaserJet M1005

Posté par  .
Étiquettes : aucune
0
10
juin
2007
Je suis le propriétaire depuis quelques mois d'un imprimante multifonction HP LaserJet M1005. Malheureusement HP dans sont élan OpenSource a oublié que des linuxiens pouvaient être intéressés par cette imprimante.

En réalité c'est la seule imprimante Laser multifonction abordable qui avait des drivers opensource pour imprimer (qui ne sont pas fait par HP d'ailleur).

La partie impression marche très bien sous linux, cependant la partie scanner restait inutilisable.

Comme j'en avait marre de garder la partie scanner d'un vieux MFP démonté d'epson pour scanner, j'y suis allé a grand coup de qemu/usbmon/C afin de reverse-engineerer le protocol. Par chance celui-ci était plutot simple (enfin j'ai pas tout découvert, mais juste assez pour que ca soit utilisable).

Enfin bref. pour faire court j'ai écrit un backend Sane, pour ce scanner. Tout n'est pas encore fonctionnel, mais j'arrive a scanner en couleur avec toutes les résolutions supportée.

Pour ceux interessé: http://www.zarb.org/~couriousous/hpljm1005/hpljm1005.c

Je suis principalement a la recherche de connaisseur de l'api sane afin de relire/débugger ce code, mais il est utilisable pour un utilisateur avertis (ie, pas besoin de connaitre le protocol usb pour l'utiliser).

Les patches sont bienvenus :)
  • # +

    Posté par  . Évalué à 10.

    Enfin bref. pour faire court j'ai écrit un backend Sane, pour ce scanner. Tout n'est pas encore fonctionnel, mais j'arrive a scanner en couleur avec toutes les résolutions supportée.

    Des fois on aimerait bien plussé les journaux.
  • # Félicitations

    Posté par  . Évalué à 7.

    Félicitations !
    Reverse-engineerer un protocole et intégrer le résultat dans une API existante, ca demande toujours un gros boulot.
  • # salut :) usbmon/qemu

    Posté par  (site web personnel) . Évalué à 3.

    Je ne savais pas que Qemu permettait de gérer l'USB... http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC33

    Ah si :)

    je ne savais pas quoi faire cette semaine :))))))))))))))

    Ca ne fonctionne pas avec les webcams, mais ca devrait fonctionner avec les appareils photos...

    Qu'y a-t-il comme sniffer sympatique ?
    • [^] # Re: salut :) usbmon/qemu

      Posté par  . Évalué à 8.

      Qemu supporte l'usb, mais c'est en version 1 uniquement et avec seulement une interface par périférique.

      J'ai du patcher qemu pour pouvoir l'utiliser (la M1005 a deux interfaces):
      http://lists.gnu.org/archive/html/qemu-devel/2007-04/msg0066(...)

      De plus oublie pas de rmmod ehci-hcd afin de forcer linux a être en mode usb1 sinon ca fait planter sévèrement windows dans le qemu (j'ai découvert ca seulement après avoir envoyé le mail sur la ml de qemu).

      Et pour sniffer, j'ai au début utilisé usbmon avec l'interface "ascii".
      Puis j'ai developpé mon propre outil de sniff qui décodait directement les "paquets" usb spécifique au scanner. C'est pas très compliqué a faire, suffit de trouver les bon ioctl() et le kernel te dump le packet usb dans un buffer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.