Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:linux:druckerundscanner

Drucker

Auf 64bit Systemen müssen evtl. folgende Bibliotheken installliert werden: ia32-libs und/oder lib32stdc++.

Brother HL-1250

  • Treiber: brother-lpr-drivers-laser1 und brother-cups-wrapper-laser1
  • Beschreibung: Brother HL-1250
  • Ort: Büro
  • Geräte-URI: lpd://192.168.100.9/lp2
  • Marke und Modell: Brother HL-1250 Foomatic/hl1250 (recommended)

Brother HL-3170CDW

wget http://download.brother.com/welcome/dlf006893/linux-brprinter-installer-2.0.0-1.gz
gunzip linux-brprinter-installer-2.0.0-1.gz
chmod +x linux-brprinter-installer-2.0.0-1
./linux-brprinter-installer-2.0.0-1
--> Device name: HL-3170CDW
--> Die Treiberpakete ''hl3170cdwcupswrapper:i386'' und ''hl3170cdwlpr:i386'' werden heruntergeladen und installiert.
--> No URI, Konfiguration über Druckerdialog!
  • Beschreibung: Brother HL-3170CDW
  • Ort: Büro
  • Geräte-URI: ipp://192.168.100.8:631/ipp
  • Marke und Modell: Brother HL-3170CDW series CUPS

Scheinbar ist der origianl Brother Treiber nicht ganz fehlerfrei. Bei mir wird z.B. beim Ausdruck eines PDF (Seitengröße DIN-A4) der gesamte Inhalt mit einem Offset von 5 mm ausgedruckt. Das ist besonders ärgerlich, wenn man z.B. einen Brief mit Falzmarkierungen und einer Mittelmarkierung am linken Rand druckt und alles ist um 5 mm nach unten verschoben.
Unter diesem Link habe ich einen Bugfix gefunden der auch auf mein Problem zutrifft.

# CUPS Deinst stoppen:
sudo su
systemctl stop cups.service
gedit /etc/cups/ppd/Brother-HL-3170CDW.ppd
...
1) Locate and Change:
*cupsFilter: "application/vnd.cups-postscript 0 brother_lpdwrapper_hl3170cdw"
to:
*%cupsFilter: "application/vnd.cups-postscript 0 brother_lpdwrapper_hl3170cdw"
2) Locate and Change:
*Duplex DuplexTumble/Short-Edge Binding: " "
*Duplex DuplexNoTumble/Long-Edge Binding: " "
*Duplex None/Off: " "
to:
*Duplex DuplexTumble: "<</Duplex true /Tumble true>>setpagedevice"
*Duplex DuplexNoTumble: "<</Duplex true /Tumble false>>setpagedevice"
*Duplex None: "<</Duplex false /Tumble false>>setpagedevice"
...
systemctl start cups.service

Brother P-touch PT-P900W

Shell Script zur Installation

install_brother_p-touch_pt-p900w.sh
#!/bin/bash
#
NEEDED_LIBS=(lib32z1 lib32ncurses5 lib32stdc++6)
PRINTER_MANUFACTURER="Brother"
PRINTER_SERIES="P-touch"
PRINTER_MODEL="PT-P900W"
PRINTER_NAME="${PRINTER_MANUFACTURER}-${PRINTER_MODEL}"
PRINTER_USB_ID="04f9:2085"
PRINTER_PPD_FILE="/usr/share/ppd/Brother/brother_ptp900_printer_en.ppd"
PRINTER_LOCATION="BCSPC128 in R2/30"
PRINTER_DRIVER_LPR="ptp900lpr-1.0.0-0.i386.deb"
PRINTER_DRIVER_CUPS="ptp900cupswrapper-1.0.0-0.i386.deb"
DEFAULT_PRINTER_AFTER_DRIVER_INSTALL="PT-P900"
 
# Check, if we are on a X86_64 machine...
if [ "`uname -m`" = "x86_64" ]; then
  echo "64bit architecture detected ..."
  # Check if nessesary 32bit libs are already installed ...
  for LIB in ${NEEDED_LIBS[*]}
  do
    echo ""
    echo -n "Check for Lib: $LIB ..."
    dpkg -s $LIB &> /dev/null
    if [ $? -eq 0 ]; then
      echo "Lib: $LIB is already installed!"
    else
      echo "Lib: $LIB is not installed -> Installing Lib: $LIB"
      sudo apt-get -y install $LIB
    fi
  done
else
  echo "we are running on a 32bit architecture ..."
fi
 
# Check to see if the drivers are installed
if [ ! -e $PRINTER_PPD_FILE ] ; then
    echo ""
    echo -n "Insalling printer driver ..."
    sudo mkdir -p /var/spool/lpd/
     [ -e $PRINTER_DRIVER_LPR ] && sudo dpkg --install $PRINTER_DRIVER_LPR || echo "Driver $PRINTER_DRIVER_LPR not present"
     [ -e $PRINTER_DRIVER_CUPS ] && sudo dpkg --install $PRINTER_DRIVER_CUPS || echo "Driver $PRINTER_DRIVER_CUPS not present"
    echo " done!"
else
    echo "Printer driver already installed!"
fi
 
# Remove default printer PT-P900 if it still exsists
lpstat -p | grep -i "$DEFAULT_PRINTER_AFTER_DRIVER_INSTALL is idle" &> /dev/null
if [ $? -eq 0 ]; then
  echo "Default printer \"$DEFAULT_PRINTER_AFTER_DRIVER_INSTALL\" from driver package found!"
  echo -n "Removing default printer to avoid conflicts with new model..."
  lpadmin -x $DEFAULT_PRINTER_AFTER_DRIVER_INSTALL
  echo " done."
fi
 
# Check to see if the printer is already installed
if [ -n "`lpstat -p 2>&1 | grep -E \"${PRINTER_NAME}\"`" ]; then
   echo "Printer already configured - nothing to do."
else
    # Make sure the printer is available before trying to configure it
    if [ "`lsusb | grep -i ${PRINTER_MANUFACTURER} | cut -d" " -f6`" = "$PRINTER_USB_ID" ]; then
        echo "Printer \"${PRINTER_MANUFACTURER} ${PRINTER_SERIES} ${PRINTER_MODEL}\" connected and switched ON."
 
        echo -n "Generating printer configuration ..."
        # get printer URI
        PRINTER_URI="`lpinfo -v | grep -i direct | cut -d" " -f2`"
        #echo "Printer URI: $PRINTER_URI"
 
        # configure printer for CUPS printing system
        lpadmin \
            -p "${PRINTER_NAME}" \
            -v ${PRINTER_URI} \
            -P "$PRINTER_PPD_FILE" \
            -L "${PRINTER_LOCATION}" \
            -o "BRCutLabel=0" \
            -o "BRChain=ON" \
            -E
 
        # Set it as the default printer
        # lpadmin -d 'Brother-HL-4570CDW'
        echo " done."
    else
        echo ""
        echo ""
        echo "Printer \"${PRINTER_MANUFACTURER} ${PRINTER_SERIES} ${PRINTER_MODEL}\" not connected or switched OFF."
    fi
fi

Nützliches

# Pakete für "Neuanfang" entfernen
apt-get -y purge ptp900cupswrapper:i386 ptp900lpr:i386 lib32z1 lib32ncurses5 lib32stdc++6 && apt -y autoremove
 
# PPD Datei liegt nach erfolgreicher installation hier:
/usr/share/ppd/Brother/brother_ptp900_printer_en.ppd
 
# Suche nach Druckertreiber
lpinfo -m | grep -i p900
 
# Installierte Drucker auflisten
lpstat -s
 
# Drucker URI ermitteln bei eingeschaltetem und angeschlossenem Drucker
lpinfo -v
 
# Anzeige der Druckoptionen für einen bereits installierten Drucker
lpoptions
lpoptions -l
 
# Automatisch erkannten und installierten Drucker (PT-P900) manuell über die Drucker-GUI entfernen.
# Anschließend den Drucker manuell erneut installieren lassen. Dabei wir dann auch der korrekte Typ PT-P900W erkannt.
 
# Test:
dpkg -l | grep Brother
#
# Cups Webservice
# http://localhost:631/printers/
 
lpoptions -l
 
# Grafik oder PDF ausdrucken
lp -o landscape test.png
lp -d Brother-PT-P900W -o landscape ~/Schreibtisch/test.png
lpr -P Brother-HL-3170CDW <FILE.pdf>

ptouch-print

## für ptouch-print kompilierung:
sudo aptitude install dh-autoreconf libgd-dev libusb-1.0-0-dev 
git clone https://mockmoon-cybernetics.ch/git/ptouch-print.git
cd ptouch-print
autoreconf -i
./configure --prefix=/usr
make

PDF Drucker

apt-get install cups-pdf pdfsam

Scanner

Sane komplatible Scanner die man auch tatsächlich kaufen kann ;-)

Epson Perfection V300 Photo

Ubuntu 16.04 LTS

wget https://download2.ebz.epson.net/dsc/f/03/00/02/88/80/2a473e2653aadd3494d794f3ab0f24fa34f3cc06/iscan_2.29.3-1~usb0.1.ltdl7_amd64.deb
wget https://download2.ebz.epson.net/dsc/f/03/00/02/88/80/cdb3dacb57aa5fcf8f24c5f18f142ec42065c006/iscan-data_1.29.0-2_all.deb
wget http://a1227.g.akamai.net/f/1227/40484/7d/download.ebz.epson.net/dsc/f/01/00/01/58/40/ee5c33c71ca717cf6a3534673bcc1fdafd8a77da/esci-interpreter-gt-f720_0.1.1-2_amd64.deb
dpkg -i iscan-data_1.29.0-2_all.deb
dpkg -i iscan_2.29.3-1~usb0.1.ltdl7_amd64.deb
dpkg -i esci-interpreter-gt-f720_0.1.1-2_amd64.deb
  • vi /etc/sane.d/dll.conf
...
#epson
#epkowa
#epson2
..

Ubuntu 18.04

sudo su
 
# Treiber herunterladen
wget https://download2.ebz.epson.net/iscan/plugin/gt-f720/deb/x64/iscan-gt-f720-bundle-1.0.1.x64.deb.tar.gz
# ... entpacken ...
tar xfz iscan-gt-f720-bundle-1.0.1.x64.deb.tar.gz
# ... installieren ...
cd iscan-gt-f720-bundle-1.0.1.x64.deb/
./install.sh
# Root PW eingeben ;-)
 
# fehlenden symbolischen Link ergänzen:
ln -s /usr/lib/sane/libsane-epkowa.so.1 /usr/lib/x86_64-linux-gnu/sane/libsane-epkowa.so.1
 
# fehlende UDEV Regel erstellen:
echo "ATTRS{manufacturer}==\"EPSON\", DRIVERS==\"usb\", SUBSYSTEMS==\"usb\", ATTRS{idVendor}==\"04b8\", ATTRS{idProduct}==\"*\", MODE=\"0777\"" >> /etc/udev/rules.d/79-udev-epson.rules
 
# Benutzer der Gruppe scanner hinzufügen:
adduser <user> scanner

Ein Raspberry Pi B (Rev.2) als USB Geräte-Server

Ganz allgemein kann ein Linux Rechner (hier ein Embedded Device in Form eines Raspberry Pi B) als USB Geräte-Server konfiguriert werden.
Dieser stellt dann nahezu beliebige USB Endgeräte im Netzwerk zur Verfügung, so dass diese von Rechnern im Netzwerk (sog. Cliens) verwendet werden können als seien sie lokal angeschlossen.

Artikel liegt hier

wiki/linux/druckerundscanner.txt · Zuletzt geändert: 2020/04/15 20:21 (Externe Bearbeitung)