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.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Grosse panne sur le réseau mobile de SFR

14:54

• 17


Un Steam Deck caché dans un clavier Apple pour l'utiliser avec des lunettes AR

13:00

• 8


En Allemagne, le Schleswig-Holstein va abandonner les outils Microsoft comme Teams ou Office

11:38

• 34


macOS Tahoe change plus facilement la couleur des LED des manettes de PlayStation

10:45

• 12


GlassBar opacifie déjà la barre des menus de macOS Tahoe

09:04

• 12


Nouveautés d’iOS 26, macOS Tahoe, Liquid Glass… Tous nos articles pour tout savoir sur la WWDC 2025

06:00

• 11


Les leçons de la WWDC 2025, et ce qu’elle laisse entrevoir de la suite : la semaine Apple

15/06/2025 à 21:00

• 43


Aperçu de Spotlight dans macOS Tahoe : le lanceur idéal pour débuter ?

14/06/2025 à 11:00

• 35


Sortie de veille : une WWDC 2025 réussie ? Notre débrief d’iOS 26, Liquid Glass…

14/06/2025 à 08:00

• 11


SAV : Apple lance un programme de réparation pour des Mac mini M2 qui ne s'allument plus

14/06/2025 à 07:38

• 41


Avec Tahoe, les applications macOS pourront s’afficher sur le Vision Pro

13/06/2025 à 21:57

• 17


Les Youtubeurs de Linus Tech Tips voulaient se moquer des Mac pendant un mois, mais décident finalement de rester chez Apple

13/06/2025 à 18:56

• 104


watchOS 26 : découverte de la nouvelle interface de l'app Exercice

13/06/2025 à 18:27

• 5


macOS 26 peut faire le ménage dans les icônes de la barre des menus

13/06/2025 à 14:52

• 11


Avec EnergyKit, Apple veut charger votre watture au moment le plus opportun

13/06/2025 à 13:45

• 13


3DMark, une référence pour comparer les performances des GPU, débarque sur Mac

13/06/2025 à 13:02

• 31