Skip to main content

Epson Stylus Photo R300 mit Originaltreiber über CUPS (RAW)

Epson Stylus Photo R300 mit Originaltreiber über CUPS (RAW)

Ziel: Den originalen Epson-Treiber unter Windows verwenden und die Druckdaten unverändert über eine CUPS-RAW-Warteschlange an den Drucker weiterleiten.

Voraussetzungen

  • Windows 11 (64 Bit)
  • Raspberry Pi mit installiertem CUPS
  • Epson Stylus Photo R300
  • 64-Bit-Treiber für den R300

1. Treiber herunterladen

Den Treiber kann man über den Microsoft Update Catalog herunterladen oder im Anhang 5098_a1b99bb764e2c49ac8170f9e96164a608254a9e5.cab : Microsoft Update Catalog – Epson Stylus Photo R300

2. Treiber in Windows (Driver Store) importieren

PowerShell als Administrator öffnen.

In den Treiberordner wechseln:

cd "C:\Drivers\EpsonR300"

Treiber importieren:

pnputil /add-driver ".\prnep00d.inf"

Ausgabe prüfen.

Treiberpaket wurde erfolgreich hinzugefügt.
Veröffentlichter Name: oem24.inf

3. Druckertreiber registrieren

Treiberverwaltung über "Win + R" öffnen:

printui.exe /s /t2

Anschließend:

  • Treiber -> Hinzufügen -> Weiter -> x64 -> Weiter -> Datenträger... -> prnep00d.inf auswählen

Den Treiber Epson Stylus Photo R300 (M) installieren.

Kontrolle:

Get-PrinterDriver |
    Where-Object {
        $_.Name -like "*R300*" -or
        $_.Manufacturer -like "*EPSON*"
    } |
    Select-Object Name, Manufacturer, MajorVersion

`pnputil` hat zunächst nur das Paket in den Driver Store gelegt. Über `printui.exe /s /t2` hast du den eigentlichen Druckertreiber anschließend bei der Windows-Druckverwaltung registriert. Genau deshalb erscheint er jetzt bei `Get-PrinterDriver`. Microsoft trennt diese beiden Schritte ebenfalls: Treiberpaket bereitstellen und Druckertreiber installieren/registrieren.

4. RAW-Warteschlange in CUPS erstellen

Auf dem Raspberry:

sudo lpadmin \
    -p Epson_R300_RAW \
    -E \
    -v 'usb://EPSON/Stylus%20Photo%20R300?serial=L13P20502121634580&interface=1' \
    -m raw
Freigeben:
sudo lpadmin \
    -p Epson_R300_RAW \
    -o printer-is-shared=true

sudo cupsctl --share-printers
sudo systemctl restart cups

5. RAW-Warteschlange prüfen

lpstat -v Epson_R300_RAW
Beispiel:
device for Epson_R300_RAW:
usb://EPSON/Stylus%20Photo%20R300...
Weitere Informationen:
lpstat -l -p Epson_R300_RAW

6. LPD-Unterstützung aktivieren

Die RAW-Warteschlange wird von Windows per LPR angesprochen. Dafür muss auf dem Raspberry Pi Port 515/TCP erreichbar sein.

find /usr/lib/cups -name cups-lpd

Vorhandene Units prüfen:

systemctl list-unit-files | grep -Ei 'cups.*lpd|lpd.*cups'

Falls keine Unit vorhanden ist:

sudo nano /etc/systemd/system/cups-lpd@.service
[Unit]
Description=CUPS LPD Server
Documentation=man:cups-lpd(8)
After=cups.service
Requires=cups.service

[Service]
User=lp
ExecStart=/usr/lib/cups/daemon/cups-lpd -n -o document-format=application/octet-stream
StandardInput=socket
StandardOutput=socket
sudo nano /etc/systemd/system/cups-lpd.socket
[Unit]
Description=CUPS LPD Server Socket

[Socket]
ListenStream=515
Accept=yes

[Install]
WantedBy=sockets.target
sudo systemctl daemon-reload
sudo systemctl enable --now cups-lpd.socket
sudo ss -ltnp | grep ':515'

Windows:

Test-NetConnection <IP-des-Raspberry> -Port 515

7. Drucker unter Windows hinzufügen

$printerName   = "Epson R300 Originaltreiber RAW"
$driverName    = "Epson Stylus Photo R300 (M)"
$portName = "LPR_Epson_R300_RAW"
$printerServer = "10.10.5.32"
$queueName = "Epson_R300_RAW"

Add-PrinterPort `
    -Name $portName `
    -LprHostAddress $printerServer `
    -LprQueueName $queueName `
    -LprByteCounting
Add-Printer `
    -Name $printerName `
    -DriverName $driverName `
    -PortName $portName
Get-Printer -Name $printerName |
    Select-Object Name, DriverName, PortName
rundll32 printui.dll,PrintUIEntry /k /n "$printerName"
Get-PrintJob -PrinterName $printerName -ErrorAction SilentlyContinue |
    Remove-PrintJob

Restart-Service Spooler