 Guide du partage d'imprimante entre les systmes Debian GNU/Linux et Microsoft
                                    Windows

  Auteur : Ian Ward

   <ianCHEZexcessPOINTorg>
   

   Adaptation franaise: Vincent Chartier

   <vchartierCHEZkyxarPOINTfr>
   

   Relecture de la version franaise: Claude Thomassin

   <cthomassinCHEZwaika9POINTcom>
   

   Prparation de la publication de la v.f.: Jean-Philippe Gurard

   <jeanTIRETphilippePOINTguerardCHEZtigreraye.org>
   

   Version: 1.2.fr.1.0

   2003-11-03

   +------------------------------------------------------------------------+
   | Historique des versions                                                |
   |------------------------------------------------------------------------|
   | Version 1.2.fr.1.0          | 2003-11-03         | VCR, CT, JPG        |
   |------------------------------------------------------------------------|
   | Premire adaptation franaise                                          |
   |------------------------------------------------------------------------|
   | Version 1.2                 | 2003-10-03         | IW                  |
   |------------------------------------------------------------------------|
   | Note  propos de Woody et gs-esp, conflit avec la commande enable  |
   | de bash et une correction pour les clients XP et 2000 (Note about      |
   | woody and gs-esp, conflict with bash's enable command and fix for      |
   | XP/2000 clients)                                                       |
   |------------------------------------------------------------------------|
   | Version 1.1                 | 2003-06-26         | IW                  |
   |------------------------------------------------------------------------|
   | Ajout de mots de passe pour les imprimantes Windows partages,         |
   | corrections (Added passwords on windows shared printers, Corrections)  |
   |------------------------------------------------------------------------|
   | Version 1.0                 | 2003-05-15         | TMM                 |
   |------------------------------------------------------------------------|
   | Premire publication, revue par le projet de documentation Linux       |
   | (Initial release, reviewed by LDP)                                     |
   |------------------------------------------------------------------------|
   | Version 0.8                 | 2003-04-11         | IW                  |
   |------------------------------------------------------------------------|
   | Converti  partir de LaTeX (converted from LaTeX)                      |
   +------------------------------------------------------------------------+

     ----------------------------------------------------------------------

   Table des matires

   1. Introduction

   2. Comment dmarrer

                2.1. Composants pour l'impression sous Linux

                2.2. Logiciels requis

                2.3. Configuration de l'imprimante locale avec CUPS

                2.4. Les bases de l'impression sous Linux

   3. Imprimer vers des PC sous Windows

                3.1. Connexion  Windows

                3.2. Configuration de CUPS

   4. Partager des imprimantes avec des PC sous Windows

                4.1. Les bases du partage

                4.2. Configuration de Samba

                4.3. Configuration de CUPS

   5. Rsolution de problmes

                5.1. chec des connexions aux imprimantes sous Windows

                5.2. D'autres problmes

   6.

                6.1. Licence & droits d'utilisation

                6.2. License

1. Introduction

   Debian GNU/Linux est une distribution Linux de premier choix dont la
   maintenance est assure par des volontaires. Malheureusement, la
   configuration d'imprimantes sous Debian peut tre difficile. De plus, il
   n'est pas facile de trouver des instructions simples expliquant comment
   configurer des imprimantes partages entre Windows et Linux en utilisant
   les derniers outils. Ce guide a t crit pour rsoudre ces deux
   problmes.

   Ce guide va vous expliquer comment utiliser les outils en ligne de
   commande pour configurer l'impression sur votre systme Debian. Il vous
   expliquera comment envoyer des documents  partir de Linux vers des
   imprimantes Windows et comment partager des imprimantes sous Linux avec
   des PC sous Windows. Quelques exemples de dpannage vous seront aussi
   fournis.

   La dernire version originale de ce document est disponible sur
   excess.org. Le code source en XML Docbook et les fichiers images EPS
   ncessaires  gnrer les diffrents formats de publication peuvent
   galement tre tlchargs sur excess.org. N'hsitez pas  envoyer (en
   anglais) des corrections ou suggestions concernant la version originale de
   ce document  <ian CHEZ excess POINT org>.

   La dernire version franaise de ce document est toujours disponible sur
   traduc.org. Le code source en XML Docbook et les fichiers EPS du document
   original peuvent galement tre tlchargs sur traduc.org. N'hsitez pas
    nous signaler les coquilles que vous pourrez trouver, et  nous envoyer
   vos corrections ou suggestions d'amliorations relatives  la version
   franaise de ce document  <vcr CHEZ kyxar POINT fr> ou  <commentaires
   CHEZ traduc POINT org>.

2. Comment dmarrer

  2.1. Composants pour l'impression sous Linux

   Les principaux composants que nous utiliserons sont:

     o CUPS

       Le systme commun d'impression UNIX (The Common UNIX Printing System)
       est un systme de gestion des impressions et un ensemble de programmes
       permettant d'utiliser et d'administrer les imprimantes.

     o Samba

       Samba est un logiciel permettant aux ordinateurs sous un autre systme
       que Windows de se comporter en rseau comme des machines sous Windows.
       En effet, Samba met en uvre les protocoles de partage de fichiers et
       d'imprimantes utiliss par Windows.

     o Pilotes d'imprimantes

       LinuxPrinting.org offre le plus grand choix de pilotes d'imprimantes
       et gre une base de donnes des imprimantes compatibles Linux. Vous
       devrez tlcharger un pilote d'imprimante pour chaque modle
       d'imprimante que vous voudrez utiliser sous Linux. Un pilote
       d'imprimante est constitu d'un fichier PPD et d'un filtre, ou bien
       uniquement d'un fichier PPD dans le cas des imprimantes compatibles
       PostScript.

  2.2. Logiciels requis

   Tous les programmes et les bibliothques requis sont inclus en standard
   dans l'archive Debian. Vous pouvez tlcharger et installer ces paquets en
   utilisant les outils classiques de gestion des paquet de Debian. Ce qui
   suit est une liste des paquets dont vous aurez besoin:

   cupsys

           Le serveur CUPS

   cupsys-bsd

           Les commandes BSD de CUPS

   cupsys-client

           Les programmes clients de CUPS

   foomatic-bin

           Les pilotes d'imprimante de LinuxPrinting.org

   samba

           Le serveur SMB et CIFS Samba pour UNIX

   smbclient

           Le client SMB et CIFS Samba pour UNIX

   gs-esp

           Le Ghostscript ESP

           Ce paquet n'est pas disponible dans la distribution Debian
           GNU/Linux 3.0 (aussi appele woody), utilisez plutt gs

   a2ps

           Le logiciel A2PS de GNU

   Les commandes suivantes installeront ces logiciels:

   apt-get update                                                     
   apt-get install cupsys cupsys-bsd cupsys-client foomatic-bin \     
                   samba smbclient gs-esp a2ps                        

   Des paquets additionnels peuvent tre ncessaires pour certaines
   imprimantes spcifiques. Par exemple, le paquet hpijs doit tre install
   pour permettre le fonctionnement correct des imprimantes InkJet de HP.

  2.3. Configuration de l'imprimante locale avec CUPS

   La commande lpadmin est utilise pour configurer les imprimantes.
   L'exemple suivant illustre comment configurer une imprimante laser avec
   CUPS:

   /usr/sbin/lpadmin -p Laser -v parallel:/dev/lp0 -P /root/laser.ppd 
   /usr/bin/enable Laser                                              
   /usr/sbin/accept Laser                                             
   /usr/sbin/lpadmin -d Laser                                         

  Note

   L'interprteur de commandes bash a une commande intgre appele enable.
   Les utilisateurs de bash devront donc utiliser le chemin complet de la
   commande (/usr/bin/enable) pour activer l'imprimante.

   La premire commande cre une nouvelle imprimante appele Laser qui est
   connecte au premier port parallle et utilise le fichier PPD suivant:
   /root/laser.ppd.

   Laser est alors active et configure pour accepter les tches
   d'impression avec les commandes enable et accept.

   La dernire commande configure Laser comme imprimante par dfaut. Des
   informations plus dtailles concernant la configuration d'imprimante sont
   disponibles dans la documentation de CUPS.

  2.4. Les bases de l'impression sous Linux

   Figure 1. Imprimer en local

   Imprimer en local

   Les documents sont envoys dans la file d'attente via la commande lpr ou
   lp suivie du nom de fichier. Vous pouvez voir la file d'attente et
   consulter le statut de l'imprimante avec les commandes lpstat -o et lpstat
   -p. Pour annuler une impression, utilisez la commande cancel ou lprm
   suivie du numro identifiant l'impression.

   Le serveur d'impression CUPS est appel cupsd. Il convertit des documents
   vers le format PostScript, puis les convertit dans un format natif
   comprhensible par l'imprimante (voir le schma de la figure1, Imprimer
   en local). Les imprimantes qui ne comprennent pas le format PostScript
   utilisent un format tram (de matrice de points ou bitmap) pour les
   documents. Les formats trams peuvent tre beaucoup plus lourds que le
   PostScript original, et mettront plus de temps  tre envoys 
   l'imprimante.

   Les filtres sont des programmes utiliss pour convertir des documents d'un
   format vers un autre. Le gestionnaire d'impression CUPS fera de son mieux
   pour trouver un filtre qui convienne pour les documents que vous lui
   fournirez. Si aucun filtre adapt n'est install, vous recevrez un message
   d'erreur ressemblant  lpr: impossible d'imprimer le fichier:
   client-erreur-format-document-non-support.

   Beaucoup d'applications n'offrent pas de de filtres correspondant  leur
   format de documents. Les documents cres avec ces applications ne peuvent
   tre imprims que depuis l'application elle-mme,  moins d'exporter le
   document vers un format PostScript ou un autre format standard.

3. Imprimer vers des PC sous Windows

  3.1. Connexion  Windows

   Figure 2. L'impression en rseau

   L'impression en r*seau

   SMB et CIFS sont les protocoles utiliss par Windows pour le partage de
   fichiers et d'imprimantes. Nous utiliserons Samba pour communiquer avec
   les PC sous Windows via ces protocoles. Avant de configurer CUPS, nous
   devons nous assurer que nous pouvons nous connecter aux PC sous Windows en
   utilisant la commande smbclient, le client Samba pour les protocoles SMB
   et CIFS (voir le schma de la figure2, L'impression en rseau).

   Voici par exemple comment tablir une nouvelle connexion  un PC sous
   Windows:

   /usr/bin/smbclient -L orange -U fred                               
                                                                      
   added interface ip=10.6.7.234 bcast=10.6.7.255 nmask=255.255.255.0 
   Got a positive name query response from 10.6.7.8 ( 10.6.7.8 )      
   Password: (non affich)                                            
                                                                      
   Sharename  Type  Comment                                           
   PRINTER$   Disk                                                    
   JETDENCRE  Printer                                                 
   TRUCS      Disk                                                    
   IPC$       IPC    Remote Inter Process Communication               

   La commande utilise ci-dessus demande la liste des partages existant sur
   un PC sous Windows appel orange, avec l'identifiant utilisateur fred. Le
   rsultat de cette commande montre une imprimante appele JETDENCRE.

   Si le service de nommage Windows n'est pas disponible, vous devrez
   spcifier l'adresse IP du PC sous Windows avec l'option -I comme
   ci-dessous:

   /usr/bin/smbclient -I 10.6.7.8 -L orange -N                        

   Pour de plus amples informations, consultez la documentation de Samba sur
   l'utilisation de smbclient.

  3.2. Configuration de CUPS

   Une fois que vous aurez trouv votre imprimante Windows, vous pourrez
   configurer CUPS. Tout d'abord, vrifiez que votre installation de CUPS
   dispose de la compatibilit SMB en utilisant la commande suivante:

   ls -l /usr/lib/cups/backend/smb                                    

   Si ce fichier n'existe pas, crez-le par la commande suivante:

   ln -s `which smbspool` /usr/lib/cups/backend/smb                   

   Ceci est un exemple de configuration de l'imprimante montre plus haut:

/usr/sbin/lpadmin -p ImprimanteOrange \                                          
                  -v smb://fred:mon_passe@orange/JETDENCE -P /root/jetdencre.ppd 
/usr/bin/enable ImprimanteOrange                                                 
/usr/sbin/accept ImprimanteOrange                                                
/usr/sbin/lpadmin -d ImprimanteOrange                                            

   Comme mentionn prcdemment, bash dispose d'une commande intgre appele
   enable, donc les utilisateurs de bash doivent utiliser le chemin complet
   de la commande (/usr/bin/enable) lorsqu'ils souhaitent activer une
   imprimante.

   La commande lpadmin vous permet de configurer l'accs depuis Linux  une
   imprimante partage sous Windows. Il suffit de lui indiquer comme
   paramtre unique le nom d'utilisateur, le mot de passe, le nom netbios et
   le nom de l'imprimante.

   Regardez la section2.3, Configuration de l'imprimante locale avec
   CUPS pour une explication plus approfondie des commandes utilises
   ci-dessus. Si le service de nommage Windows n'est pas disponible, ajoutez
   l'option -h suivie de l'adresse IP de la machine sous Windows  la
   premire commande lpadmin:

/usr/sbin/lpadmin -p ImprimanteOrange -h 10.6.7.8 \                               
                  -v smb://fred:mon_passe@orange/jetdencre -P /root/jetdencre.ppd 

   Votre imprimante est maintenant prte  tre teste. Envoyez un fichier 
   l'imprimante avec la commande lp suivie du nom de fichier, ou en imprimant
   la document  partir d'une application.

4. Partager des imprimantes avec des PC sous Windows

  4.1. Les bases du partage

   Figure 3. Partage d'imprimante

   Partage d'imprimante

   Samba utilise les dmons nmbd et smbd pour le partage de fichiers et
   d'imprimantes avec des PC sous Windows. nmbd fonctionne comme un service
   de nommage Windows, en diffusant le nom de votre ordinateur aux autres PC
   sous Windows du rseau local. smbd accepte les demandes de fichiers et
   d'impression en provenance de machines sous Windows (cf. figure3,
   Partage d'imprimante).

   Vous aurez besoin de tlcharger et d'installer sous Windows les pilotes
   des imprimantes que vous partagerez sous Linux. Vous pourrez en gnral
   trouver ces pilotes sur les sites web de leurs constructeurs.

  4.2. Configuration de Samba

   Si vous autorisez un accs anonyme  votre imprimante, vous devrez crer
   un compte utilisateur pour les impressions  distance:

   /usr/sbin/adduser --system --disabled-password smbprint            

   Cette commande ajoute un utilisateur appel smbprint sur votre systme.
   Vrifiez qu'il y a assez d'espace disque dans /home/smbprint, le
   rpertoire personnel de l'utilisateur smbprint pour stocker les fichiers
   en attente d'impression. Vrifiez que l'utilisateur smbprint ne dispose
   pas des droits de lecture ou de modification sur les fichiers et les
   rpertoires sensibles. Si vous avez configur CUPS pour restreindre
   l'impression  certains utilisateurs sur votre systme, vous devrez
   autoriser l'utilisateur smbprint  accder aux imprimantes que vous voulez
   partager.

   Le fichier de configuration de Samba est /etc/samba/smb.conf. Ce qui suit
   est un exemple de configuration permettant d'utiliser CUPS avec
   l'utilisateur smbprint:

   [global]                                                           
    printcap name = cups                                              
    printing = cups                                                   
    security = share                                                  
                                                                      
   [printers]                                                         
    browseable = yes                                                  
    printable = yes                                                   
    public = yes                                                      
    create mode = 0700                                                
    guest only = yes                                                  
    use client driver = yes                                           
    guest account = smbprint                                          
    path = /home/smbprint                                             

   Veuillez noter que cette configuration va autoriser l'impression par toute
   personne pouvant tablir une connexion rseau  votre ordinateur, ce qui
   n'est pas recommand pour des machines situes sur des rseaux non srs.
   Ce qui est par exemple le cas des ordinateurs relis directement 
   internet. Si vous devez mettre en place un contrle d'accs, mettez
   security=user ou security=domain et lisez les pages de manuel de Samba
   pour de plus amples informations.

   Une fois que vous aurez ajout les rglages ci-dessus  votre fichier de
   configuration Samba, vous devez redmarrer Samba avec la commande:

   /etc/init.d/samba restart                                          

  4.3. Configuration de CUPS

   Les pilotes d'imprimante Windows formatent leur sortie pour l'imprimante
   avant de l'envoyer au travers du rseau. Vous devrez configurer CUPS pour
   accepter la sortie pr-formate en enlevant d-commentant^[1] la ligne
   ci-dessous du fichier /etc/cups/mime.convs:

   application/octet-stream   application/vnd.cups-raw   0   -        

   Vous devrez aussi d-commenter la ligne ci-dessous dans
   /etc/cups/mime.types:

   application/octet-stream                                           

   Maintenant, vous devez configurer CUPS pour autoriser les connexions en
   provenance des autres machines du rseau. Ajoutez les lignes ci-dessous au
   fichier /etc/cups/cupsd.conf:

   <Location /printers>                                               
    AuthType None                                                     
    Order Deny,Allow                                                  
    Deny From None                                                    
    Allow From All                                                    
   </Location>                                                        

   Comme dans la configuration de Samba, cette configuration autorise
   n'importe quelle machine  se connecter  vos imprimantes et n'est pas
   recommande sur des rseaux non scuriss. Pour apprendre comment
   configurer le contrle d'accs de vos imprimantes, lisez la page de manuel
   du fichier cupsd.conf et la documentation de CUPS.

   Finalement, redmarrez CUPS avec la commande suivante:

   /etc/init.d/cupsys restart                                         

   Votre imprimante sous Linux devrait dsormais tre accessible par les PC
   sous Windows de votre rseau local. Suivez les tapes habituelles de
   configuration d'une imprimante rseau sur vos machines sous Windows et
   n'oubliez pas d'imprimer une page de test.

5. Rsolution de problmes

  5.1. chec des connexions aux imprimantes sous Windows

   Quand smbspool, l'utilitaire correspondant  smbclient utilis par CUPS
   n'arrive pas  se connecter, il met des messages d'erreur pleins d'humour
   mais pas trs utiles. L'un de ces messages est:

   Impossible de se connecter  l'hte Samba: Succs.                

   L'chec des connexions peut galement se manifester par le blocage
   apparent des documents dans la file d'attente des imprimantes sous
   Windows.

   Examinez les entres les plus rcentes du journal des erreurs de CUPS avec
   la commande suivante:

   /usr/bin/tail /var/log/cups/error_log                              

   Si vous voyez un message ressemblant  cli_connect() failed... c'est que
   smbspool n'a pu trouver la machine Windows  laquelle vous essayez de vous
   connecter.

   Vrifiez l'orthographe du nom de la machine sous Windows. Vrifiez aussi
   que la machine sous Windows est allume et que sa connexion rseau
   fonctionne correctement. Assurez-vous que vous pouvez vous y connecter en
   utilisant smbclient comme cela a t prsent dans la section3.1,
   Connexion  Windows.

   Si vous voyez un message ressemblant  SMB tree connect failed: ERRSRV -
   ERRinvnetname c'est que smbclient est parvenu  se connecter  la machine
   sous Windows mais n'a pas pu se connecter  l'imprimante que vous avez
   indiqu. Vrifiez l'orthographe du nom de l'imprimante partage en
   utilisant la commande smbclient comme cela a t prsent dans la
   section3.1, Connexion  Windows.

  5.2. D'autres problmes

   Parmi les autres problmes que vous pourrez rencontrer, il y a, par
   exemple, le fait d'tre incapable d'imprimer vers une imprimante locale ou
   le fait de voir les travaux d'impression disparatre de la file d'attente
   sans s'tre imprims. Il se peut aussi que vous voyiez des messages
   d'erreurs vagues tels que:

   Child process 2384 exited with status 32.                          

   Augmentez le niveau de dtail du journal des erreurs (paramtre LogLevel)
   en lui donnant la valeur debug, ce qui vous permettra d'avoir plus
   d'informations sur ce qui s'est pass avant que l'impression choue:

    1. Ouvrez le fichier de configuration principal de CUPS
       /etc/cups/cupsd.conf avec un diteur de texte.

    2. Changez la ligne qui contient LogLevel warn en LogLevel debug.

    3. Sauvegardez le fichier de configuration et quittez l'diteur de texte.

    4. Relancez le serveur CUPS avec la commande suivante:

       /etc/init.d/cupsys restart                                      

   Vous pourrez consulter le fichier d'historique de CUPS avec la commande
   suivante :

   /usr/bin/tail -f /var/log/cups/error_log                           

   Vous devriez voir une ligne disant Scheduler shutting down due to SIGTERM.
   Cela indique que le serveur CUPS a t correctement arrt.

   Relancez votre travail d'impression et recherchez des messages
   intressants pour le diagnostic du problme.

   Un exemple de message de dbogage intressant est:

   GNU Ghostscript 7.05: Can't start ijs server 'hpijs'.             

   Dans ce cas, la solution est d'installer le paquet hpijs.

   Si vous ne pouvez pas dterminer la cause de l'chec, effectuez une
   recherche sur internet avec les mots clefs du message d'erreur que vous
   avez trouv; il y a des chances que quelqu'un aie dj rsolu votre
   problme auparavant. Vous pouvez aussi essayer de mettre  jour les
   paquets lists dans la section2.2, Logiciels requis si une version
   plus  jour est disponible.

  6.1. Licence & droits d'utilisation

  Avertissement

   Ceci est la version franaise non officielle de la licence selon laquelle
   ce document est distribu. Seule la version anglaise de cette licence
   (ci-dessous) fait foi.

   Copyright  2003 Ian Ward.

   Copyright  2003 Vincent Chartier, Claude Thomassin and Jean-Philippe
   Gurard pour la version franaise.

   Ce document est un logiciel libre; vous pouvez le redistribuer ou le
   modifier selon les termes de la licence publique gnrale GNU (GPL), tel
   que publie par la Free Software Foundation; que ce soit dans sa version
   2 ou bien,  votre choix, selon toute version ultrieure.

   Il est distribu dans l'espoir qu'il se rvlera utile, mais sans aucune
   garantie; sans mme les garanties implicites lis aux produits
   commerciaux ou d'adaptation  un but particulier. Reportez-vous  la
   licence publique gnrale GNU (GPL) pour plus d'informations.

   Une copie de la licence publique gnrale GNU (GPL) est disponible dans le
   fichier /usr/share/common-licenses/GPL livr avec la distribution
   Linux/GNU Debian. Cette licence est galement disponible sur la Toile 
   l'adresse http://www.gnu.org/copyleft/gpl.html. Vous pouvez galement
   obtenir une copie de cette licence en crivant (en anglais)  Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307, tats-Unis d'Amrique.

  6.2. License

  Avertissement

   Ceci est la version originale officielle de la licence selon laquelle ce
   document est distribu. Seule cette version fait foi. Une version
   franaise non-officielle est disponible ci-dessus.

   Copyright  2003 Ian Ward.

   Copyright  2003 Vincent Chartier, Claude Thomassin and Jean-Philippe
   Gurard for the french translation.

   This manual is free software; you may redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the Free
   Software Foundation; either version 2, or (at your option) any later
   version.

   This is distributed in the hope that it will be useful, but without any
   warranty; without even the implied warranty of merchantability or fitness
   for a particular purpose. See the GNU General Public License for more
   details.

   A copy of the GNU General Public License is available as
   /usr/share/common-licenses/GPL in the Debian GNU/Linux distribution or on
   the World Wide Web at http://www.gnu.org/copyleft/gpl.html. You can also
   obtain it by writing to the Free Software Foundation, Inc., 59 Temple
   Place, Suite 330, Boston, MA 02111-1307, USA.

   --------------

   ^[1] C'est--dire en retirant le caractre dise (#) en dbut de
   ligne.
