Raspberry Pi als printserver - Deel je printer dankzij een Linux-server
We hebben al verschillende handige how to's gepubliceerd over nuttige toepassingen voor de Raspberry Pi, het compacte moederbordcomputertje dat je voor zo'n 35 euro al in huis haalt. We pakken nu de draad weer op, en laten zien hoe je het ding inzet als printserver.
In eerdere how to's gingen we dieper in op de Raspberry Pi als ultieme knutsel- en downloadcomputer. Ook het aanmaken van een cloudserver werd uitvoerig besproken.
In de nieuwe workshop koppelen we een printer aan de Raspberry Pi en zetten het computertje zo in als printserver. Op die manier print je vanaf iedere computer, tablet of smartphone in huis of zelfs als je het huis uit bent. Daarvoor configureren we Cloudprint van Google en AirPrint van Apple.
01 Up-to-date Raspbian
Als besturingssysteem voor onze Raspberry Pi gebruiken we Raspbian. Voor de installatie en eerste configuratie daarvan verwijzen we naar onze cursus van vorig jaar. Voor we verdergaan, kun je het beste ervoor zorgen dat de software up-to-date is. Dat kan met de opdrachten sudo apt-get update en daarna sudo apt-get upgrade (om de updates binnen te halen). Daarna installeren we de benodigde printserver-software met:
sudo apt-get install avahi-daemon cups cups-pdf cups-driver-gutenprint openprinting-ppds python-cups python-daemon python-pkg-resources
©PXimport
02 Toegang van buitenaf
Na de installatie voer je het commando sudo nano /etc/cups/cupsd.conf uit. Voeg vooraan de regel Listen localhost:631 een # (hekje) toe en creëer een nieuwe regel met Port 631. Daardoor krijgen we ook vanaf andere computers toegang tot de printserver CUPS (Common Unix Printing System). Daarna voegen we in de secties , en vlak voor de regel telkens de regel Allow @Local toe om de toegang te beperken tot gebruikers van de Raspberry Pi. Sla je wijzigingen op met Ctrl+O en sluit nano af met Ctrl+X.
©PXimport
03 Beheerder
Herstart nu de CUPS-server, zodat die het gewijzigde configuratiebestand opnieuw inleest: sudo service cups restart. Omdat we vanaf de volgende stappen de printserver willen beheren via de webinterface, voegen we ook de gebruiker 'pi' toe aan de groep van beheerders van de printserver: sudo adduser pi lpadmin. Verander ook het wachtwoord als je dit nog niet gedaan hebt: passwd. Bezoek nu in je webbrowser de url https://IP:631/, waarbij IP het IP-adres van je Raspberry Pi is. Als je een waarschuwing krijgt over het beveiligingscertificaat, negeer dat dan.
©PXimport
3 extra stappen
Seriële console 01
Als je het onhandig vindt om een toetsenbord en scherm aan te sluiten op je Raspberry Pi om Raspbian te configureren of netwerkproblemen op te lossen, dan komt een usb-naar-TTL seriële kabel van pas (zie het artikel '15 accessoires voor de Raspberry Pi'). Sluit de vier draadjes op de juiste manier aan op de GPIO-pinnen van de Pi: op de bovenste rij van links naar rechts rood, niets, zwart, wit en groen.
©PXimport
Seriële console 02
Download op een Windows-pc de PL2303-drivers. Unzip het bestand en installeer het programma. Hierna sluit je de usb-kant van de usb-naar-TTL seriële kabel aan op je pc. Let op: die kabel geeft ook stroom aan de Raspberry Pi, dus sluit niet tegelijk de micro-usb-kabel van de Pi op stroom aan! Wil je dat wel, haal dan het rode draadje uit de GPIO-pinnen. Windows zoekt nu naar nieuwe hardware.
©PXimport
Seriële console 03
Kijk in de melding dat de driver geïnstalleerd is welke poort er gebruikt wordt, bijvoorbeeld COM5. Open nu het programma PuTTY, kies als verbindingstype Serial, vul bij Serial line de poort in en bij Speed 115200. Klik op Open en druk op Enter om de verbinding te starten. Daarna log je op het terminalvenster van PuTTY in met de gebruikersnaam pi en standaardwachtwoord raspberry.
©PXimport
04 Voeg printer toe
Sluit nu je printer aan op één van de usb-poorten van de Raspberry Pi en schakel hem in. Klik dan in de webinterface van CUPS bovenaan op Administration en klik op het knopje Add Printer. Je krijgt dan de vraag om de gebruikersnaam en het wachtwoord in te geven van een printerbeheerder. Daarna krijg je naast Local Printers alle aangesloten usb-printers te zien en naast Discovered Network Printers alle ontdekte netwerkprinters. Als je printer zelf al een netwerkaansluiting heeft, kun je die immers ook door je Pi laten beheren.
©PXimport
05 Merk en model
Selecteer je printer en klik op Continue. Op de volgende pagina geef je je printer een naam, beschrijving en locatie. Hierna vink je Share This Printer aan om de printer te delen met andere computers op je netwerk. Klik op Continue. Op de pagina erna geef je het merk en model van je printer in. CUPS doet al een suggestie, maar die is niet altijd correct. Staat je printer er niet tussen, download dan op de website van de fabrikant een ppd-bestand (PostScript Printer Description) voor de printer en geef dat bestand hier in.
©PXimport
06 Standaardinstellingen
Nadat je op Add Printer geklikt hebt, kun je een aantal standaardinstellingen voor je printer ingeven. Welke instellingen mogelijk zijn, hangt van model tot model af. Bij onze printer zijn de instellingen vrij beperkt, opgedeeld in drie onderdelen (General, Banners en Beleid), maar bij andere printers krijg je heel wat opties te zien. Klik op elk van de onderdelen en wijzig de instellingen als je ze standaard anders wilt. Klik tot slot onderaan op Set Default Options om je wijzigingen door te voeren.
©PXimport
07 Testpagina
Je printer is nu aan CUPS toegevoegd, zodat je Raspberry Pi erop kan afdrukken. Maar uiteraard moeten we dit eens uittesten. Klik op de beheerpagina van de printer bovenaan op het uitklapmenu Maintenance en kies dan Print Test Page. Onderaan de pagina krijg je daarna de status van de testafdruk te zien, bijvoorbeeld Sending data to printer. Controleer nu of de testafdruk met succes uit je printer rolt. Deze beheerpagina kun je overigens altijd opnieuw oproepen door bovenaan rechts op Printers te klikken en daarna op de naam van je printer.
©PXimport
OpenPrinting
Op deze website vind je een Printer Compatibility Database. Vul in de lijst met printers het merk en model van je printer in en klik op Show this printer. Je krijgt dan te zien of de printer al dan niet ondersteund is onder Linux en welke drivers aan te raden zijn. Gebruikers kunnen ook commentaren achterlaten, wat ook handig om te lezen is.
©PXimport
Extra drivers
De ondersteuning van je printer door de Raspberry Pi kan wel eens roet in het eten gooien. Afhankelijk van je printermodel zijn de installatiestappen in deze workshop misschien niet voldoende. Kijk dan eens in de wiki van Debian welke pakketten je moet installeren voor de juiste drivers voor het merk van je printer. Let op: soms zul je de vraag krijgen om software voor Intel-processoren te installeren, wat niet op de Raspberry Pi met een ARM-processor werkt.
08 Voeg printer toe in Windows
Nu je Raspberry Pi als printserver werkt, moeten we ervoor zorgen dat we vanuit Windows toegang krijgen tot de printer. Omdat we op onze Raspberry Pi een recente versie van CUPS draaien, deelt die automatisch je printer op je netwerk. We hebben dus enkel software onder Windows nodig om de printer te ontdekken. Daarvoor download je het programma Bonjour Print Services for Windows van Apple. Start na installatie de Wizard Bonjour-printer, die automatisch de printer op je Raspberry Pi-printserver herkent. Klik op Volgende.
©PXimport
09 Driver
In de volgende stap selecteer je de fabrikant en het model van je printer, zodat Windows de juiste driver kan installeren. Normaal gezien heeft Windows minstens de juiste fabrikant al geselecteerd en met wat geluk zelfs het juiste model. Staat je model er niet tussen, kies dan een gelijkaardig model (zoek op de website van de fabrikant welk model ermee compatibel is) of klik op Bladeren om een aangepaste driver te installeren. Die vind je wellicht nog op de website van je printerfabrikant. Klik op Volgende en tot slot op Voltooien.
©PXimport
10 Testpagina
Na de installatie van je printer verschijnt het apparaat onder Printers en faxapparaten in het onderdeel Apparaten en printers van je configuratiescherm. Vervolgens kun je door met rechts op de printer te klikken allerlei opties instellen, zoals de voorkeursinstellingen. Je kunt de printer ook als je standaardprinter instellen en door op het icoontje te dubbelklikken krijg je de afdruktaken te zien. Kortom, voor Windows gedraagt de printer zich alsof hij rechtstreeks op je computer aangesloten is.
©PXimport
11 Voeg printer toe in OS X
In OS X gaat het toevoegen van je printer nog eenvoudiger. Open in de systeemvoorkeuren Afdrukken en scanners en klik linksonder op het plusteken. Als alles correct verloopt, krijg je in het menu dat verschijnt je printer op de Raspberry Pi te zien. Klik erop, waarna je Mac automatisch de juiste drivers downloadt en je printer configureert. De printer is nu toegevoegd, en je kunt klikken op Open afdrukwachtrij en dan in het menu Printer allerlei taken uitvoeren, zoals een testpagina aanmaken of dit de standaardprinter maken.
©PXimport
12 AirPrint
©PXimport
Nu configureren we AirPrint. Hiervoor installeren we een programma voor AirPrint met het commando:
sudo wget https://raw.github.com/tjfontaine/airprint-generate/master/airprint-generate.py
Daarna passen we twee bestanden aan (omdat het AirPrint-protocol aangepast is in iOS 6) met de commando's:
sudo sh -c "echo 'image/urf application/pdf 100 pdftoraster' > /usr/share/cups/mime/airprint.convs"
sudo sh -c "echo 'image/urf urf string(0,UNIRAST<00>)' > /usr/share/cups/mime/airprint.types"
13 AirPrint (2)
Herstart CUPS met sudo service cups restart. Daarna genereren we het AirPrint-servicebestand met het commando:
sudo python airprint-generate.py -d /etc/avahi/services/
Daarna herstarten we Avahi met sudo service avahi-daemon restart. Dat voltooit de AirPrint-ondersteuning op je Raspberry Pi. Wel een waarschuwing: het afdrukken via het AirPrint-protocol gaat op de Pi een stuk trager dan op de normale manier als normale netwerkprinter. Houd hiermee rekening als je langere documenten wilt afdrukken. Probeer in de volgende stap eerst een kort document van één pagina om te testen.
©PXimport
14 AirPrint in iOS
Als alles goed verloopt, krijg je nu automatisch op je iPad of iPhone je op de Raspberry Pi gedeelde printer te zien als een AirPrint-printer in het dialoogvenster met de printerselectie. In Safari bijvoorbeeld druk je op het deelknopje links naast de url, kies je Druk af, dan op Kies printer en daar krijg je je printer te zien. Druk erop om de printer te kiezen, stel het aantal exemplaren in en of je dubbelzijdig wilt afdrukken en druk tot slot op Druk af.
©PXimport
15 AirPrint op Android
Ook onder Android is het mogelijk om via AirPrint documenten op je printer af te drukken. Dat kan met de app PrintBot. Met de gratis versie kun je drie afbeeldingen of pdf-documenten van maximum 1 MB per maand afdrukken. De Pro-versie kost drie euro. Die laat je een onbeperkt aantal afdrukken maken, ondersteunt bestanden tot 20 MB en kan ook webpagina's met afbeeldingen afdrukken. Druk in de app op Network connection / Scan. Selecteer de gevonden printer en druk op OK om hem toe te voegen.
©PXimport
16 AirPrint op Android (2)
Druk daarna in PrintBot op Printer en kies de fabrikant en het model van je printer als die nog niet automatisch juist gekozen zijn. Druk op OK. Ook de standaard paginagrootte en paginaresolutie zijn nu te kiezen. Druk op Print test page om te controleren of de printer correct geconfigureerd is. Daarna kun je vanuit eender welke app die acties om bestanden te delen ondersteunt PrintBot kiezen om een document af te drukken. Kies de printer en de resolutie en druk daarna op Print.
©PXimport
17 Google Cloud Print
Maak je liever gebruik van de Google-diensten dan van het Apple-ecosysteem, dan kan dat ook, namelijk met Google Cloud Print. We moeten dus van de op de Raspberry Pi aangesloten printer een Google-cloudprinter maken. Dat kan met de software cloudprint-service. Rechtsklik op die website op de twee .deb-bestanden en kopieer de link. Type dan in PuTTY wget en een spatie, waarna je tegelijk op de linker- en rechtermuisknop klikt om de link te plakken. Doe dat voor beide links om de bestanden te downloaden. Installeer ze daarna met de opdracht sudo dpkg -i cloudprint*.deb.
©PXimport
18 Google-login
Nu moet je inloggen bij Google Cloud Print met je Google-account. Dat kan door op je Raspberry Pi de opdracht sudo service cloudprintd login in te geven. Geef daarna je Google-gebruikersnaam (zonder @gmail.com) en het bijbehorende wachtwoord in. Gebruik je tweefactor-authenticatie, dan moet je weten dat de cloudprint-service dat niet ondersteunt. Maak dan eerst online een nieuw applicatiespecifiek wachtwoord aan en geef dat daarna in op je Raspberry Pi. Als alles correct is, krijg je de melding dat je CUPS-printers als cloudprinters toegevoegd zijn.
©PXimport
19 Printen vanuit de cloud
Start nu de cloudprint-service met sudo service cloudprintd start. Log nu met hetzelfde Google-account in en klik op Printers, waarna je je door de Raspberry Pi gedeelde printer te zien krijgt. Het voordeel van Google Cloud Print ten opzichte van AirPrint is dat dit ook over internet werkt. Bovendien vereist het gebruik van je printer dat je met dezelfde Google-account ingelogd bent. AirPrint daarentegen is enkel bedoeld om op je lokale netwerk te gebruiken en voorziet dan ook niet in gebruikers en wachtwoorden.
©PXimport
20 Printen in Google Chrome
Google Cloud Print wordt van huis uit al door Google Chrome ondersteund. Als je een document afdrukt, klik je dan bij de bestemming op Wijzigen en kies je onderaan de lijst onder het kopje Google Cloud Printer je printer. Chromebooks drukken standaard via Google Cloud Print af. Google-diensten ondersteunen echter ook Google Cloud Printer als je een andere browser gebruikt. Druk je bijvoorbeeld een document af dat je in Google Drive hebt staan, dan krijg je bij de bestemming de keuze tussen een lokaal aangesloten printer of je printers die je op Google Cloud Print hebt aangesloten.
©PXimport
21 Printen onder Android
Het mag niet verbazen dat Android goed Google Cloud Print ondersteunt. Installeer daarvoor de officiële app Cloudprinter van Google. Zodra je de app geïnstalleerd hebt, kun je je cloudprinters selecteren bij het delen van documenten. Open je de app los daarvan, dan krijg je een lijst met recent afgedrukte bestanden te zien. Druk je op het printericoontje bovenaan, dan kun je een lokaal bestand selecteren uit je foto's, galerij en andere bestanden om naar de cloudprinter te sturen.
©PXimport
22 Problemen?
Lukt er iets niet, open dan in je browser de beheerderspagina van CUPS, klik op Administration en dan rechts onder het kopje Server op View Error Log. Google dan op de foutmeldingen die je ziet om een oplossing voor je probleem te vinden. Meer informatie vind je ook op de website van CUPS, waar je op Help kunt klikken om allerlei documentatie te lezen. Dezelfde documentatie vind je ook als je in de beheerderspagina van je eigen CUPS-installatie op Online Help klikt.
©PXimport