{{tag>portail matériel imprimante}}
----
====== Comprendre l'impression sous Ubuntu ======
Cette page fournit les informations de base nécessaires à la compréhension de la manière dont fonctionne l'impression sous Ubuntu et surtout comment configurer son ordinateur en conséquence. \\
La lecture de cette page n'est pas un préalable obligatoire pour installer son imprimante. Néanmoins, celle-ci est de nature à grandement faciliter la lecture des tutoriels et il ne faudra pas hésiter à s'y reporter en cas d'incompréhension sur tel ou tel aspect de la procédure d'installation.
===== CUPS : le Système Commun d'Impression Unix =====
Comme tous les systèmes d'exploitation de la famille Unix, Ubuntu utilise pour l'impression le **Système Commun d'Impression Unix** dont l'appellation anglaise "Common Unix Printing System" a donné l'acronyme **CUPS**.
En général, CUPS est installé de base, du moins sur les versions récentes. \\
En premier lieu, CUPS permet à l'ordinateur sur lequel il est installé de fonctionner en serveur d'impression sur un réseau. Un serveur d'impression est capable d'**accepter des tâches d'impression** d'autres ordinateurs (les clients) et de **les répartir sur les imprimantes** auxquelles il a accès. \\
Le client peut être un **hôte distant** ou tout simplement l'**hôte local** (l'ordinateur sur lequel est implanté CUPS). Si l'ordinateur client est un hôte distant, il doit être configuré en tant que client. Voir pour cela le tutoriel **[[:tutoriel:imprimante_client|"Configurer un ordinateur en client d'un serveur d'impression"]]**. Ceci n'exclut pas la nécessité d'installer (d'un point de vue logiciel s'entend) l'imprimante sur l'ordinateur client. \\
==== Les principales couches de CUPS ====
Cet exposé n'a pas pour but de remplacer les excellentes pages de Wikipedia mais simplement de dégager les aspects majeurs auxquels vous êtes directement confrontés lors de la configuration de l'impression sous Ubuntu et vous permettre d'avoir une vue d'ensemble. \\
**Très schématiquement, sans entrer dans trop de détails, le schéma fonctionnel de CUPS est le suivant :** \\
{{:utilisateurs:jaaf64:cups-synoptic2.jpg?500|}}
=== Planificateur ===
Le planificateur reçoit les requêtes d'impression des hôtes distants ou de l'hôte local. Pour adresser ces requêtes, les clients utilisent le protocole IPP ou **Internet Printing Protocol** ou le **protocole LPD/LPR** qui est alors converti par le planificateur en IPP. \\
Le planificateur assure également la **gestion des autorisations d'accès** et l'**ordonnancement des tâches** d'impression à l'aide de **"files d'attentes"** (**queues** en anglais).
Le planificateur assure également, l'interprétation des commandes en ligne traditionnelles des différents systèmes (system V et Berckley) permettant d'interagir avec les imprimantes :
* **lp** : permet d'imprimer un (ou des) fichier(s).
* **lpr** : permet d'imprimer un (ou des) fichier(s).
* **lpq** : permet d'afficher la file d'attente d'une imprimante.
* **lprm** : permet de supprimer des //jobs// de la file d'attente (voir aussi la commande **cancel**).
* **lpstat** : permet d'afficher des informations détaillées sur le serveur d'impression. Par exemple, pour voir l'imprimante par défaut : **lpstat -d**.
* **lpoptions** : permet d'afficher ou de modifier la configuration du serveur d'impression. Par exemple, pour changer l'imprimante par défaut : **lpoptions -d autreimprimante**. [commande CUPS seulement]
* **lpmove** : permet de déplacer un //job// (une impression) de la file d'attente d'une imprimante à une autre imprimante.
* **lpc** : permet de contrôler interactivement les imprimantes.
=== Filtrage ===
C'est au niveau de cette couche que les formats des diverses applications sont **traduits en un format compréhensible par l'imprimante**, en tenant compte, entre autres, de la spécificité de l'imprimante grâce aux** pilotes**.
Les **pilotes** (**drivers** en anglais) sont des programmes qui assurent l'interface entre les programmes génériques de plus haut niveau et un **matériel bien spécifique**. Dans tous les cas, il vous faudra installer un pilote pour votre imprimante, voire un deuxième pilote enveloppe pour CUPS (wrapper). Au niveau du processus global de CUPS **ils sont pris en compte au niveau de l'étage de filtrage** (voir schéma plus haut).
Notez bien que les pilotes sont pris en compte avant, et donc indépendamment de la manière dont la communication se fait avec l'imprimante. Ils sont donc **les mêmes quel que soit le module de transport (backend) utilisé.**
=== Transport ===
Pour communiquer avec les imprimantes, CUPS utilise des **"modules de transport"** (backend en anglais).
Il existe des modules de transport pour les protocoles utilisant les ports **parrallèle**, **série** et** USB** mais aussi des modules de transport opérant à travers un réseau via les protocoles** IPP (Internet Print Protocol)** , **JetDirect (AppSocket), Line Printer Daemon (LPD/LPR) ou SMB**.
En général, vous serez confronté au choix du module de transport après avoir installé les pilotes au moment où vous demanderez à CUPS de détecter votre imprimante et seulement pour les cas où l'imprimante communique par le réseau. Pour la communication directe, le module de transport sera choisi automatiquement par CUPS.
Notez bien que la fonction du module de transport est d'acheminer les données à l'imprimante sans altération. Il n'y a donc aucune transformation de ces données dans ce module.
==== Interfaces graphiques de CUPS ====
CUPS dispose d'interfaces graphiques que vous devrez utiliser lors de l'installation de votre imprimante. Parmi ces interfaces se trouve:
* Le [[:system-config-printer|gestionnaire d'impression]], interface propre à votre environnement de bureau (GNOME, KDE etc.).
* L'interface [[:cups|WEB de CUPS]] accessible sur tous les environnements. L'avantage de cette interface est d'être disponible sur tous systèmes. Néanmoins, la richesse des possibilités offertes dépasse souvent très largement le besoin de l'utilisateur particulier.
Notez bien que l'adresse utilisée est locale et que donc vous ne passez pas par Internet pour configurer votre ordinateur. Vous pourriez néanmoins accéder à CUPS sur un ordinateur distant si vous en aviez les droits.
Les choix que vous pouvez faire à l'aide de l'une ou l'autre de ces interfaces ont, bien entendu, les **mêmes effets** sur l'installation et la configuration des imprimantes.
===== Les différentes situations d'un ordinateur =====
Avant de se lancer à corps perdu dans l'installation d'une imprimante sur un ordinateur, il convient d'abord de bien identifier dans quelle situation (au regard de l'impression bien-sûr) se trouve votre ordinateur. \\
Les paragraphes suivants expliquent ce qu'il convient de faire pour la configurer correctement.
==== Un peu de vocabulaire ====
Tout d'abord, précisons ce que signifie installer une imprimante sur un ordinateur. Installer une imprimante sur un ordinateur, est une expression qui concerne uniquement l'aspect logiciel (programme) et non pas l'aspect physique, qui lui s'appelle "raccordement". On peut très bien installer une imprimante qui n'est pas physiquement raccordée à son ordinateur, celle-ci pouvant en effet être raccordée à un autre ordinateur et accessible à travers un réseau.
Installer une imprimante consiste en général à fournir à CUPS les pilotes de cette imprimante et à lui faire reconnaître comment y accéder ; en général l'identification d'un module de transport (voir paragraphe précédent sur CUPS) et d'une adresse réseau.
==== Situation 1 : l'imprimante est connectée directement à l'ordinateur ====
{{ :printer-connect-direct.jpg?300|}}
C'est le cas des imprimantes qui ne disposent que d'un port **USB** , d'un port** parallèle** (ou encore les deux à la fois) ainsi que des imprimantes connectées par bluetooth. Ce peut-être également un choix délibéré de votre part.
Cette option n'exclut pas le partage avec d'autres ordinateurs si votre ordinateur est raccordé à un réseau et qu'il reste allumé quand les autres ont besoin d'imprimer.
Voir pour cela le [[:tutoriel/installer_imprimante_partage|partage d'imprimante]].
Dans ce cas, CUPS est installé sur l'ordinateur (hôte local) et joue le rôle de serveur d'impression pour les différentes applications locales et pour les commandes en ligne. \\
//__**Pour communiquer avec l'imprimante dans cette situation il faut :**__//
* Si cet ordinateur n'a pas lieu d'accepter des demandes d'impression d'autres ordinateurs, simplement y **installer l'imprimante**.
* Par contre, si l'ordinateur doit en plus accepter des demandes d'impression venant d'autres ordinateurs ; il faudra **en plus, le configurer en serveur d'impression**. Voir pour cela la page : **[[:tutoriel/imprimante_serveur|Configurer un ordinateur en "serveur d'impression"]]**.
==== Situation 2 : L'imprimante est accessible via un réseau ====
Pour communiquer avec une imprimante via un réseau, **il faut qu'entre votre ordinateur et l'imprimante s'intercale un serveur d'impression**.
Un serveur d'impression permet le partage d'une ou plusieurs imprimantes entre des ordinateurs situés sur un réseau. Il dispose donc :
- d'une connexion au réseau (exemple prise RJ45 pour Ethernet) par laquelle il communique selon un protocole réseau (TCP/IP par exemple).
- d'une ou plusieurs connections directes avec une ou plusieurs imprimantes (prise USB par exemple)
Il y a pour cela plusieurs possibilités :
* **Situation 2-1** - l'imprimante dispose de la carte de raccordement direct au réseau (on parle dans ce cas d'imprimante réseau)
* **Situation 2-2** - l'imprimante est raccordée à un boîtier électronique, qui comporte ce serveur d'impression, qui peut être un boîtier dédié, une passerelle résidentielle (Livebox, Freebox, etc.)
* **Situation 2-3** - l'imprimante est (ou sera) en communication directe avec **un autre ordinateur** relié au réseau qui inclut un serveur d'impression.
=== Situation 2-1-l'imprimante dispose d'une carte de raccordement direct au réseau (imprimante réseau) ===
Dans ce cas, l'imprimante est bien-sûr partagée au sens où chacun des ordinateurs peut l'utiliser sans trop se soucier des autres, mais **elle n'est pas partagée** au sens de** "offerte en partage par un ordinateur"** aux autres ordinateurs ; lequel ordinateur devrait rester allumé en faisant office de serveur d'impression. C'est la carte réseau de l'imprimante qui assure la gestion et l'ordonnancement des tâches reçues des divers ordinateurs du réseau. Au niveau de votre propre ordinateur, CUPS assure alors le rôle de serveur d'impression "local" et gère ainsi les tâches multiples envoyées par les applications.
{{:printer-connect-reseau.jpg?500|}}
//__**Pour communiquer avec l'imprimante dans cette situation il faut :**__//
- **Raccorder physiquement l'imprimante au réseau** et **configurer ce réseau**. Il est conseillé de configurer le réseau pour que l'imprimante ait une adresse **IP fixe**.
Le mode alternatif de configuration du réseau est le mode DHCP (Dynamic Host Configuration protocol), plus facile à mettre en oeuvre, qui attribue les adresses des hôtes automatiquement. Dans ce cas, une coupure d'alimentation électrique engendrerait un redémarrage du processus d'attribution des adresses et celle de votre imprimante pourrait changer. Si vous désirez néanmoins rester dans cette situation, la solution est de configurer une réservation d'adresse dans le serveur DHCP, sinon au cas où cet événement surviendrait, il vous faudrait effacer votre imprimante et reprendre sa détection et sa configuration.
- **Installer l'imprimante sur votre ordinateur**, c'est-à-dire : ajouter l'imprimante aux imprimantes prises en charge par CUPS sur votre ordinateur en lui fournissant les pilotes et en lui précisant les moyens d'accès (module de transport et adresse IP).
- ** [[:tutoriel:imprimante_client|Configurer l'ordinateur en client d'un serveur d'impression]]**.
=== Situation 2-2- Votre imprimante est raccordée à un boîtier électronique qui comporte ce serveur d'impression ===
{{:printer-connect-boitier.jpg?500|}}
//__**Pour communiquer avec l'imprimante dans cette situation il faut :**__//
- ** Raccorder l'imprimante au boîtier** contenant le serveur d'impression.
- **Configurer le serveur d'impression et le raccorder au réseau** : reportez-vous au manuel d'installation de ce matériel pour son raccordement et pour l'installation des pilotes dans ce boîtier.
- ** [[:tutoriel:imprimante_client|Configurer un ordinateur en client d'un serveur d'impression]]** L'imprimante publiée par l'ordinateur serveur apparaît alors dans la liste des imprimantes utilisables.
**Exemples :** deux exemples pratiques sont donnés ici pour les passerelles résidentielles courantes : [[:serveur impression Neufbox]] et [[:serveur impression Freebox|serveur impression Freebox/Alicebox]].
=== Situation 2-3- l'imprimante est en communication directe avec un autre ordinateur relié au réseau qui inclut un serveur d'impression. ===
{{:printer-connect-partage.jpg?500|}}
Dans ce cas, votre ordinateur est dit **"ordinateur client"** (voir figure ci-dessus) et l'ordinateur distant est dit **"ordinateur serveur"**. \\
//__**Pour communiquer avec l'imprimante dans cette situation il faut :**__//
* **Raccorder et installer l'imprimante** sur l'ordinateur distant.
* Si le système d'exploitation de cet ordinateur distant est Ubuntu, se reporter à **[[:imprimante|cette page]]**.
* Dans le cas contraire, consulter la procédure d'installation et de mise en réseau relative au système d'exploitation de l'ordinateur distant.
* **Configurer l'ordinateur distant en "serveur d'impression"**.
* Si le système d'exploitation de cet ordinateur distant est Ubuntu, se reporter à la page ** [[:tutoriel/imprimante_serveur|Configurer un ordinateur en "serveur d'impression"]]**.
* Dans le cas contraire consulter la procédure de partage d'imprimante relative au système d'exploitation utilisé.
* **Configurer votre propre ordinateur en client** et le mettre en relation avec l'imprimante. Reportez-vous à la page ** [[:tutoriel:imprimante_client|Configurer un ordinateur en client d'un serveur d'impression]]**.
===== Voir Aussi =====
Pour obtenir des informations plus détaillées on se reportera utilement aux pages de Wikipédia, à savoir :
- La page francophone :[[wpfr>Common_Unix_Printing_System| Common Unix Printing System]]
- La page anglophone : [[wpen>CUPS| CUPS]] \\
ainsi qu' au site du projet :
Liens internes :
* [[:gtklp|Interface graphique à CUPS]]
* [[:tutoriel:installer_imprimante_partage|Partage d'imprimante]]
* [[:serveur impression Freebox|serveur impression Freebox/Alicebox]]
* [[:serveur impression neufbox]]
----
Contributeur principal : //[[:utilisateurs:jaaf64|jaaf64]]//