Hello !
Je ne sais pas si certains d´entre vous ont constaté le problème -- vu qu´il est quand-même assez spécifique -- mais les scanners des imprimantes multifonction EPSON CX-5200 et CX-5400 (et sans doute d´autres modèles) qui fonctionnaient impeccablement avec le backend Epson de la libsane-1.0.17 ne fonctionnent plus avec celui de la libsane-1.0.18.
Ayant déjà constaté ce problème il y a plusieurs mois, je l´avais contourné en installant iscan et son driver epkowa.
Problème, l´intégralité du driver epkowa n´est pas open source puisqu´il existe une bibliothèque linkée avec le reste du code uniquement redistribuée sous forme binaire. Jusque-là tout va bien me direz-vous ! Ben non, puisque cette bibliothèque a uniquement été compilée pour Linux et il n´est donc pas possible d´utiliser Epokwa sous un autre Unix (au pif FreeBSD ).
Du coup, pour faire fonctionner la partie scanner de son EPSON CX-5400 (ou CX-5200) sous Linux sans le driver Epkowa ou sous un Unix != Linux, il y a deux solutions :
-- Utiliser la libsane-1.0.17 et attendre que les gentils devs de sane corrigent le problème.
-- Intervenir à la déguelasse sur le code source du fichier epson.c et recompiler sane.
En effet, en examinant le code on observe la partie suivante :
if (buf[0] & 0x80)
{
close_scanner (s);
return SANE_STATUS_INVAL;
}
Ainsi, tous les scanners dont l´id matériel débute par 0x80 -- et c´est le cas du CX-5400 (0x808) et du CX-5200 (0x801) -- se voient rejetés...
Par conséquent en shuntant ce bout de code, on fait péter ce contrôle et ça fonctionne. :]
/!\ Il est possible que ce controle soit volontaire, je vous déconseille donc vivement d´appliquer ce patch. Je l´ai fait en connaissant les risques, il se trouve que ça a fonctionné mais les conséquences auraient très bien pu être facheuses. /!\
Bon, pour pas s´arrêter en si bon chemin et même si ça ne concerne pas Linux (gentil admin soit indulgent ), une autre astuce pour que ce bon vieux scanner CX-5400 soit reconnu par FreeBSD :
Par défaut FreeBi reconnait peu de scanner et hélas mon CX-5400 ne fait pas partie de la liste du matos reconnu...
Pour pallier ce problème il va falloir intervenir sur le source du noyau (mais je vous rassure, rien de bien méchant .
En effet, il faut tout d´abord éditer le fichier : usbdevs et y ajouter la référence de son matériel, dans le cas du CX-5400 ça donne :
product EPSON CX5400 0x0808
Puis le fichier uscanner.c pour y ajouter la référence suivante :
{{USB_VENDOR_EPSON, USB_PRODUCT_EPSON_CX5400}, 0}
à la liste des scanner EPSON supportés.
Voilou, y´a plus qu´à recompiler son noyau avec ces modifs (ou uniquement les modules si on ne souhaite pas avoir le support USB en dur dans son noyau), puis rebooter et constater le miracle de voir son scanner enfin reconnu.
En espérant que ça évite à certains de s´arracher les cheveux comme j´ai pu le faire. ^^
Édit : Vite les balises code, ça manque !
Hé hé, ben la modif. du fichier epson.c n´était pas si déguelasse que ça en fait, en regardant le fichier en question de la version CVS de sane-backends :
http://www.sane-project.org/snapshots/sane-backends-2007-06-29.tar.gz
on s´aperçoit que le bout de code moisi a bel et bien disparu de la fonction get_identity2_information.
Du coup c´est cool, les devs sane étaient conscient du problème, y´a plus qu´à attendre la version 1.0.19.
Bah non maintenant t´es là !
T´as passé une bonne journée ? T´aimes le thé à la menthe ?
Pitiéééé ! J´me sens si seul !! !!! :D
Non désolé de vous saouler avec ce problème vaseux, mais j´ai totalement flingué ma journée de RTT pour arriver à ces conclusions, donc fallait que ça sorte !
lol!
ah ouais c´est triste de ruiner un RTT juste pour ça MDR !! !
si ton patron apprenait ça il en serait triste lol.
non sérieux j´suis content pour toi
gg VegehaNNNnnn