Seit upgrade auf cups 1.7 funktioniert Drucker nicht mehr

cabriofahrer

Well-Known Member
Auf meinem Hauptrechner mit FreeBSD amd64 9.2 funktionierte bis zu einem pkg upgrade, das cups von version 1.5 auf 1.7 aktualisierte, mein HP Photosmart 7600 immer wunderbar, ich hatte diesen immer direkt mit hplip einrichten können. Jetzt leider nicht mehr. Auf meinem Notebook hingegen, auf dem ich noch cups 1.5 habe, funktioniert der Drucker noch, wenn ich ihn dort anschließe. Hat sich irgendetwas bei cups geändert? Ich habe zur Konfiguration nie etwas anderes gemacht als 'pkg install hplip' und diese Anleitung befolgt:

Code:
To enable printing with local printer you need to give group 'cups'
r/w access to printer device:

1) Add following to /etc/devfs.rules (create if it doesn't exist):

[system=10]
# FreeBSD 7.x
add path 'unlpt*' mode 0660 group cups
add path 'ulpt*' mode 0660 group cups
add path 'lpt*' mode 0660 group cups
# FreeBSD 8.x
add path 'usb*' mode 0770 group cups
add path 'ugen*' mode 0660 group cups

2) And following to /etc/rc.conf:

devfs_system_ruleset="system"

3) Restart devfs: /etc/rc.d/devfs restart

If your system supports 'devd' you can copy
$PREFIX/share/examples/cups/ulpt-cupsd.conf to $PREFIX/etc/devd/

To enable printing under Gimp and MS-Windows clients do the following:

1) Uncomment application/octet-stream line in mime.types
2) Uncomment application/octet-stream line in mime.convs
3) Restart cupsd

If you are using libusb, it is important that no device driver, e.g.
ulpt(4) is attached to the device you wish to use. In this case please
ensure the cups user and group has read/write access to /dev/ugen*

If you are using a USB printer wtih FreeBSD 8.0 or later, you will
need to find the proper /dev/usb/* device pointed at by the /dev/ugen*
entry. Follow the instructions for devfs.rules as above, but append a
rule similar to the following for a printer attached as /dev/ugen0.2:

add path 'usb/0.2.*' mode 0660 group cups

Weitere Frage: Ist die Anleitung im Wiki zu cups überhaupt noch aktuell?
 
Versuch mal hplip mit seinen Abhängigkeiten aus den Ports neu zu bauen.
Ich hatte letzte Woche auch einen nicht funktionierenden HP Drucker.

Code:
portmaster -r hplip
 
portmaster -r hplip hat nur hplip neugebaut. Nach einem Neustart auch kein Glück. Der Drucker wird erkannt, man kann ihn entfernen, neu hinzufügen, die Tintenfüllstände werden angezeigt, etc, aber er druckt nicht. Gleiches Problem mit dem cups-interface (http://localhost:631). Der Drucker kann eingerichtet werden, aber er druckt eben nicht.
 
Da erinnere ich mich an einen Eintrag in UPDATING:
20140331:
AFFECTS: users of print/cups-client and print/cups-image
AUTHOR: bsam@FreeBSD.org

CUPS ports have been updated to version 1.7.1. A file has migrated from
cups-image port to cups-client. Before upgrading you should force the
removal of cups-image port, otherwise it will conflict with the new one.

pkg users:
# pkg delete -f cups-image\*

other users:
# pkg_delete -f cups-image\*

2. Install/upgrade other cups* packages.

If cups-filters complains about a missing cups/raster.h include,
try reinstalling the cups-client package.
 
Das hatte ich im Nachhinein auch gesehen und daraufhin so getan. Doch hat nichts gebracht. Auch nochmal alle Pakete mit cups enfernt und cups-base neuinstalliert. Ergab auch nichts...
 
Ist dein ports-tree aktuell?
was sagt
Code:
pkg version -v | grep cups
Die packages könnten noch eine alte Version enthalten.

[edit]
bei mir sieht das so aus
Code:
cups-1.7.2  =  up-to-date with port
cups-base-1.7.2  =  up-to-date with port
cups-client-1.7.2  =  up-to-date with port
cups-filters-1.0.53  =  up-to-date with port
cups-image-1.7.2  =  up-to-date with port
cups-pstoraster-8.15.4_7  =  up-to-date with port
[/edit]
 
Sieht bei mir so aus:

Code:
$ pkg version -v | grep cups
cups-base-1.7.2                    >   succeeds port (port has 1.7.1)
cups-client-1.7.2                  >   succeeds port (port has 1.7.1)
cups-image-1.7.2                   >   succeeds port (port has 1.7.1)
cups-pdf-2.6.1_1                   =   up-to-date with port
cups-pstoraster-8.15.4_7           =   up-to-date with port
libgnomecups-0.2.3_5,1             =   up-to-date with port
$

Demnach ist der Portstree wohl nicht aktuell, aber spielt das eine Rolle, wenn man eh nur Packages installiert?

Weitere Frage: Hat cups irgendein Diagnosetool, das eine Aussage treffen kann, warum der Text vom Textprogramm nicht ankommt? Was bedeutet die von Fusselbär zitierte Aussage in UPDATING "If cups-filters complains about a missing cups/raster.h include, try reinstalling the cups-client package."? Ich habe keine "Beschwerde" irgendeiner Art bemerkt.
Und was ist mit der cups.conf? Ist diese nach einem Upgrade von cups weiterhin gültig?
 
Sollte keine Rolle spiellen.
Ich würde an deine Stelle trotzdem mal den Ports-Tree aktualisieren und dann cups, hplip usw. mal neu bauen.
Wie gesagt, hatte ich mit 1.7.1 das Problem auch, kurz darauf kam dann 1.7.2 und das Problem war wieder verschwunden. Ich muß auch sagen, das ich keine Pakete verwende. Wegen der conf's: Da hab ich eigentlich noch nie was dran rumgebastelt.

Versuch es mal mit:
Code:
portsnap fetch update
portmaster -rf hplip
 
Klingt plausibel, aber:

Code:
root@amd64:/usr/home/werner # portmaster -rf hplip

===>>> The argument to -r must match only one port
===>>> Aborting update

===>>> Killing background jobs
Terminated
===>>> Exiting
root@amd64:/usr/home/werner #

???
 
Hmm, eigentlich sollte ja ein
Code:
portmaster -r hplip
genügen.

Jedenfalls steht in der man page von portmaster folgendes:
Code:
[-R] -r name/glob of port directory in /var/db/pkg
rebuild the specified port, and all ports that depend on it
 
So, wer lesen kann ist klar im Vorteil.

In deinem Fall bräuchtest du die Option -f

Code:
portmaster -f hplip
Das würde bei mir das halbe System neu bauen.:mad:
Ob du das willst mußt du selbst entscheiden.
Vielleicht reicht es ja schon die cups* Ports neu zu bauen.
 
Ein portmaster -Rf hplip hat dann zwar alles neu gebaut, aber funktioniert hat der Drucker trotzdem nicht. Mittleweile habe ich das System mit freebsd-update auf 10.0 upgedatet und mit 'pkg upgrade -f' alles neu installiert. Funktioniert trotzdem nicht. Auch ein verzweifeltes 'pkg delete -a' und hinterher 'pkg install hplip' und der Installation des restlichen Userlands hat nichts gebracht. Jetzt reichts echt!

Sterum, könntest Du mir bitte mal die Ausgabe von dmesg bezüglich deines HP-Druckers und die Ausgabe von ' hp-check -t' posten?
 
Bitteschön
dmesg
Code:
ugen3.4: <HP> at usbus3
umass0: <HP Photosmart B110 series, class 0/0, rev 2.00/1.00, addr 4> on usbus3
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0:6:0:-1: Attached to scbus6
(probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
(probe0:umass-sim0:0:0:0): Error 22, Unretryable error
da0 at umass-sim0 bus 0 scbus6 target 0 lun 0
da0: <HP Photosmart B110 1.00> Removable Direct Access SCSI-5 device
da0: 40.000MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present
da0: quirks=0x2<NO_6_BYTE>
ulpt0: <HP Photosmart B110 series, class 0/0, rev 2.00/1.00, addr 4> on usbus3
ulpt0: using bi-directional mode


DIe Ausgabe von hp-check -t findest du in der angehängten Datei.

Hier noch meine devfs.rules:
Code:
[system=10]
add path 'ad[0-9]*' mode 666
add path 'da[0-9]*' mode 666
add path 'acd[0-9]*' mode 666
add path 'cd[0-9]*' mode 666
add path 'mmcsd[0-9]*' mode 666
add path 'pass[0-9]*' mode 666
add path 'xpt[0-9]*'   mode 666
add path 'ugen[0-9]*' mode 666
add path 'usbctl' mode 666
add path 'usb/*' mode 666
add path 'lpt[0-9]*' mode 666
add path 'ulpt[0-9]*' mode 666
add path 'unlpt[0-9]*' mode 666
add path 'fd[0-9]*' mode 666
add path 'uscan[0-9]*' mode 666
add path 'video[0-9]*' mode 666
add path 'dvb/adapter0/*' mode 666
add path 'ttyU[0-9]*' mode 660 group operator
 

Anhänge

  • hp-check.txt
    13,8 KB · Aufrufe: 427
Danke soweit, ich habe mal deine devfs.rules ausprobiert und noch immer nichts. Nutzt du de GENERIC-Kernel?
Aber vielleicht hat das hier etwas zu bedeuten?

Code:
$ tail -f /var/log/cups/error_log
E [15/May/2014:17:38:26 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [15/May/2014:19:56:54 +0200] [Client 13] Returning IPP client-error-document-format-not-supported for Print-Job (ipp://localhost:631/printers/photosmart_7600) from localhost
E [15/May/2014:21:04:54 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [16/May/2014:19:33:23 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [18/May/2014:20:01:17 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [19/May/2014:10:32:25 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [19/May/2014:12:44:19 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [19/May/2014:18:44:13 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [19/May/2014:20:23:35 +0200] cupsdLoadBanners: Unable to open banner directory "/usr/local/share/cups/banners": No such file or directory
E [19/May/2014:20:24:36 +0200] [Client 14] Returning IPP client-error-document-format-not-supported for Print-Job (ipp://localhost:631/printers/photosmart_7600) from localhost
 
OK, OK, habe durch Googeln von "cupsdLoadBanners: Unable to open banner directory" diesen thread gefunden:

https://forums.freebsd.org/viewtopic.php?f=46&t=45738&p=260106#p260106

Man muss also zusätzlich das Paket "cups-filters" installieren, dann funktioniert es wieder. Wäre schön, wenn das in UPDATING erwähnt wäre. Wochenlang Ärger wegen so einer Kleinigkeit, userland 2x komplett deinstalliert und wieder installiert und schon daran gezweifelt, ob FreeBSD wirklich ein taugliches Produktivsystem ist, wenn man wegen einem 'pkg upgrade' plötzlich nicht mehr drucken kann...
 
Wochenlang Ärger wegen so einer Kleinigkeit, userland 2x komplett deinstalliert und wieder installiert und schon daran gezweifelt, ob FreeBSD wirklich ein taugliches Produktivsystem ist, wenn man wegen einem 'pkg upgrade' plötzlich nicht mehr drucken kann...

Wenn cups installiert gewesen wäre, dann wäre das nicht passiert:
Code:
cat /usr/ports/print/cups/Makefile

# Created by: Alan Eldridge <alane@geeksrus.net>
# $FreeBSD: head/print/cups/Makefile 351968 2014-04-23 19:56:18Z bsam $

PORTNAME=       cups
PORTVERSION=    1.7.2
CATEGORIES=     print
MASTER_SITES=   # empty
DISTFILES=      # empty

MAINTAINER=     ports@FreeBSD.org
COMMENT=        Common UNIX Printing System: Metaport to install complete system

BUILD_DEPENDS=  espgs:${PORTSDIR}/${PKGCATEGORY}/cups-pstoraster \
                lpr-cups:${PORTSDIR}/${PKGCATEGORY}/cups-base \
                ttfread:${PORTSDIR}/${PKGCATEGORY}/cups-filters
RUN_DEPENDS:=   ${BUILD_DEPENDS}

NO_BUILD=       yes
NO_INSTALL=     yes
NO_MTREE=       yes

.include <bsd.port.mk>

strerum hat Dir auch gezeigt, dass bei ihm cups und cups-filters installiert ist:
Code:
cups-1.7.2  =  up-to-date with port
cups-base-1.7.2  =  up-to-date with port
cups-client-1.7.2  =  up-to-date with port
cups-filters-1.0.53  =  up-to-date with port
cups-image-1.7.2  =  up-to-date with port
cups-pstoraster-8.15.4_7  =  up-to-date with port
IMHO Schusseligkeit, aber dafür sind die Ports Maintainer nicht verantwortlich zu machen.
FreeBSD Admins haben alle Freiheiten, auch die Freiheit, schon mal schusselig zu sein und sich selbst in den Fuß zu schießen.
 
Schusseligkeit würde ich nicht sagen. Ursprünglich hatte eben das Drucken mit 'pkg install hplip' sofort funktioniert. Hätte ich damals wissen müssen, dass ich im Hinblick auf eine zukünftige Version con cups noch zusätzlich hätte ein 'pkg install cups' machen müssen?
Aber trotzdem Danke für die Aufklärung, man lernt eben nie aus.
 
Über den Hintergrund, warum die cups-filter jetzt in einem eigenen Paket sind, hatte heise.de am 15. Februar berichtet: http://www.heise.de/newsticker/meldung/CUPS-1-6-unterstuetzt-Linux-schlechter-1435234.html

Mehr Details hier: http://www.linuxfoundation.org/collaborate/workgroups/openprinting
Ich zitiere es mal:
PDF is the standard print job format from CUPS 1.6.x on

All important desktop applications (GTK/GNOME, Qt/KDE, LibreOffice/OpenOffice.org, Firefox, Thunderbird, ...) send print jobs in PDF and not in PostScript any more by default. In addition, a complete CUPS filter chain to process print jobs in PDF is available and used.

CUPS author Mike Sweet/Apple have decided to not include the Linux-specific CUPS filters in the upstream CUPS source any more and we have agreed to maintain them at OpenPrinting. Here we have done some clean-up and have discontinued the filters for the PostScript-centric workflow in favor of the PDF workflow, meaning that the upstream standard for CUPS under Linux (using CUPS plus our cups-filters package) is the PDF-based job processing, letting every non-PDF input be converted to PDF first, page management options being applied by a pdftopdf filter and Ghostscript being called with PDF as input.

Only exception is if the input data is PostScript and the printer is a PostScript printer or the printer driver requires PostScript as input. The we do not turn PostScript into PDF and back into PostScript but pass the PostScript through the pstops filter as before.

Having this workflow we ask all driver developers kindly to not create any PPDs/drivers for non-Postscript printers which require exclusively PostScript. PPD files should at least accept PDF or CUPS Raster now. See also our driver design/packaging page.

More info on our page about the PDF printing workflow and on the cups-filters page.
 
Zuletzt bearbeitet:
nachdem ich nun auch in eine solche Update-Falle geraten bin, möchte ich an diesem Thread anschließen, anstatt einen neuen zu starten.
Mein System ist 8.4 und ich hatte seit etwa zwei Jahren keine Updates über die Ports laufen lassen. Nun habe ich es das denn doch mal gemacht (in einem Zustand geistiger Umnachtung) und dabei natürlich viele Probleme eingefangen, darunter drucken mit CUPS.

Nach mehreren Tagen mit vielen Neubauten und unterschiedlichen Optionen, wollte ich das eigentlich aufgeben.
Dabei nutze ich die einfachste aller Versionen, nämlich PS-Drucker im Netz.
Nun kann ich wieder drucken, aber nur, wenn ich nicht GENERIC-Treiber benutze, also etwa Generic-Post-Script. Nur dann, wenn ich eine geeignete Treiber-Datei aus dem Angebot wähle, dann gelingt wieder ein Ausdruck.

Sofern ich das sehen konnte, sind alle Helferlein richtig aktiv geworden, also pstopdf und so weiter. Es gab die passenden Einträge in die Spools und der Datenverkehr zu den Druckern wurde aufgenommen (tcpdump zeigte das). Nur, nachdem die Drucker angelaufen waren, stoppte das Ganze und zwar ohne weitere Fehler. Es gab zwar einen Eintrag in der /var/log/cups/error_log, etwa so: [cups-driverd] Bad driver information file "/usr/local/share/cups/model/foomatic-db-ppds/Kyocera/ReadMe.htm"!, aber diese Meldung erschien dann später auch, obwohl der Ausdruck funktionierte und sie erschien auch nur bei diesem Kyocera Drucker, nicht bei dem zweiten vorhandenen PS-Drucker, der aber genau so wenig funktionierte.
Im Fehlerfall wurde der Druckauftrag nicht abgeschlossen und stand ohne Fehler für Stunden an, bis ich ihn manuell entfernte.

Also, natürlich funktioniert bei mir zur Zeit sehr Vieles nicht und wahrscheinlich gibt es da ein oder mehrere Probleme, die ich nicht fassen kann und vermutlich auch nicht bewältigen werde. Es kann also gut sein, dass dadurch auch dieses CUPS-Verhalten motiviert ist und deshalb möchte ich das nicht weiter vertiefen.
Es ist eben nur merkwürdig und wenn jemand auch in solch eine Falle stolpert, kann also die Verwendung eines "echten" Drucker-Treibers statt Generic vielleicht auch helfen.
 
Moin pit234a,

die Problematik mit dem generischen Druckertreiber könnte auch dadurch entstehen, dass der Treiber PS-Code erzeugt, den der Drucker (noch) nicht versteht. Die von Dir beschriebenen Schwierigkeiten hatte ich mit meinem alten Lexmark Optra R auch. Der konnte nur PostScript v2 und teilweise wurden PostScript v3 Befehle geschickt.
Ich weiß nicht, ob Dein PS-Drucker den Ausdruck von Fehlermeldungen unterstützt. Beim Optra R konnte man das im Menü aktivieren.
Nachdem der Lexmark mangels Tonerverfügbarkeit zum Elektroschrott wandern musste, habe ich mir einen HP Color-Laserjet 3800DN angeschafft und der funktionierte mit dem GENERIC-Treiber ohne Probleme.

Aber inzwischen habe ich Cups rausgeschmissen, weil das System interessanterweise immer die Druckereinstellungen "vergessen" hatte. Jetzt druckt jeder Client direkt und alles ist gut

Viele Grüße

JueDan
 
@juedan

Hi.

Einer der Drucker kann tatsächlich nur V2, der andere aber auch V3 und bevor diesem letzten Cups-Update funktionierten auch beide mit Generic-Treiber noch ausgezeichnet. Die letzte Version bei mir war aber noch eine pre 1.6er Cups.

Kannst du mir das erklären, wie du Cups rausgeschmissen hast und direkt druckst? Wenn das nicht zu viel Aufwand ist, hört sich das doch vernünftig an.
 
Hallo pit234a,

mal eine blöde Zwischenfrage: Wieso benutzt Du überhaupt den generischen PostScript-Treiber, wenn Du passende Treiber für Deine(n) Drucker hast?
 
Hi JueDan

Ja, das kann ich dir so genau wohl nicht sagen, Das ist ja alles schon Jahre lang am gehen und ich erinnere mich nur dunkel.
zunächst hatten wir keinen Cups, da gab es LPD und es mussten immer irgendwelche Filter-Dateien eingerichtet werden. Damals kaufte ich PS-Drucker und hing die in mein Netz, weil das sehr einfach war und keine "Treiber" brauchte. Dann kam Cups und es ging genauso, aber mit Cups hielt auch ein System-weites Drucksystem Einzug, das die verschiedensten Programme dann benutzen konnten. Also, wenn ein neuer Drucker auftauchte, dann wurde der automatisch gefunden und in die Dialoge mit eingebunden und so.
Schließlich konnte ich aber irgendwann meine Drucker nicht mehr ohne Treiber benutzen und musste also welche mit einbauen. Meine Drucker werden nicht exakt angeboten, sondern ich muss mich nun für ähnliche Drucker entscheiden, die aber offenbar ganz gut funktionieren. Doch bisher hatte ich ja nie nach diesen Treibern gesehen, da ich ja rein mittels PostScript drucken wollte. Nur, ohne Generic-Treiber bekam ich das nie hin.Das Cups-Menü verweigert es, ohne einen Treiber zu arbeiten und so nahm ich halt die Generic-PS Treiber.
Beim Ausdruck aus Libre-Office ist default schon länger PDF eingesetllt und das hatte schon mal Probleme gemacht und dann gab es mal ein Problem, dass ich nicht aus GTK-Anwendungen heraus drucken konnte. Was da jeweils geholfen hatte, weiß ich nicht mehr.
Alles zusammen hatte jedenfalls zu der Lösung geführt, dass ich die Generic-PS Treiber genutzt hatte.
 
Zurück
Oben