3. Imprimer vers des PC sous Windows

3.1. Connexion à Windows

Figure 2. L'impression en réseau

L'impression en réseau

SMB et CIFS sont les protocoles utilisés 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 schéma de la figure 2, « L'impression en réseau »).

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 utilisée ci-dessus demande la liste des partages existant sur un PC sous Windows appelé orange, avec l'identifiant utilisateur fred. Le résultat de cette commande montre une imprimante appelée JETDENCRE.

Si le service de nommage Windows n'est pas disponible, vous devrez spécifier 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, vérifiez 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, créez-le par la commande suivante :

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

Ceci est un exemple de configuration de l'imprimante montrée 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é précédemment, bash dispose d'une commande intégrée appelée 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'accès depuis Linux à une imprimante partagée sous Windows. Il suffit de lui indiquer comme paramètre unique le nom d'utilisateur, le mot de passe, le nom netbios et le nom de l'imprimante.

Regardez la section 2.3, « Configuration de l'imprimante locale avec CUPS » pour une explication plus approfondie des commandes utilisées 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 première 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 prête à être testée. Envoyez un fichier à l'imprimante avec la commande lp suivie du nom de fichier, ou en imprimant la document à partir d'une application.