====== Serveur d’impression sur Raspberry PI ======
Picups est un Raspberry PI 3B qui sert de serveur d'impression aux ordinateurs et smartphones connectés au réseau local.
===== Installation de Rasbian lite =====
Téléchargement de Raspbian version lite « Raspberry Pi OS Lite » sans interface graphique : https://www.raspberrypi.org/software/operating-systems/
Mettre à jour le pi :
sudo apt update
sudo apt upgrade
Définir une adresse statique au raspberry :
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.178.252/24
gateway 192.168.178.1
Changement du nom du raspberry et du mot de passe pour l’utilisateur pi avec la commande
sudo raspi-config
Par défaut, le raspberry pi n’a pas de possibilité d’être administré en root. Un utilisateur root et un mot de passe sera cependant nécessaire pour ajouter des imprimantes et adminiproutr cups depuis l’interface graphique. On créé dont un utilisateur root pour le raspberry pi avec :
sudo passwd root
On peut vérifier en se connectant avec su que le compte root soit opérationnel.
Installation de cups
Choix d’utiliser cette commande trouvée sur Debian Facile pour installer cups ainsi qu’en même temps les paquets de drivers recommandés comme HPLIP :
apt-get update && apt-get install --install-recommends task-print-server
Les paquets inclus sont :
task-print-server
Dépend: tasksel
Dépend: cups
Dépend: cups-client
Dépend: cups-bsd
Recommande: foomatic-db-engine
Recommande: printer-driver-all
Recommande: hplip
Recommande: hp-ppd
Recommande: openprinting-ppds
Source : https://debian-facile.org/doc:reseau:cups
===== Accéder à l’interface graphique de cups =====
Sans modifier le fichier de configuration /etc/cups/cupsd.conf, on peut se connecter via un tunnel ssh depuis une machine sur le réseau :
ssh pi@192.168.178.252 -T -L 3634:localhost:631
Le choix du port 3634 est arbitraire.
Ensuite connexion via le navigateur en tapant :
http://localhost:3634/
NB : Il est aussi possible d’éditer le fichier de config pour accéder au serveur grâce à son ip depuis une autre machine : https://askubuntu.com/questions/23936/how-do-you-administer-cups-remotely-using-the-web-interface Mais ça n’a pas fonctionné facilement chez moi. Il faut peut être aussi commenter la ligne « Listen localhost:631 » et ajouter Port 631 comme ici : https://www.howtogeek.com/169679/how-to-add-a-printer-to-your-raspberry-pi-or-other-linux-computer/ Ou encore ouvrir les accès en tapant une commande : https://pimylifeup.com/raspberry-pi-print-server/
En fait, si on coche la case Autoriser l’administration à distance, il semble que le fichier est modifié pour une connexion de l’extérieur.
Ajout des imprimantes dans l’interface graphique
Dans « Administration » -> « Ajouter une imprimante ». Choisir l’imprimante locale ou réseau qu’on veut ajouter. Puis suivre la procédure pour choisir le driver et terminer la configuration. On peut déjà choisir de partager l’imprimante. On peut par la suite aussi cocher cette option dans le pannel d’admin (pour appliquer les modifications cups redémarre).
==== Ajout de l’imprimante Canon MF5630 ====
L’imprimante Canon MF5630 utilise un protocole différent de la majorité des imprimantes appelé CARPS.
Le driver doit être récupéré sur github et compilé et installé.
Certains paquets doivent être préalablement installé sur le pi :
sudo apt install make gcc libcups2-dev libcupsimage2-dev cups-ppdc git
Puis :
mkdir driver-canon
cd driver-canon/
git clone https://github.com/ondrej-zary/carps-cups.git
cd carps-cups/
make
sudo make install
===== Partage avec SAMBA =====
Pour partager plus aisément les imprimantes avec les machines Windows, on peut installer samba :
sudo apt install samba
Dans /etc/samba/smb.conf, pour avoir des aperçus sur de vieux Windows (XP, 2000), on peut ajouter cette ligne :
use client driver = yes
On peut en principe ajouter les imprimantes cups dans samba avec la commande « cupsaddsmb -v -U root -a » mais ça n’a pas marché chez moi.
==== Accéder aux imprimantes depuis Windows ====
En principe, on peut accéder aux imprimante en explorant le réseau et en choisisant le pi parmi les machines qui apparaissent. Une boite dialogue s’ouvre pour dire que Windows n’a pas pu trouver les drivers sur le réseau, on clique sur OK et on choisit le driver dans la liste. Si l’imprimante n’a pas de drivers comme c’est le cas de la Canon MF5630 (pas de driver 64 bits), on peut simplement sélectionner le driver de Microsoft pour exporter en PDF car c’est de toute façon le driver compilé sur le pi qui sera utilisé.
Si Windows renvoit une erreur disant qu’il ne parvient pas à se connecter à l’imprimante, on peut l’ajouter via IP.
Dans « Panneau de configuration » -> « Matériel et audio » -> « Périphériques et imprimantes » -> « Ajouter une imprimante ».
Windows ne trouve pas les imprimantes et on va dans « L’imprimante souhaitée n’est pas renseignée » et on choisit « Sélectionner une imprimante partagée par un nom ». Ne pas utiliser la syntaxe proposée par Windows mais :
http://192.168.0.X:631/printers/NomImprimante
Source : https://www.azurs.net/carnet/2013/09/raspberry-pi-serveur-impression-imprimante-hp-laserjet-p1006/
Pour nos imprimantes ça donne :
http://192.168.178.252:613/printers/HP_LaserJet_P1505n_USB_KQ16K79_HPLIP
http://192.168.178.252:613/printers/Canon_MF5630
===== cupsd.conf à la fin de l’opération =====
# Show troubleshooting information in error_log.
LogLevel debug
PageLogFormat
MaxLogSize 1m
# Allow remote access
Port 631
Listen /run/cups/cups.sock
# Share local printers on the local network.
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType Basic
WebInterface Yes
# Allow shared printing and remote administration...
Order allow,deny
Allow @LOCAL
# Allow remote administration...
Order allow,deny
Allow @LOCAL
AuthType Default
Require user @SYSTEM
# Allow remote access to the configuration files...
Order allow,deny
Allow @LOCAL
AuthType Default
Require user @SYSTEM
Order allow,deny
# Allow remote access to the log files...
Order allow,deny
Allow @LOCAL
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
Order deny,allow
Require user @OWNER @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
AuthType Default
Order deny,allow
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
AuthType Default
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
AuthType Negotiate
Order deny,allow
AuthType Negotiate
Require user @OWNER @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
AuthType Default
Require user @SYSTEM
Order deny,allow
AuthType Negotiate
Require user @OWNER @SYSTEM
Order deny,allow
Order deny,allow
{{tag>Linux RaspberryPi Reseau}}