#1 Le 15/11/2007, à 10:19
- Pascal_78220
Scanner utilisable seulement en root [Rà‰SOLU]
Bonjour,
Je poste ce message en pensant à toutes celles et tous ceux qui, comme moi, ont galéré pendant des jours pour essayer de faire fonctionner leur scanner, sachant que celui-ci :
- soit avait déjà parfaitement marché sur des versions précédentes d'Ubuntu ;
- soit avait déjà parfaitement marché sur la dernière version d'Ubuntu, mais avait refusé de répondre un beau matin sans préavis ;
- accepte par contre de scanner lorsque c'est root qui lui demande ("sudo xsane" dans un terminal, ce qui n'est pas vraiment satisfaisant comme mode de fonctionnement).
Puisque je n'avais rien trouvé de concluant sur le sujet dans les sites que j'avais visités, j'ai décidé de m'attaquer au problème, et je pense avoir aujourd'hui une explication.
Le coupable semble être le driver Samsung Unified Linux Driver : 20070720163657500_UnifiedLinuxDriver
Plus jeune version 200704), il avait déjà sévi en détruisant des barrières de sécurité (voir http://forum.ubuntu-fr.org/viewtopic.ph … 5#p1045865)
Aujourd'hui, son méfait est moindre, mais malgré tout gênant. Pendant son installation, parmi les différents fichiers qu'il installe ou sur lesquels il intervient, il en est un (/etc/sane.d/dll.conf) qu'il ne modifie pas correctement. La dernière ligne de ce fichier doit être "sfmp" et non "smfp".
Depuis que j'ai inversé les deux lettres en question, tout marche à merveille, et je ne me lasse pas de scanner à tour de bras.
Alors toutes et tous à vos éditeurs favoris (pour moi c'est vi), pour réaliser la permutation de caractères qui vous réconciliera avec votre scanner qui, le pauvre, aura senti le vent du boulet ces derniers temps, bien que n'ayant rien à se reprocher.
PS : Hormis cette petite erreur, je trouve le driver Samsung de très bonne qualité
#2 Le 15/11/2007, à 12:58
- Pascal_78220
Re : Scanner utilisable seulement en root [Rà‰SOLU]
Après ré-examen, mon message précédent mérite lui-même une petite correction :
L'installateur du driver Samsung crée un fichier "/etc/sane.d/smfp.conf". Ensuite, la fonction "register_sane_backend" du script "cdroot/Linux/install.sh" ajoute la fameuse ligne "smfp" au fichier "/etc/sane.d/dll.conf" pour signaler que "/etc/sane.d/smfp.conf" existe.
Lorsqu'on lance un scan, il semble que sane lise le contenu des fichiers identifiés dans "/etc/sane.d/dll.conf". Après installation du driver Samsung, sane lit donc "/etc/sane.d/smfp.conf". Ce serait en fait le contenu de ce fichier qui ne lui conviendrait pas, et non la ligne de "/etc/sane.d/dll.conf" qui identifie ce fichier.
Ce qui saute aux yeux lorsqu'on compare le contenu de "/etc/sane.d/smfp.conf" avec le contenu de ses collègues du même répertoire, c'est la différence de format : "/etc/sane.d/smfp.conf" est le seul en xml.
La première solution que j'ai adoptée fonctionne très bien, parce que la dernière ligne, modifiée comme je l'ai fait, désigne un fichier qui n'existe pas, et que sane, pas trop regardant, ne se plaint pas de l'erreur. Alors que si la dernière ligne désigne "/etc/sane.d/smfp.conf", il va essayer de lire ce fichier, ne va pas y arriver parce qu'il n'a pas appris le xml de Samsung, et va générer un core comme ultime message à l'utilisateur dépité.
Finalement, en attendant le correctif de Samsung, tout fonctionne si on ne tient pas compte du fichier "/etc/sane.d/smfp.conf". Pour cela plusieurs solutions :
- supprimer ce fichier ;
- supprimer la ligne de "/etc/sane.d/dll.conf" qui le désigne
- modifier la ligne "smfp" de "/etc/sane.d/dll.conf" en toute suite de caractères qui ne désigne rien de connu dans le répertoire "/etc/sane.d" (en particulier cfmp ).
Voilà . J'espère que ce second message permettra à quelques unes et quelques uns de retrouver une configuration opérationnelle
#3 Le 15/11/2007, à 13:45
- Pascal_78220
Re : Scanner utilisable seulement en root [Rà‰SOLU]
Juste quelques petits compléments.
Un survol rapide du script "cdroot/Linux/install.sh" du driver Samsung montre que le répertoire "/etc/sane.d" est impitoyablement touchée lorsque la ligne "SCANNER=1" figure dans le fichier "cdroot/Linux/OEM.ini".
Puisqu'il n'y a pas d'option au lancement du script pour demander de ne pas installer de scanner Samsung, celui-ci s'installe sans supplément de prix et sans bruit (enfin, du bruit, il y en a un peu après, mais ce n'est pas lui qui le fait).
Tout cela pour dire qu'un patch plus propre (si tant est qu'un patch puisse l'être) que ceux proposés dans mes messages précédents (sachant par ailleurs que nombres de variations sont permises avec un égal succès), consisterait à supprimer la ligne "SCANNER=1" du fichier "cdroot/Linux/OEM.ini". Attention ! la ligne doit être supprimée sans regret, ou alors consciencieusement mutilée, mais surtout pas seulement commentée. Dans cette dernière hypotèse, la ligne suivante du script "install.sh"
grep -q 'SCANNER=1'
retournerait toujours vrai, quel que soit l'endroit dans le fichier o๠se trouverait cette suite de caractères.