- Tags
- Par catégories
- Mémo
- Yunohost
- LAB
- Vintage
- Ressources
Ceci est une ancienne révision du document !
Picups est un Raspberry PI 3B qui sert de serveur d'impression aux ordinateurs et smartphones connectés au réseau local.
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
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).
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
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.
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
# 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 <Location /> # Allow shared printing and remote administration... Order allow,deny Allow @LOCAL </Location> <Location /admin> # Allow remote administration... Order allow,deny Allow @LOCAL </Location> <Location /admin/conf> AuthType Default Require user @SYSTEM # Allow remote access to the configuration files... Order allow,deny Allow @LOCAL </Location> <Location /admin/log> AuthType Default Require user @SYSTEM Order allow,deny # Allow remote access to the log files... Order allow,deny Allow @LOCAL </Location> <Policy default> JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default <Limit Create-Job Print-Job Print-URI Validate-Job> Order deny,allow </Limit> <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit CUPS-Authenticate-Job> Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy> <Policy authenticated> JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default <Limit Create-Job Print-Job Print-URI Validate-Job> AuthType Default Order deny,allow </Limit> <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document> AuthType Default Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit Cancel-Job CUPS-Authenticate-Job> AuthType Default Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy> <Policy kerberos> JobPrivateAccess default JobPrivateValues default SubscriptionPrivateAccess default SubscriptionPrivateValues default <Limit Create-Job Print-Job Print-URI Validate-Job> AuthType Negotiate Order deny,allow </Limit> <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document> AuthType Negotiate Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs> AuthType Default Require user @SYSTEM Order deny,allow </Limit> <Limit Cancel-Job CUPS-Authenticate-Job> AuthType Negotiate Require user @OWNER @SYSTEM Order deny,allow </Limit> <Limit All> Order deny,allow </Limit> </Policy>