AirPrint »Magazine Linux – Serveur d’impression
La version 4.2 d'iOS a été la première à permettre à l'iPad et à l'iPhone Apple d'imprimer, mais uniquement sur les imprimantes prenant en charge la technologie AirPrint. Les appareils AirPrint sont désormais disponibles auprès de tous les principaux fabricants, dans toutes les classes de prix et de performances, mais de nombreux utilisateurs craignent toujours de devoir acheter une nouvelle imprimante uniquement pour mettre sur le papier quelque chose de leur iPhone ou de leur iPad.
Heureusement, si votre réseau domestique comprend une machine Linux, vous avez accès à tous les outils nécessaires pour partager vos imprimantes sur le réseau en tant que périphériques compatibles AirPrint. AirPrint est basé sur la norme de réseau sans configuration (Zeroconf), que Apple commercialise sous le nom de marque Bonjour. Linux a sa propre implémentation de Zeroconf connue sous le nom d'Avahi.
Dès 2011, Till Kamppeter a modifié la mise en œuvre du système CUPS (Common Unix Printer System) pour les versions Ubuntu Natty et Oneiric afin que les imprimantes AirPrint connectées soient directement disponibles. Si votre distribution ne prend pas en charge la configuration directe, il est utile de savoir comment configurer manuellement la prise en charge AirPrint. Dans cet article, je regarde AirPrint avec Linux.
CUPS
AirPrint est une technologie qui permet au périphérique d'envoyer des fichiers PDF à l'imprimante. À cette fin, il envoie des informations sur le nombre de copies et le nombre de pages que l'utilisateur souhaite réellement imprimer. Une installation fonctionnelle de CUPS devrait suffire à laisser l’iPad et l’iPhone trouver les imprimantes partagées sur le réseau et les imprimer.
Malheureusement, Apple a maintenant supprimé certaines fonctionnalités importantes de CUPS qui ne sont pas nécessaires sous Mac OS X, car elles y sont fournies par le service Bonjour. Heureusement, Linux réintroduit ces fonctionnalités manquantes via Avahi, qui inclut les fonctions nécessaires.
La configuration de CUPS sous Linux est décrite par de nombreuses sources Web. Dans cet article, je suppose qu'une version fonctionnelle de CUPS est en cours d'exécution sur votre système. Une fois que le service CUPS est en cours d'exécution, vérifiez d'abord si votre imprimante fonctionne en imprimant une page de test. (Ouvrez un navigateur et entrez l'URL http: //
Pour partager l’imprimante sur le réseau, assurez-vous que le /etc/cups/cupsd.conf Le fichier contient les entrées appropriées. Le Listing 1 montre un exemple tiré du système de test.
Listing 1: Exemple de /etc/cups/cupsd.conf
01 ServerAlias * 02 écoute *: 631 03 Ecoute /var/run/cups/cups.sock 04 # Restreindre l'accès au serveur ... 0506 Autoriser @LOCAL 07 Ordre permettre, refuser 0809 # Restreindre l'accès aux pages d'administration ... dix 11 Ordre permettre, refuser 12 Autoriser @LOCAL 13 14 # Restreindre l'accès aux fichiers de configuration ... 1516 AuthType par défaut 17 Requiert l'utilisateur @SYSTEM 18 Ordre permettre, refuser 19 Autoriser @LOCAL 20
Les deux premières lignes sont importantes ici; ils permettent à n'importe quel client d'accéder au serveur. Ces autorisations laxistes facilitent les attaques sur le service. Il est donc important de prendre en compte les modifications que vous apportez.
Modifiez le fichier en conséquence et redémarrez le système CUPS. Sur openSUSE, vous pouvez effectuer les opérations suivantes:
sudo systemctl restart cups.service
Cependant, sur Ubuntu et d’autres systèmes Debian, utilisez la commande suivante:
sudo /etc/init.d/cups restart
Vous devriez maintenant pouvoir trouver l'imprimante à partir d'un ordinateur Windows. Pour faire ça, Ajouter une nouvelle imprimante réseau dans le Panneau de configuration, puis tapez l’adresse du serveur CUPS et le nom de l’imprimante en tant que nom de l’imprimante partagée (Figure 1).
Figure 1: Si vous souhaitez également utiliser l’imprimante partagée sous Windows, configurez une nouvelle imprimante réseau sur le système en question.
Windows demande au modèle d'imprimante d'installer le pilote approprié. Si vous voyez un Impossible de se connecter Dans ce message, vérifiez à nouveau votre installation CUPS et le partage réseau de l’imprimante.
Avahi
Pour que les périphériques Apple puissent reconnaître l'imprimante, vous devez en faire la publicité via une diffusion Bonjour sur le réseau. Pour ce faire, configurez un service Avahi. Les fichiers de configuration de ces services se trouvent dans le répertoire / etc / ahavi / services annuaire. Le listing 2 montre les AirPrint HP1220C.service déposer sur notre système de laboratoire.
Listing 2: AirPrint HP1220C.serviceconf
01020304 AirPrint HP1220C @% h 0506 20_ipp._tcp 07_universal._sub._ipp._tcp 08631 09txtvers = 1 dixqtotal = 1 11Transparent = T 12URF = aucun 13rp = imprimantes / HP1220C 14note = file d'attente brute avec pilote HP Deskjet 1220c hpijs, 3.12.11 15product = (GPL Ghostscript) 16état-imprimante = 3 17type-imprimante = 0x82b01c 18pdl = application / octet-stream, application / pdf, application / postscript, image / gif, image / jpeg, image / png, image / tiff, image / urf, text / html, text / plain, application / vnd.cups-banner, application / vnd.cups-command, application / vnd.cups-pdf, application / vnd.cups-postscript 19
Certes, créer et modifier manuellement ces fichiers de service pour chaque imprimante du système n’est peut-être pas une idée amusante pour tout le monde. Heureusement, le développeur Timothy J. Fontaine a implémenté un petit script Python (Listing 3) qui crée automatiquement ces fichiers pour toutes les imprimantes CUPS du système.[[[[https://github.com/tjfontaine/airprint-generate].
Listing 3: Exécuter un script Python
wget https://github.com/tjfontaine/airprint-generate/zipall/master décompresser le maître cd tjfontaine-airprint-generate-fb98c1d / ./airprint-generate.py mv AirPrint-HP1220C.service / etc / avahi / services sudo systemctl redémarrer avahi-daemon.service sudo systemctl restart cups.service
Les étapes sont assez simples: il suffit d’exécuter le script sans aucun paramètre une fois pour chaque imprimante; cela vous donne un fichier que vous copiez ensuite dans le / etc / avahi / services annuaire. Après avoir redémarré Avahi et CUPS, vous devriez pouvoir imprimer à partir de périphériques Apple sans aucun problème.
Création de types MIME
Ce que nous avons examiné jusqu’à présent échouera si vous avez installé iOS version 6 ou plus récente sur votre appareil. Dans ce cas, vous devez également créer de nouveaux types MIME pour associer correctement les données entrantes. C'est assez simple (exemple 4).
Listing 4: Créer des types MIME
echo "image / urf urf chaîne (0, UNIRAST<00>) "> /usr/share/cups/mime/airprint.types echo "image / application urf / pdf 100 pdftoraster"> /usr/share/cups/mime/airprint.convs
Conclusions
Contrairement aux solutions de contournement populaires utilisant des applications pour imprimantes spécialisées, cette approche ne nécessite aucune intervention sur le périphérique Apple. Vous utilisez simplement la fonction d'impression existante. La figure 2 vous montre à quoi ce processus ressemble sur l'iPad.
Figure 2: Impression depuis l'iPad: Grâce à CUPS et à Avahi, vous pouvez imprimer à partir de n'importe quel ordinateur via votre PC Linux sans vous soucier de la configuration.
En quelques étapes seulement, vous avez préparé un serveur CUPS pour l’impression via AirPrint. Cela vous permet d'économiser de l'argent, car toutes les imprimantes ne prennent pas cette technologie en charge.
De plus, l’approche ne pose aucune exigence particulière à l’imprimante. Les ajustements sont entièrement effectués sur le PC Linux. En principe, cette approche devrait également fonctionner avec tout mini-serveur exécutant Linux intégré.









Commentaires
Laisser un commentaire