Ouvrir le menu principal

MacGeneration

Recherche

Macberry Pi : utiliser un Raspberry Pi comme serveur AirPrint

Antoine Collin

vendredi 15 mars 2013 à 14:30 • 32

Matériel

La semaine dernière, nous vous expliquions comment transformer un Raspberry Pi en « Macberry Pi » et comment installer un serveur Time Machine. Cette fois, nous allons mettre en place un serveur pour une autre technologie Apple, AirPrint.



Macberry Pi



AirPrint



AirPrint est une technologie apparue avec iOS 4.2 et intégrée ensuite dans OS X Lion. En simplifiant, AirPrint est un pilote universel pour les imprimantes et ce sont les constructeurs de matériel qui doivent rendre les imprimantes compatibles avec le pilote en question. S’il a fallu un peu de temps avant que la mayonnaise ne prenne, la majorité des imprimantes est désormais compatible AirPrint). Mais si jamais votre modèle n’est pas compatible avec la technologie d’Apple, il est possible d’utiliser le Raspberry Pi comme pont AirPrint.



Le matériel



Nous allons supposer que vous avez suivi les explications de notre premier article et qu’Avahi, l’implémentation open source de Bonjour (une technologie Apple) est déjà installée. La façon la plus simple de prendre en charge AirPrint est d’utiliser CUPS, une technologie open source qui provient de chez Apple et qui fonctionne parfaitement sous différents UNIX, dont la distribution GNU/Linux du Raspberry Pi. Nous avons testé le bon fonctionnement de la technologie avec une imprimante HP et une imprimante Brother, mais n'importe quel modèle pris en charge par CUPS devrait fonctionner.



La connexion entre l’imprimante et le Raspberry Pi n’a que peu d’importance : nous avons testé avec une imprimante reliée directement en USB au Raspberry Pi, une imprimante réseau classique et une imprimante reliée à une borne AirPort Express et la technologie a fonctionné dans les trois cas. Il est aussi a priori possible d’utiliser une imprimante partagée depuis une box internet, même si nous n’avons pas pu tester.



l’installation



Comme précédemment, il faut brancher le Raspberry Pi au réseau et s’y connecter via SSH.



ssh pi@MacberryPi.local


Première chose, installer les paquets nécessaires, dont CUPS.



sudo apt-get install cups-pdf python-cups cups-driver-gutenprint foomatic-db


Maintenant, nous allons modifier un fichier de configuration avec Nano. Pour rappel, il faut utiliser ^O pour sauver et ^X pour quitter.



sudo nano /etc/cups/cupsd.conf


Il faut commenter la ligne Listen localhost:631 en ajoutant un # devant et ajouter la ligne suivante : Port 631. Il faut ajouter la ligne ServerAlias * avant la première occurrence de <Location />. Il faut ajouter la ligne Allow @Local avant </Location> trois fois dans le fichier : une fois dans la zone qui commence par <Location />, une fois dans celle qui commence par <Location /admin> et une fois dans celle qui commence par <Location /admin/conf>.



Une fois les modifications effectuées, vous pouvez redémarrer le serveur CUPS avec la commande suivante.



sudo /etc/init.d/cups restart


CUPS a aussi besoin d’une petite modification de notre compte utilisateur, pi, pour imprimer.



sudo usermod -aG lpadmin pi


l’accès via Bonjour



Comme lors de la mise en place du serveur Time Machine, nous allons nous simplifier la vie en évitant de chercher l’IP du serveur AirPrint. Le plus simple est de créer un service avec Avahi qui va permettre au serveur de s’annoncer directement sur le réseau.



sudo nano /etc/avahi/services/cups.service


Il faut ensuite coller le code suivant dans le fichier et sauver. Il va permettre au serveur AirPrint et à sa page d’administration d’apparaître dans Safari.



<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name>CUPS Admin</name>
<service>
<type>_http._tcp</type>
<port>631</port>
<txt-record>path=/admin/</txt-record>
</service>
</service-group>


Il indique simplement que l’interface est accessible sur le port 631. Ensuite, il faut redémarrer Avahi.



sudo service avahi-daemon restart


La configuration de l’imprimante



Maintenant, nous allons abandonner la ligne de commande pendant quelques minutes et lancer Safari. Il faut se rendre sur l’interface d’administration de CUPS, normalement accessible via Bonjour.

Pour accéder aux signets Bonjour, il faut activer la technologie dans Safari (Préférences > Signets > Menu Signets > Inclure Bonjour) et ensuite aller dans Signets > Bonjour > Pages web.





La première chose à faire est de cocher la case Partager les imprimantes connectées à ce système.





Ensuite, il faut Ajouter une imprimante et sélectionner votre modèle s’il est détecté, ce qui était notre cas.







Il faut donner un nom à l’imprimante (sans espace) et bien cocher la case Partager cette imprimante. Dans la page suivante, il faut sélectionner le pilote de l’imprimante. Dans la majorité des cas, il n’y en aura qu’un seul, dans notre cas particulier, il y en avait deux.







Dernière étape, comme AirPrint ne permet pas beaucoup de réglages depuis les appareils iOS, il faut définir les options par défaut de l’imprimante.





l’activation d’AirPrint



Maintenant, retournons sur le Raspberry Pi en ligne de commande. Depuis iOS 6, Apple a effectué quelques modifications et nous allons donc préparer CUPS pour activer AirPrint.



sudo nano /usr/share/cups/mime/airprint.types


Il faut ajouter la ligne suivante dans le fichier et sauver (^O).



image/urf urf string(0,UNIRAST)


Même chose avec la commande suivante.



sudo nano /usr/share/cups/mime/airprint.convs


Il faut ajouter cette ligne et sauver.



image/urf application/pdf 100 pdftoraster


Maintenant, nous allons utiliser un petit script Python qui va activer AirPrint. Les commandes suivantes permettent de télécharger le script au bon endroit et de l’exécuter.



sudo mkdir /opt/airprint
cd /opt/airprint
sudo wget -O airprint-generate.py --no-check-certificate https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
sudo chmod 755 airprint-generate.py
sudo ./airprint-generate.py -d /etc/avahi/services


Maintenant, il suffit de redémarrer le Raspberry Pi et AirPrint devrait fonctionner avec l’imprimante partagée.



sudo reboot


Ajout(s) et gestion d’imprimantes



Pour gérer l’imprimante, c’est assez simple : il suffit de se connecter sur l’interface d’administration de CUPS et de cliquer sur Gérer les Imprimantes. Une page va s’ouvrir, avec la possibilité de gérer les impressions en cours (annulation, etc.).





Si vous ajoutez une imprimante pour une raison ou pour une autre, il est nécessaire d’exécuter le script Python qui active AirPrint et de relancer le serveur CUPS, avec les commandes suivantes.



cd /opt/airprint
sudo ./airprint-generate.py -d /etc/avahi/services
sudo service avahi-daemon restart


Pour les possesseurs de Freebox, il est possible d’utiliser une imprimante partagée en utilisant le protocole ipp (Internet Printing Protocol) lors de l’ajout, avec l’adresse suivante socket://mafreebox.freebox.fr:9100.



Si ça ne fonctionne pas



Si jamais les essais d’impression échouent, il y a une solution dans certains cas : optimiser la gestion de la mémoire. Sur les Raspberry Pi modèle B de première génération, dotés de seulement 256 Mo de mémoire vive, le partage entre le système et la carte graphique peut parfois poser des soucis à CUPS. Le plus simple est d’allouer le maximum de mémoire au système (224 Mo) et le minimum au GPU (16 Mo). Pour modifier la gestion du partage, il faut taper la commande suivante.



sudo raspi-config


Il faut ensuite se rendre dans le menu memory_split et effectuer le changement le cas échéant, avant de redémarrer le Raspberry Pi. Sur les modèles B récents, dotés de 512 Mo de mémoire vive, le problème ne devrait pas se poser.



Imprimer depuis (Mac) OS X ou iOS



Normalement, une fois que toutes ces (longues) étapes sont passées, l’impression devrait fonctionner avec les appareils iOS compatibles et depuis OS X Lion ou OS X Mountain Lion. Les deux systèmes permettent en effet d’utiliser une imprimante AirPrint directement, sans pilotes, même si les pilotes proposés par Apple ou par le constructeur intègrent parfois plus d’options.



Nous nous rendons bien compte que tout ceci semble ardu pour les néophytes et pour ceux qui ne sont pas habitués aux systèmes GNU/Linux, mais ne prenez pas peur : il faut essentiellement être capable de faire un peu de copier/coller. La mise en place est en fait assez simple et — si Apple ne modifie pas la gestion d’AirPrint dans ses prochains systèmes — ne nécessite pas de maintenance particulière.

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

Le MacBook Air M1 tombe à moins de 430 € avec le code HALLOWEEN40

12:37

• 0


Elon Musk annonce une démonstration d’ici la fin de l’année du Tesla Roadster... volant ?

11:00

• 38


Les promos Apple s’emballent : iPhone et iPad (Pro) et Apple Watch Ultra 2 à prix cassés

09:03

• 24


Fin de Windows 10 : notre nouvelle série sur le Club iGen pour surmonter cette épreuve

08:05

• 15


Fin de Windows 10 : une transition vers Windows 11 qui vire au fiasco

08:00

• 23


Tests, série, analyses… Les articles du Club iGen publiés en octobre

01/11/2025 à 15:00

• 4


Sortie de veille : comment Apple bat de nouveaux records financiers

01/11/2025 à 08:00

• 18


Sam Altman, frustré, annule sa commande de Tesla Roadster et se prend un mur

31/10/2025 à 21:00

• 138


Votre iPhone 18 Pro, vous le prendrez plutôt café, violet ou bordeaux ?

31/10/2025 à 17:13

• 57


Cette extension pour Chrome reprend une idée populaire d’Arc pour changer d’onglet

31/10/2025 à 15:20

• 7


Le gouvernement américain voudrait bannir TP-Link pour des raisons de sécurité nationale

31/10/2025 à 11:30

• 27


Le Black Friday a déjà commencé chez Boulanger, qui autorise les retours jusqu’au 31 janvier

31/10/2025 à 10:31

• 5


Attention aux tentatives d'arnaques en lien avec les données volées à Bouygues Telecom

31/10/2025 à 10:19

• 38


iOS 26.1, nouveau matériel : que nous réserve le mois de novembre d’Apple ?

31/10/2025 à 10:01

• 33


Bon plan : le MacBook Air M4 avec 24 Go de RAM et SSD 512 Go à 1 347 €

31/10/2025 à 08:44

• 12


iPhone 17 : un succès au-delà des attentes

31/10/2025 à 08:10

• 56