DYMO LabelWriter 450 Duo im Netzwerk (Teil 1)

Die Drucker der DYMO® LabelWriter® Serie sind USB-Geräte und können von Hause aus nicht über das Netzwerk angesprochen werden. Die Einrichtung unter Debian Linux ist aber vergleichsweise einfach, auch wenn Linux offiziell nicht unterstützt wird. 

Drucker anschließen

Wird der Drucker per USB an den Linux-Server angeschlossen so kann mit dem Kommando lsusb überprüft werden, ob der Drucker richtig erkannt wurde (siehe Eintrag "Dymo-CoStar Corp."):

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0403:c631 Future Technology Devices International, Ltd i2c-tiny-usb interface
Bus 001 Device 003: ID 174c:55aa ASMedia Technology Inc. Name: ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge, ASM1153E SATA 6Gb/s bridge
Bus 001 Device 002: ID 0922:0023 Dymo-CoStar Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

CUPS und Druckertreiber installieren

Wird der Drucker korrekt erkannt, so müssen als nächstes die Druckersoftware CUPS und die zugehörigen DYMO-Druckertreiber bzw. PostScript Printer Definition (PPD) installiert werden. Im einfachsten Falle kann dies per apt erfolgen:

sudo apt update
sudo apt install cups cups-client printer-driver-dymo

Da wir den Drucker als RAW-Drucker einrichten werden ist die Installation der Linux-Druckertreiber für die reine Freigabe des Druckers im Netzwerk nicht zwingend erforderlich. Soll aber zukünftig auch direkt aus dem Linux gedruckt werden, so sind die Treiber ggf. erforderlich. Ich habe sie also entsprechend schon mal mit installiert.

Klappt die Installation per apt nicht, so kann man versuchen die so Treiber manuell zu installieren. Dazu müssen die entsprechenden vorkompilierten DYMO-Druckerttreiber für Linux zunächst heruntergeladen werden. Danach wird das Archiv entpackt und die Dateien in dem entsprechenden CUPS-Verzeichnis abgelegt:

wget http://download.dymo.com/dymo/Software/Download%20Drivers/Linux/Download/dymo-cups-drivers-1.4.0.tar.gz
tar -xzf dymo-cups-drivers-1.4.0.tar.gz
sudo mkdir -p /usr/share/cups/model
sudo cp ./dymo-cups-drivers-1.4.0.5/ppd/lw450d*.ppd /usr/share/cups/model/

Drucker einrichten

Um den Drucker in CUPS entsprechend einzurichten muss zunächst die Adresse des LabelWriter ermittelt werden. Dazu kann das Kommando lpinfo verwendet werden:

lpinfo -v | grep DYMO
direct usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=17066666666666
direct usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=17066666666666&interface=1

Für einen DYOM LabelWriter 450 DUO sollten dabei wie im Beispiel oben zwei unterschiedliche Drucker-Adressen angezeigt werden. Jeweils eine für den Label und eine für den Tape-Drucker. Mit lpadmin können die Drucker jetzt angebunden werden:

lpadmin -p dy.mo-label -v usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=17066666666666  -P /usr/share/cups/model/lw450dl.ppd
lpadmin -p dymo-tape -v usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=17066666666666\&interface=1 -P /usr/share/cups/model/lw450dt.ppd
lpadmin -p dymo-label-raw -v usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=17066666666666 -E -m raw
lpadmin -p dymo-tape-raw -v usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=17066666666666\&interface=1 -E -m raw

Dabei werden hier jeweils zwei Drucker eingerichtet für den Label und Tape-Drucker. Eine RAW-Variante und eine mit dem jeweiligen Linuxtreiber von DYMO. Mit lpstat wird überprüft, ob alles richtig angelegt wurde:

lpstat -v
device for dymo-label: usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=17066666666666
device for dymo-label-raw: usb://DYMO/LabelWriter%20450%20DUO%20Label?serial=17066666666666
device for dymo-tape: usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=17066666666666&interface=1
device for dymo-tape-raw: usb://DYMO/LabelWriter%20450%20DUO%20Tape?serial=17066666666666&interface=1

Die Drucker-Instanzen mit dem DYMO-Treiber müssen noch in CUPS aktiviert werden, bevor sie verwendet werden können:

cupsenable dymo-label
cupsenable dymo-tape
cupsaccept dymo-label
cupsaccept dymo-tape

Wenn alles geklappt hat sollte jetzt mit dem folgenden Kommando was aus dem Drucker kommen:

echo Dies ist ein Test! > test.txt
lp -d dymo-label test.txt

Hinweis: Es könnte sein, dass das Format beim Drucktest noch nicht passt oder der Text etwas abgeschnitten wird. Hauptsache ist, dass hier bereits was aus dem Drucker kommt.

CUPS-Weboberfläche einrichten

Damit zur komfortablen Konfiguration der Drucker auf die CUPS-Oberfläche per Browser zugegriffen werden kann müssen noch einige Änderungen an der CUPS-Konfiguration vorgenommen werden. Dazu muss die lediglich die Datei /etc/cups/cupsd.conf angepasst werden. Ich habe folgende Änderungen vorgenommen:

[...]
# Only listen for connections from the local machine.
Listen 631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseLocalProtocols dnssd

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Web interface setting...
WebInterface Yes

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.20.*
  Allow 192.168.12.*
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.20.*
  Allow 192.168.12.*
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow @LOCAL
  Allow 192.168.20.*
  Allow 192.168.12.*
</Location>

# Restrict access to log files...
<Location /admin/log>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>
[...]

Danach müssen noch mindestens ein Systembenutzer Mitglied der Gruppe lpadmin werden, damit er sich an der CUPS-Weboberfläche anmelden kann: adduser [BENUTZER] lpadmin.

Nachdem der CUPS Dienst mittels systemctl restart cups.service neu gestartet wurde, sollte die Weboberfläche unter http://<ip-adresse>:631 erreichbar sein.

RAW-Printserver einrichten

Grundsätzlich können die in CUPS eingerichteten Drucker über Samba im Netzwerk freigegeben werden. Da ich aber den Samba-Overhead vermeiden wollte, habe ich den Drucker per JetDirect (auch RAW-Service) im Netzwerk verfügbar gemacht. Das ist auch die Methode, die der offizielle DYMO LabelWriter Print-Server nutzt und damit der erfolgversprechendste Ansatz.

Dazu müssen in der Datei /etc/services zunächst zwei Dienste eingetragen werden. Ich habe beispielsweise folgende Einträge vorgenommen:

dymo-label      9100/tcp                        # laserjet hplj
dymo-tape       9102/tcp                        # Bacula File Daemon

Danach wird die Datei /etc/xinetd.d/dymo mit folgendem Inhalt angelegt:

# Allow applications using the AppSocket / JetDirect protocol
# to communicate with DYMO-Duo printer CUPS.
service dymo-label
{
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        server = /usr/bin/lp
        server_args = -d dymo-label -o raw
        groups = yes
        disable = no
}

service dymo-tape
{
        socket_type = stream
        protocol = tcp
        wait = no
        user = lp
        server = /usr/bin/lp
        server_args = -d dymo-tape -o raw
        groups = yes
        disable = no
}

Zu guter Letzt muss nur noch der xinetd-Dienst neu gestartet werden und der Drucker sollte anschließend unter Port 9100 bze 9102 verfügbar sein:

systemctl restart xinetd.service
systemctl enable xinetd.service

Im zweiten Teil des Artikels beschreibe ich, wie der eingerichtete  Drucker in Windows eingebunden wird.

Quellen

[1] Bedienungsanleitung DYMO® LabelWriter®-Etikettendrucker
[2] Install Dymo LabelWriter on Headless Linux
[3] So setzen Sie Ihren Raspberry Pi als Druckerserver ein
[4] Anleitung für den DYMO® LabelWriter® Print Server
[5] Using port 9100 to print to a Printer Queue on a Cups-enabled Server

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page