Ошибка сервера cups ubuntu

I was able to work around the problem by setting up the printer using the CUPS web interface. I pointed my browser at localhost:631, which gave me the web interface. Then selected «Adding Printers and Classes», then «Add Printer».

It had already detected my network attached printer so it was just a matter of installing the correct PPD file from the selection.

I don’t know why attempting to install the printer through the ubuntu Printers settings resulted in the ‘server-error-internal-error’, but this method seems to have worked fine. If anyone knows what the root cause of the error is I’d still love to know…

  • Печать

Страницы: [1]   Вниз

Тема: помогите разобраться с печатью  (Прочитано 4121 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
freemind

перестала работать печать.

решил переустановить cups: удаляю,

sudo service cups stop
sudo apt purge cups

после перезагрузки открываю http://localhost:631/ админка загружается, на никакие разделы не работают
что за ерунда?

 делаю

sudo service cups stopадминка перестает работать

делаю:

sudo service --status-all

oleg@satellite:~$ sudo service --status-all
 [ + ]  acpid
 [ - ]  alsa-utils
 [ - ]  anacron
 [ - ]  apparmor
 [ + ]  apport
 [ + ]  avahi-daemon
 [ + ]  binfmt-support
 [ - ]  bluetooth
 [ - ]  bootmisc.sh
 [ - ]  brltty
 [ - ]  checkfs.sh
 [ - ]  checkroot-bootclean.sh
 [ - ]  checkroot.sh
 [ + ]  console-setup
 [ + ]  cron
 [ + ]  cups
 [ - ]  cups-browsed
 [ + ]  dbus

при этом

oleg@satellite:~$ sudo apt purge cups
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Пакет «cups» не установлен, поэтому не может быть удалён
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 33 пакетов не обновлено.

Я что-то не понимаю ничего :idiot2:

как вычистить cups полностью и потом переустановить его?

При попытке добавить принтер возникает ошибка There was an error during the CUPS operation: ‘Внутренняя Ошибка сервера’.

 

Подскажите, с какой стороны к нему подойти, как наладить печать?


Оффлайн
symon.2014


Оффлайн
freemind

oleg@satellite:~$ sudo service cups-browsed start
oleg@satellite:~$ sudo service --status-all
 [ + ]  cups
 [ + ]  cups-browsed

все равно There was an error during the CUPS operation: ‘Внутренняя Ошибка сервера’.
как на картинке выше


Пользователь добавил сообщение 10 Октября 2017, 15:30:53:


вот содержимое /var/log/cups/error_log.1

E [09/Oct/2017:07:35:01 +0500] Unknown directive JobPrivateAccess on line 90 of /etc/cups/cupsd.conf.
E [09/Oct/2017:07:35:01 +0500] Unknown directive JobPrivateValues on line 91 of /etc/cups/cupsd.conf.
E [09/Oct/2017:07:35:01 +0500] Unknown directive SubscriptionPrivateAccess on line 92 of /etc/cups/cupsd.conf.
E [09/Oct/2017:07:35:01 +0500] Unknown directive SubscriptionPrivateValues on line 93 of /etc/cups/cupsd.conf.
E [09/Oct/2017:07:35:01 +0500] Filter "pstops" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "pdftopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "rastertopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "imagetopdf" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "pdftops" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "pdftoraster" not found.
E [09/Oct/2017:07:35:01 +0500] Filter "pstops" not found.
E [10/Oct/2017:11:10:22 +0500] Unknown directive JobPrivateAccess on line 90 of /etc/cups/cupsd.conf.
E [10/Oct/2017:11:10:22 +0500] Unknown directive JobPrivateValues on line 91 of /etc/cups/cupsd.conf.
E [10/Oct/2017:11:10:22 +0500] Unknown directive SubscriptionPrivateAccess on line 92 of /etc/cups/cupsd.conf.
E [10/Oct/2017:11:10:22 +0500] Unknown directive SubscriptionPrivateValues on line 93 of /etc/cups/cupsd.conf.
E [10/Oct/2017:11:10:22 +0500] Filter "pstops" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "pdftopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "rastertopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "imagetopdf" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "pdftops" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "pdftoraster" not found.
E [10/Oct/2017:11:10:22 +0500] Filter "pstops" not found.
E [10/Oct/2017:11:10:22 +0500] [Client 4] Returning IPP client-error-not-possible for Create-Printer-Subscriptions (/) from localhost

« Последнее редактирование: 10 Октября 2017, 15:30:53 от freemind »


Оффлайн
symon.2014

Попробуй его ещё раз удалить, и проверь, не остались ли после него следы, в частности /etc/cups/* и ~/.cups


Оффлайн
freemind

удаление это

sudo apt purge cups?

больше ничего не надо?


Пользователь добавил сообщение 10 Октября 2017, 17:07:52:


/etc/cups/ остался, внутри есть файлы и папки

~/.cups отсутствует

есть еще
/usr/lib/cups/
/usr/share/cups/

это все тоже удалить?

« Последнее редактирование: 10 Октября 2017, 17:07:52 от freemind »


Оффлайн
symon.2014

Переименуй эти папки, чтоб остались, и установи cups , он должен создать их дефолтными.


Оффлайн
freemind

переименовал, установил, теперь cups вообще не запускается, http://localhost:631/ тоже не работает

oleg@satellite:~$ sudo apt-get install cups
oleg@satellite:~$ sudo service cups start
oleg@satellite:~$ sudo service --status-all
...
 [ - ]  cups
...


Оффлайн
EvangelionDeath

symon.2014, вот не надо учить плохому

sudo apt-get purge cups-browsed
sudo apt-get autoremove --purge
dpkg -l | awk '/^rc/ {print $2}' | sudo  xargs dpkg -P
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install cups cups-browsed

И наверное покажите

dpkg --get-selections '*cups*'

« Последнее редактирование: 10 Октября 2017, 17:55:52 от EvangelionDeath »

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
symon.2014

sudo service cups start

Прежде чем стартовать , надо включить или перелогиниться.


Оффлайн
freemind

проделал все вышеописанное, перезагрузился, cups не запустился.
cups-browsed запущен.
http://localhost:631/ недоступно

oleg@satellite:~$ dpkg --get-selections '*cups*'
cups install
cups-browsed install
cups-bsd install
cups-client install
cups-common install
cups-core-drivers install
cups-daemon install
cups-filters install
cups-filters-core-drivers install
cups-pk-helper install
cups-ppdc install
cups-server-common install
libcups2:amd64 install
libcups2:i386 install
libcupscgi1:amd64 install
libcupsfilters1:amd64 install
libcupsimage2:amd64 install
libcupsmime1:amd64 install
libcupsppdc1:amd64 install
python-cups install
python3-cups install
python3-cupshelpers install


Пользователь добавил сообщение 10 Октября 2017, 18:29:00:


логи cups пустые.

в syslog:

Oct 10 20:19:03 satellite systemd[1]: Listening on CUPS Scheduler.
Oct 10 20:19:03 satellite systemd[1]: Started CUPS Scheduler.
Oct 10 20:19:03 satellite systemd[1]: cups.service: Main process exited, code=exited, status=1/FAILURE
Oct 10 20:19:03 satellite systemd[1]: cups.service: Unit entered failed state.
Oct 10 20:19:03 satellite systemd[1]: cups.service: Failed with result 'exit-code'.
Oct 10 20:19:03 satellite kernel: [  474.414280] audit: type=1400 audit(1507648743.110:40): apparmor="DENIED" operation="sendmsg" profile="/usr/sbin/cupsd" name="/run/systemd/journal/socket" pid=5981 comm="cupsd" requested_mask="w" denied_mask="w" fsuid=0 ouid=0

« Последнее редактирование: 10 Октября 2017, 18:29:00 от freemind »


Оффлайн
EvangelionDeath

Проверил списки пакетов:
У меня нет python-cups
Но есть printer-driver-hpcups

sudo apt-get purge python-cups
sudo apt-get install printer-driver-hpcups
sudo service cups start && sudo service cups status

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
freemind

короче говоря с горем пополам запустился после

sudo apt purge cups-daemon
sudo apt-get install cups-daemon
sudo apt-get install cups

и даже принтер установился, Но не печатает
error_log пуст, в access_log такая петрушка:

localhost - - [11/Oct/2017:16:28:45 +0500] "POST /printers/KyoceraFS1125 HTTP/1.1" 200 207 Create-Job successful-ok
localhost - - [11/Oct/2017:16:28:45 +0500] "POST /printers/KyoceraFS1125 HTTP/1.1" 200 69484 Send-Document client-error-document-format-not-supported
localhost - - [11/Oct/2017:16:28:45 +0500] "POST /jobs/ HTTP/1.1" 200 177 Cancel-Job successful-ok
пробовал разные файлы, толку нет.

как-то не до конца установился похоже
Есть идеи что-где посмотреть-проверить?

доступа к http://localhost:631 так же нет


Оффлайн
EvangelionDeath

sudo apt-get install cups cups-daemon cups-browsed cups-filters cups-filters-core-drivers --reinstall
После чего удалить и установить по новому принтер.

HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04


Оффлайн
freemind


  • Печать

Страницы: [1]   Вверх

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Contents

  1. Reporting Bugs
  2. Printer detection

    1. USB printer
    2. Parallel port printer
    3. Network printer
    4. USB -> Parallel adapter
  3. CUPS web interface
  4. CUPS error_log
  5. Troubleshooting Wizard
  6. Print Error pop-up window
  7. AppArmor Protection of the printing system
  8. Capturing print job data
  9. Getting the data which would go to the printer
  10. Sending a file to the printer unfiltered
  11. PostScript (PDF) printer chokes on the PostScript (PDF) coming from Ubuntu
  12. USB printer does not print or prints garbage
  13. Problems installing the CUPS package
  14. Turboprint
  15. Known bugs

Reporting Bugs

Bugs about printing problems should be assigned to the cups package if you don’t know which package they belong to. To report printing bugs preferably use ‘ubuntu-bug cups’ from a terminal window which will gather useful information about your system related to printing like the version of Ubuntu you use, configured printers and the versions of important printing packages installed and automatically attach them to your bug report. You can also add the information after the bug is reported by executing ‘apport-collect -p cups BUGNUMBER’ where BUGNUMBER is the bug report you want to add information to.

Printer detection

NOTE: If you have a USB -> Parallel adapter, proceed as for a USB printer and also see the «USB -> Parallel adapter» section below.

USB printer

  1. Make sure that the printer is connected to your system and powered on.
  2. Open a terminal/console and check if the usb kernel modules are loaded:
    $ lsmod | grep usb

  3. Unplug the USB printer cable from your computer and enter this command:
    $ tail -f /var/log/syslog 

  4. Reconnect the USB printer cable, you should see some messages appearing.
  5. Press Ctrl-C to stop the logging.
  6. Check whether the printer gets correctly detected by the USB subsystem and determine its USB vendor/product IDs and the USB bus and device addresses:
    $ lsusb
    Note: The USB bus and device addresses change if you turn off or unplug the printer. Please re-run this command if needed.

  7. Check whether the device files for the printer get created and the ownerships («root lp») and permissions (non-HP: «crw-rw-r—«, HP: «crw-rw-r—+») correctly set:
    $ ls -l /dev/usb/lp* /dev/bus/usb/*/*

  8. Determine the printer’s device ID strings:
    $ sudo usb_printerid /dev/usb/lp0
    $ sudo usb_printerid /dev/usb/lp1

    For HP printers also use
    $ hp-info -i
    and choose the printer with the problem from the text menu, then copy the «deviceid» entry from the output (can be several lines).

  9. For HP printers: Check that you have the latest version of HPLIP and whether HPLIP connects to them:
    $ hp-makeuri <Bus>:<Device>
    Replace «<Bus>» and «<Device>» by the bus and device numbers from the «lsusb» output (not vendor and product ID). The numbers must be supplied with three digits, zero-padded from the left, like «008:015». (More information from http://hplipopensource.com/.)

  10. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  11. Attach the output of the above commands to the bug report.

Note that problems cannot only caused by CUPS but also by the kernel (package «linux»), libusb, HPLIP (package «hplip»), and several third-party printer drivers.

Parallel port printer

  1. Make sure that the printer is connected to your system and powered on.
  2. Open a terminal/console and check if the lp, ppdev, and parport_pc kernel modules are loaded:
    $ lsmod | grep lp
    $ lsmod | grep ppdev
    $ lsmod | grep parport_pc

  3. Check if the kernel detected the parallel port during bootup:
    $ dmesg | grep par 

  4. Check if the device files of the parallel port(s) are created and have the correct permissions and ownerships:
    $ ls -l /dev/lp* /dev/parport* 

  5. Check if the printer auto-detection result appears in the kernel’s virtual file system:
    $ ls -l /proc/sys/dev/parport/parport*/autoprobe* 
    $ sudo cat /proc/sys/dev/parport/parport*/autoprobe* 

  6. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  7. Run the parallel port CUPS backend separately, once with standard user privileges and once as root:
    $ /usr/lib/cups/backend/parallel 
    $ sudo /usr/lib/cups/backend/parallel 

  8. Attach the output of the above commands to the bug report.

Note that problems can be caused not only by CUPS, but also by the kernel (package «linux»), HPLIP (package «hplip»), and several third-party printer drivers.

Network printer

  1. Make sure the printer is turned on and connected to your network. In the case of a WLAN (wireless) printer the printer needs to be configured to use your wireless network.
  2. Check the printer’s configuration by printing a configuration page via the printer’s front panel menus. This gives information about the IP address of the printer and about the protocols it supports (JetDirect/AppSocket, LPD, IPP, SMB/Windows, …).

  3. You can also find the printer’s IP address via the configuration web interface of your router. Many routers you can configure that the printer always gets the same IP and you can also assign a host name.
  4. To change the printer’s configuration either use the printer’s front panel menus or the printer’s web configuration interface. To access this web interface, enter the IP address of the printer into the address or URL line of a web browser.
  5. If your printer is supposed to connect via WLAN and it does not get an IP address, make sure that your WLAN is turned on and that the correct network name (SSID) and password are set by the front panel menus of the printer. If the printer has no front panel menus, you have to connct it with an ethernet cable first and configure the WLAN access through the web interface. On some HP printers there is WLAN connection but no ethernet connection. These you have to connect via USB and then use the hp-wificonfig tool from the hplip-gui package to configure them.
  6. Set up the printer via system-config-printer («Add» button). Wait around 15 seconds for the network scan (spinning icon must disappear). Usually you should select the default connection type as system-config-printer tries to find the best possibility. Generally use HP printers through the HPLIP connection, other printers preferably with DNS-SD connections (will continue to work whn the router changes the IP of the printer) and from the protocols use preferably AppSocket/jetDirect. The implementation of IPP in the printer’s firmware has often bugs. Make sure the desired protocols and DNS-SD/mDNS/BonJour support are active in the printer’s hardware configuration.
  7. Open a terminal/console and run the commands:
    $ ping <IP of the printer>
    $ nmap <IP of the printer>
    Replace «<IP of the printer>» by the printer’s IP address. The first command checks whether you can access the printer through the network, the second shows which port numbers are used by the printer and through this which protocols are active (80: Has web interface, 139: SMB, 443: encrypted IPP or encrypted web interface, 515: LPD, 631: IPP, 9100: JetDirect/AppSocket). Install the «nmap» package if needed.

  8. Run the commands:
    $ /usr/lib/cups/backend/snmp
    $ sudo /usr/lib/cups/backend/dnssd
    The output shows whether the printers get found by CUPS or system-config-printer and with which device URIs and protocols.

  9. Run the command
    $ /usr/lib/cups/backend/snmp <IP of the printer>
    if a printer does not get found by the simple «/usr/lib/cups/backend/snmp» call.

  10. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  11. Run the commands:
    $ avahi-browse -a -v -t -r
    $ avahi-browse -a -v -c -r
    These commands show whether your printer is visible via DNS-SD/mDNS/BonJour.

  12. Run
    $ ifconfig
    $ route
    to check general network health.

  13. Attach the output of the above commands to the bug report.

Note that problems cannot only caused by CUPS but also by the kernel (package «linux»), HPLIP (package «hplip»), and several third-party printer drivers.

USB -> Parallel adapter

We highly recommend not to buy and use these adapters to get old parallel-only printers connected to newer computers without parallel port. Please try the following alternatives:

  1. First check whether the printer is really parallel-only. If it has a USB or Ethernet port, use one of these for connection. If you do not have free USB ports on your computer, use a USB hub.
  2. If you have already a USB -> Parallel adapter and you have an All-in-One router (or NAS) with USB port, try to connect the printer with the adapter there, if the router has print server functionality, your printer should appear as a network printer.

  3. You can also get an old JetDirect (or compatible) network print box on eBay or Amazon for cheap, which also makes a network printer out of your printer.

  4. At least with USB -> Parallel adapters you can use with a Ubuntu machine proceeding as follows: Make sure that there is no other native USB printer or printer with USB -> Parallel adapter connected. This works only with one single printer on USB. Set up the printer with the device URI «parallel:/dev/usb/lp0», either by selecting «Enter URI» on the first page of the add-printer wizard of system-config-printer, or by right-clicking the icon of an existing (non-working) print queue, choosing «Properties» in the pop-up menu, and editing the «Device URI» field in the properties dialog. Note that you have to select printer manufacturer and model manually when adding a new printer.

Note that if the alternative you choose makes a network printer out of your printer that system-config-printer should find it as a network printer (wait for the scan to finish when the spinning icon disappears, then open the «Network printer» section). Perhaps you will need to choose make and model of the printer manually to finish the setup.

CUPS web interface

The CUPS web interface at http://127.0.0.1:631/ provides some useful messages and diagnostic capabilities.

CUPS error_log

This is a file where CUPS writes information about what it is doing. Almost all printing problems can be diagnosed from the error log, so it is the first place to look to start solving problems. To be useful, you must change the logging level:

  1. In Oneiric or newer with Unity desktop click the gear icon at the upper right (the one also used to log out) and in the menu showing up then, click «Printer» (or, in some versions, «Printers»). Or go to «System Settings» in the launcher and click on «Printing». The printer setup tool system-config-printer will open. Select «Server Settings» in the list on the left or in newer versions with the printers showing as icons choose «Server» in the main menu and then «Settings». Note that the main menu will be in the bar at the top of the screen if Oneiric (or newer) with Unity is used. There it only appears if you move the mouse into the top bar. Then check the checkbox «Save debugging information for troubleshooting» and click «Apply».
  2. In all Ubuntu flavors (also Kubuntu and server editions) you can run
    $ cupsctl LogLevel=debug
    to activate debug logging.

  3. In Karmic and later (CUPS 1.4.x) there is an automatic debug logging only for failed print jobs. So if you problem was a failed print job, the error_log can already contain the desired information. Unfortunately, only 200 debug message lines get logged per failed job. Run the command
    $ cupsctl LogDebugHistory=999999
    for practically unlimited logging of failed jobs.

  4. Clear the queue from any stuck jobs by deleting the jobs in the job viewer or running the «cancel -a» command.

  5. Try to print something. Wait until the job disappears from the queue or turns into «Stopped» state, independent whether something gets out of the printer. If the job never reaches «Stopped» state after the printer not showing any reaction for a longer time you also can go on to the next step.
  6. Scan or photograph the printout if it is not correct and attach the images to the bug report.
  7. Add /var/log/cups/error_log as an attachment to the bug report. Note that the file is not accessible for normal users. From Jaunty on you can access it from the account of the first user set up (in general users in the «adm» group). Otherwise you need to access it as root. To view the file run
    $ sudo less /var/log/cups/error_log
    and to copy it for attaching to a bug report run
    $ sudo cp /var/log/cups/error_log ~
    $ sudo chmod 777 ~/error_log

Troubleshooting Wizard

There is a troubleshooting wizard in system-config-printer (System -> Administration -> Printing in GNOME classic, Gear icon at the upper right of the screen -> Printers in Unity). You find it in the «Help» menu of system-config-printer. It produces a text file with a lot of useful information to attach to bug reports. Follow the instructions of the wizard. If you reach the test page step, you can either click the button to print the test page or you can print a job to the selected printer from any application or from the command line. The job will be shown in the integrated job viewer. Wait until it completes or goes into «Stopped» state. ONLY THEN AND NOT BEFORE mark the checkbox at the job, answer whether the job got printed correctly, and click «Forward». After that the file will get generated. Save it and attach it to your bug report.

Print Error pop-up window

If a print job fails, a job viewer with the failed job («Stopped» state) and pop-up window telling that the job has problems will appear. If you click the «Diagnose» button, the troubleshooting wizard will open. Do not delete the job before having completed the wizard. Take care to choose the printer with which the problem occured. In the «Test Page» step you do not need to print anything, nor to wait. Mark the stopped job in the integrated job viewer, click «No» at the question and then «Forward». After that save the file and attach it to the bug report.

AppArmor Protection of the printing system

From Gutsy on the security of the CUPS printing system is improved by using AppArmor. Unfortunately, the configuration is not perfect yet, especially if third-party printer drivers are used. First make sure the apparmor-utils package is installed. If you have any problems with printing, try deactivating the AppArmor protection with sudo aa-complain cupsd. If this helps, look for messages containing audit in the /var/log/syslog file. These show which components are accessed by the printing system for which there is no explicit permission given in /etc/apparmor.d/usr.sbin.cupsd. You can re-activate AppArmor via sudo aa-enforce cupsd. Report a bug to the package cups, so that we can correct the default configuration of AppArmor.

Capturing print job data

Often it is needed to find out what actually got sent to the printer in order to determine whether the problem is caused by the application or by the printing subsystem. It is easiest to capture the job data from the application so that it can be analyzed to see whether it is already broken or not. To do so, follow these steps:

  1. Clear the print queues of old jobs. Either use the job viewer or run the command
    $ cancel -a
    in a terminal window.

  2. Disable the print queue with which you have the problem. Use system-config-printer (System -> Administration -> Printing in GNOME classic, Gear icon at the upper right of the screen -> Printers in Unity), right-click the appropriate printer icon, and click «Enabled» in the pop-up menu, so that the check mark disappears; or run the command
    $ cupsdisable <PRINTER>
    in a terminal window (Replace «<PRINTER>» by the name of the print queue). This makes jobs stay in the queue so that you can capture them.

  3. Now print the job from your application. When the application has finished sending the job, check via the job viewer or the command
    $ lpstat -o
    whether it is in the queue.

  4. Display the content of CUPS’ spool directory using the command
    $ sudo ls -1 /var/spool/cups
    (Enter your password when asked).

  5. There should be exactly one file beginning with a «d». Copy this file to your home directory:
    $ sudo cp /var/spool/cups/d… ~/appout
    $ sudo chmod 777 ~/appout

  6. Re-enable the print queue:
    $ cupsenable <PRINTER>

  7. If the file gets printed correctly now, try the above procedure with another file, we need a file where the problem occurs.
  8. Check via the command
    $ file ~/appout
    what format the file is. It is usually PDF or PostScript. Display the file on the screen to see whether the problem already occurs (error message, missing characters, wrong colors, …). If you see the problem already, the application is the culprit, assign your bug report to the application’s package, otherwise assign it to the «cups» package.

  9. Attach the original file of your application and the ~/appout file to your bug report.

Getting the data which would go to the printer

Another important piece of data for debugging printing problems is the data which is supposed to be sent to the printer. In the previous section we captured what the application has sent to CUPS. CUPS applies several filters to this data to convert it into the printer’s native language. Here we capture the result of these filters:

  1. Activate printing into a file by adding a line containing «FileDevice yes» to /etc/cups/cups-files.conf and restarting CUPS by the command
    $ sudo restart cups

  2. Clone the queue of the printer with problems. The clone should print into a file and not to the actual printer, but should use the same driver, so that the same filters get applied. Use the command:
    $ lpadmin -p test -E -v file:/tmp/printout -P /etc/cups/ppd/<queue name>.ppd
    Replace «<queue name>» by the name of the queue with the problem. The clone has also exactly the same default settings as the original queue.

  3. Print the job which failed to the new print queue «test». If you have selected options in the print dialog, use the same options as you used when you encountered the problem. Wait until the job finishes (disappears in the job viewer). You will have a non-empty file named /tmp/printout then. Copy this file to your home directory:
    $ sudo cp /tmp/printout ~
    $ sudo chmod 777 ~/printout

  4. Attach this file to your bug report and/or examine it.

Sending a file to the printer unfiltered

If you print a file from an application or via the «lp» or «lpr» commands, the data usually goes through several filters to convert it into a format which the printer understands and to apply page management options, like 2 pages per sheet, only page 1, 3, and 9, … to it. For debugging it can be useful to bypass all these filters and let the data go directly to the printer, without any changes or conversions.

Do not send arbitrary files unfiltered to the printer now hoping that will solve any problems. Please use this mainly if you are asked for doing so in bug reports or after asking a support question.

In most cases you will have to print the data obtained from the section «Getting the data which would go to the printer» this way, often after editing it.

Use one of the following methods for unfiltered printing:

  1. Independent how your printer is connected, you can print unfiltered by using the «lp» or «lpr» commands with the «-oraw» argument:
    $ lp -d <printer> -oraw <file>
    $ lpr -P <printer> -oraw <file>
    Replace <printer> by the name of your print queue and <file> by the name of the file you want to print. This does not work around bugs in CUPS backends (the modules which CUPS uses to communicate with printer hardware), see the next steps for such cases.

  2. If the printer is connected via USB or parallel port, you can send the job directly to the printer’s device file:
    $ sudo -s
    # cat file > /dev/lp0
    # cat file > /dev/usb/lp0
    # cat file > /dev/usb/lp1
    # exit
    The numbers in the device file names can vary (sse also sections «USB Printer» and «Parallel port printer» above).

  3. If the printer is connected via the network (both ethernet or WLAN), you can use «nc» («netcat», part of the netcat-openbsd and netcat-traditional packages, install one of them if needed) to send unfiltered data:
    $ nc -w1 <printer> 9100 < <file>
    Replace <printer> by the host name or IP address of your printer and <file> by the name of the file you want to send. If the printer refuses the job, check in the printer’s web configuration interface whether JetDirect/AppSocket/9100 printing is enabled (see also the section «Network printer» above).

PostScript (PDF) printer chokes on the PostScript (PDF) coming from Ubuntu

Unfortunately, the PostScript (or PDF) interpreters in many printers have bugs, letting them print garbage or nothing at all, or even crash/get stuck when receiving a valid PostScript (or PDF) file.

If you have a PostScript or PDF printer and it does not print correctly from Ubuntu, please report a bug and proceed as follows, telling all your results in your bug report and staying tuned for further instructions of the developers:

  1. Tell us the exact Ubuntu version which you are using.
  2. Tell us the exact printer model.
  3. Attach the error_log, as described in the section «CUPS error_log» on this page.
  4. Attach the input file which you tried to print and tell us with which application you tried to print it.
  5. Attach the data which CUPS receives from the application (section «Capturing print job data» on this page).
  6. Attach the data which the printer receives (section «Getting the data which would go to the printer» on this page)
  7. Examine the file obtained in the previous step by running the command
    $ file printout

  8. If the file is PostScript or PDF, subscribe «cliddell» (Chris Liddell, Ghostscript upstream developer) to the bug report and also try to display the file on the screen with «evince» and «gs».

  9. Send the file unfiltered to the printer (as described in the section «Sending a file to the printer unfiltered». You should get the same problem, if you get a different (correct or incorrect) result, there is a problem with the CUPS backend (program which CUPS uses to communicate with the printer hardware).
  10. If the file is PostScript, try to send uncompressed PostScript. To do so print the file obtained in step (5) with one of the commands
    $ lpr -P <printer> -o psdebug <file>
    $ lp -d <printer> -o psdebug <file>
    Repeat the steps (6) — (9) printing this way. See also the file /usr/share/doc/cups-filters/README.gz, section «POSTSCRIPT PRINTING DEBUG MODE».

  11. As a workaround for the time being you can switch to an alternative program for generating the PostScript which is sent to the printer. Run
    $ lpadmin -p <printer> -o pdftops-renderer-default=pdftops
    to switch over and
    $ lpadmin -p <printer> -R pdftops-renderer-default
    to switch back. Make sure that you switch back if you follow further instructions from the developers in your bug report, or create a separate print queue for the workaround. See also the file /usr/share/doc/cups-filters/README.gz, section «POSTSCRIPT PRINTING RENDERER AND RESOLUTION SELECTION».

USB printer does not print or prints garbage

There are some USB printers who do not work when the standard communication through the USB is applied. For these exception rules need to get implemented in the USB backend of CUPS.

If your printer is connected via USB try the following steps to find out whether such exception rules could solve your problem:

  1. Does your printer also allow to be connected via network? Or does your router have a USB port which can be used to make a network printer out of a USB printer? Try out these connection methods. If your printer works with them, continue with the following steps. Continue also with the following steps if you do not have possibilities to use your printer as a network printer. Otherwise, your printer has a problem which does not fall into this class.
  2. Make sure your printer is connected via USB again. Run the following command in a terminal window
    $ cancel -a
    $ lpadmin -p <queue> -o usb-unidir-default=true
    with <queue> being the print queue name of the printer with problems. Now your computer does purely uni-directional USB communication with your printer. Does printing work correctly now? Run
    $ lpadmin -p <queue> -R usb-unidir-default
    to remove this change.

  3. Run
    $ cancel -a
    $ lpadmin -p <queue> -o usb-no-reattach-default=true
    to make the USB backend not re-attach the usblp kernel module after the communication with the printer. Does printing work correctly for you now? Undo this change via
    $ lpadmin -p <queue> -R usb-no-reattach-default

Please report a bug on the package «cups», preferably by running the command
$ ubuntu-bug cups
Report your results of the tests above and paste in the output of the
$ lsusb
command.

Problems installing the CUPS package

Most problems of installing the CUPS package are due to the CUPS daemon not starting after the installation or update of the package and this often happens when something is not OK with the configuration settings in /etc/cups/cupsd.conf.

To find out what is happening during startup of CUPS run the following commands
$ wget http://people.canonical.com/~pitti/tmp/cups.upstart.debug
$ sudo cp /etc/init/cups.conf{,.orig} 
$ sudo cp cups.upstart.debug /etc/init/cups.conf
$ sudo stop cups
$ sudo start cups
This should fail. Please attach /tmp/log to your bug report. After that, please restore the original script again with
$ sudo mv /etc/init/cups.conf{.orig,} 

If the CUPS daemon did not start («lpstat -r» says «scheduler is not running») follow the instructions under «CUPS error_log» on this page and instead of sending a job try to start CUPS:
$ sudo /usr/sbin/cupsd
If it fails, attach your error_log to your bug report.

If you look into your /tmp/log and error_log, you can probably also already find by yourself what went wrong, for example a broken entry in /etc/cups/cupsd.conf.

To restore the default configuration file /etc/cups/cupsd.conf, run the commands:
$ sudo mv /etc/cups/cupsd.conf ~
$ apt-get download cups
$ sudo dpkg -i —force-confmiss cups_*.deb
You can also restore other configuration files, as printers.conf for example. Simply do the same steps but instead of cupsd.conf move away the offending configuration file.

Turboprint

Turboprint is a comercially distributed manufacturer-independent printer driver package. It is for photo inkjet printers, supporting several models which are not or not well supported by the drivers which come with Ubuntu (Gutenprint, HPLIP) or from the manufacturers and also adds color management with calibration service to all supported printers. You have to pay for the software and for the calibration service. You can download the software for free but after a 30-day trial period a Turboprint logo gets printed on every page.

We cannot fix bugs in Turboprint, as it is a third-party closed-source software package, like many manufacturer-supplied drivers, but the developers of Turboprint are responsive, so we can forward bug reports to them.

One known problem is that Turboprint currently ships with a Ghostscript clone based on a very old Ghostscript version, after which we have worked a lot with the original developers of Ghostscript to remove very many crash bugs. So if you have problems that certain (especially more complex) files do not print (and perhaps you find segmentation fault messages of «gszedo» in /var/log/syslog), proceed as follows:

Run the command:
$ turboprint
A window, «Turboprint Control Center» will open. Click «Preferences» at the bottom of the window. In the dialog popping up now uncheck «Use Ghostscript with extensions for Turboprint». Click «OK» in the dialog window and «Exit» in the main window.

This makes Turboprint using the current version of Ghostscript as shipped with Ubuntu, containing all the latest bug fixes.

Known bugs

Description of known issues, how to recognise them and stock responses/actions.

evince: First try to remove (or move away) the ~/.config/evince/print-settings especially if you did changes on print queues, printers, drivers, … Old settings can prevent printing (See bug 1652791). Also note that evince (and other GTK/GNOME-based applications) often generates very awkward, large PDF files which can make PostScript and PDF printers receive very large and complex files which they cannot cope with. This got improved in newer versions, but old applications, especially ones using GTK 2.x still often cause problems.


  • Discuss this page

CategoryBugSquad CategoryDebugging

Forum rules
Before you post please read how to get help. Topics in this forum are automatically closed 6 months after creation.

psg

Level 1
Level 1
Posts: 46
Joined: Sun Jan 10, 2010 5:37 pm
Location: United Kingdom

[SOLVED] CUPS server error

I know there are older posts concerning this subject, but I couldn’t found similar situations.

I’m running Mint 9 (Gnome) and every thing was going fine, until I needed to connect to a printer in a Windows work group.

I tried several solutions, witch included adding two files in /usr/share/cups. A *.ppd file and one filter, I think it was it.
I created and removed several times one two printers (the ones I had available with no success.

Nevertheless, I finally gave up and used a pen to print from another pc (a windows one). Not very good for my image of Linux enthusiastic, but that’s me not being very handy.

Now the problem:
At the moment I go to Printing and have the indication «Not connected» in the bottom of the window and have the window without any printer. Before I had also, by default, a virtual printer to print to pdf.
I try to connect selecting Server > Connect menu and localhost. It returns me the error «CUPS server error: There was an error during the CUPS operation:’failed to connect to server'».
I already tried:
— /usr/share/cups start
— sudo /usr/sbin/cupsd
— sudo initctl start cups

They all return that the service is running.

Anyone can help me?

Last edited by psg on Thu Jul 08, 2010 8:11 am, edited 1 time in total.

RedWagon

Re: CUPS server error

Post

by RedWagon » Wed Jul 07, 2010 10:13 am

This will show you all running cups processes:

My output (cups running as it should) looks like this:

Code: Select all

verdow@techcage-07 ~ $ ps aux | grep -v grep | grep cups
root      1748  0.0  0.1  76272  2376 ?        Ss   Jun28   0:00 /usr/sbin/cupsd -C /etc/cups/cupsd.conf
verdow@techcage-07 ~ $ 

Most likely it’s running, but something’s up with it. I would run

and see if that fixes it. For future reference the /etc/init.d/ scripts are usually the best method for starting and stopping services.

Lastly CUPS has a built in web interface that you might want to check out at http://127.0.0.1:631
If you can access the CUPS web interface, then CUPS is running.

altair4

Level 20
Level 20
Posts: 11147
Joined: Tue Feb 03, 2009 10:27 am

Re: CUPS server error

Post

by altair4 » Wed Jul 07, 2010 11:21 am

For future reference the /etc/init.d/ scripts are usually the best method for starting and stopping services.

The only problem with that statement is that it’s now become a moving target as upstart slowly replaces the standard way of starting services. Case in point is the old «samba» service.

First the «samba» service no longer exists. It’s been replaced by it’s original component daemons: smbd and nmbd

nmbd is in /etc/init.d, smbd is not.

The way you start samba since Ubuntu 10.04 ( Mint 9 ) is:

It’s become even more confusing since «restart» doesn’t mean the same thing it used to either. If a service was stopped you could either issue a «start» or a «restart» to start it. Now a «restart» on a stopped service results in an error message. You can only start it with a «start».

The whole thing’s a mess.

Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.

psg

Level 1
Level 1
Posts: 46
Joined: Sun Jan 10, 2010 5:37 pm
Location: United Kingdom

Re: CUPS server error

Post

by psg » Wed Jul 07, 2010 6:06 pm

You are right altair4, I tried:

and returned me Fail.

But with only Start it gave me:

Code: Select all

cupsd: Child exited on signal 15!
                                                                         [ OK ]

@RedWagon:

With

nothing happens :?

Concerning the http://127.0.0.1:631 I can’t access almost anything, except the foruns and drivers. It means I don’t have Cups running, right?

What else can I do?

altair4

Level 20
Level 20
Posts: 11147
Joined: Tue Feb 03, 2009 10:27 am

Re: CUPS server error

Post

by altair4 » Thu Jul 08, 2010 6:46 am

I don’t know if this fits all your symptoms but it appears there’s a bug report for that:
https://bugs.launchpad.net/ubuntu/+sour … bug/436148

This worked for me:
dereck@yakisoba:~$ sudo cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf

Since you’re copying the default you will no doubt have to reinstall your printers.

You might want to make sure that /etc/cups/cupsd.conf is in fact either missing or empty first. No need to replace it if it isn’t broke.

Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.

psg

Level 1
Level 1
Posts: 46
Joined: Sun Jan 10, 2010 5:37 pm
Location: United Kingdom

Re: CUPS server error

Post

by psg » Thu Jul 08, 2010 8:08 am

You were right altair4, I had the cupsd.conf empty.
Issued:

Code: Select all

 sudo cp /etc/cups/cupsd.conf.default /etc/cups/cupsd.conf
sudo /etc/init.d/cups restart

and problem solved.

But still I wonder why cupsd.conf had gone empty?

Thank you all for the help. Once again Mint forum proved to have valuable members.

altair4

Level 20
Level 20
Posts: 11147
Joined: Tue Feb 03, 2009 10:27 am

Re: CUPS server error

Post

by altair4 » Thu Jul 08, 2010 8:17 am

psg wrote:But still I wonder why cupsd.conf had gone empty?

That I do not know. If I read the bug report correctly it appeared that the contents of his /etc/fstab had somehow found it’s way into cupsd.conf. So consider yourself lucky :)

Please add a [SOLVED] at the end of your original subject header if your question has been answered and solved.

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Contents

  1. Reporting Bugs
  2. Printer detection
    1. USB printer
    2. Parallel port printer
    3. Network printer
    4. USB -> Parallel adapter
  3. CUPS web interface
  4. CUPS error_log
  5. Troubleshooting Wizard
  6. Print Error pop-up window
  7. AppArmor Protection of the printing system
  8. Capturing print job data
  9. Getting the data which would go to the printer
  10. Sending a file to the printer unfiltered
  11. PostScript (PDF) printer chokes on the PostScript (PDF) coming from Ubuntu
  12. USB printer does not print or prints garbage
  13. Problems installing the CUPS package
  14. Turboprint
  15. Known bugs

Reporting Bugs

Bugs about printing problems should be assigned to the cups package if you don’t know which package they belong to. To report printing bugs preferably use ‘ubuntu-bug cups’ from a terminal window which will gather useful information about your system related to printing like the version of Ubuntu you use, configured printers and the versions of important printing packages installed and automatically attach them to your bug report. You can also add the information after the bug is reported by executing ‘apport-collect -p cups BUGNUMBER’ where BUGNUMBER is the bug report you want to add information to.

Printer detection

NOTE: If you have a USB -> Parallel adapter, proceed as for a USB printer and also see the «USB -> Parallel adapter» section below.

USB printer

  1. Make sure that the printer is connected to your system and powered on.
  2. Open a terminal/console and check if the usb kernel modules are loaded:
    $ lsmod | grep usb

  3. Unplug the USB printer cable from your computer and enter this command:
    $ tail -f /var/log/syslog 

  4. Reconnect the USB printer cable, you should see some messages appearing.
  5. Press Ctrl-C to stop the logging.
  6. Check whether the printer gets correctly detected by the USB subsystem and determine its USB vendor/product IDs and the USB bus and device addresses:
    $ lsusb
    Note: The USB bus and device addresses change if you turn off or unplug the printer. Please re-run this command if needed.

  7. Check whether the device files for the printer get created and the ownerships («root lp») and permissions (non-HP: «crw-rw-r—«, HP: «crw-rw-r—+») correctly set:
    $ ls -l /dev/usb/lp* /dev/bus/usb/*/*

  8. Determine the printer’s device ID strings:
    $ sudo usb_printerid /dev/usb/lp0
    $ sudo usb_printerid /dev/usb/lp1

    For HP printers also use
    $ hp-info -i
    and choose the printer with the problem from the text menu, then copy the «deviceid» entry from the output (can be several lines).

  9. For HP printers: Check that you have the latest version of HPLIP and whether HPLIP connects to them:
    $ hp-makeuri <Bus>:<Device>
    Replace «<Bus>» and «<Device>» by the bus and device numbers from the «lsusb» output (not vendor and product ID). The numbers must be supplied with three digits, zero-padded from the left, like «008:015». (More information from http://hplipopensource.com/.)

  10. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  11. Attach the output of the above commands to the bug report.

Note that problems cannot only caused by CUPS but also by the kernel (package «linux»), libusb, HPLIP (package «hplip»), and several third-party printer drivers.

Parallel port printer

  1. Make sure that the printer is connected to your system and powered on.
  2. Open a terminal/console and check if the lp, ppdev, and parport_pc kernel modules are loaded:
    $ lsmod | grep lp
    $ lsmod | grep ppdev
    $ lsmod | grep parport_pc

  3. Check if the kernel detected the parallel port during bootup:
    $ dmesg | grep par 

  4. Check if the device files of the parallel port(s) are created and have the correct permissions and ownerships:
    $ ls -l /dev/lp* /dev/parport* 

  5. Check if the printer auto-detection result appears in the kernel’s virtual file system:
    $ ls -l /proc/sys/dev/parport/parport*/autoprobe* 
    $ sudo cat /proc/sys/dev/parport/parport*/autoprobe* 

  6. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  7. Run the parallel port CUPS backend separately, once with standard user privileges and once as root:
    $ /usr/lib/cups/backend/parallel 
    $ sudo /usr/lib/cups/backend/parallel 

  8. Attach the output of the above commands to the bug report.

Note that problems can be caused not only by CUPS, but also by the kernel (package «linux»), HPLIP (package «hplip»), and several third-party printer drivers.

Network printer

  1. Make sure the printer is turned on and connected to your network. In the case of a WLAN (wireless) printer the printer needs to be configured to use your wireless network.
  2. Check the printer’s configuration by printing a configuration page via the printer’s front panel menus. This gives information about the IP address of the printer and about the protocols it supports (JetDirect/AppSocket, LPD, IPP, SMB/Windows, …).

  3. You can also find the printer’s IP address via the configuration web interface of your router. Many routers you can configure that the printer always gets the same IP and you can also assign a host name.
  4. To change the printer’s configuration either use the printer’s front panel menus or the printer’s web configuration interface. To access this web interface, enter the IP address of the printer into the address or URL line of a web browser.
  5. If your printer is supposed to connect via WLAN and it does not get an IP address, make sure that your WLAN is turned on and that the correct network name (SSID) and password are set by the front panel menus of the printer. If the printer has no front panel menus, you have to connct it with an ethernet cable first and configure the WLAN access through the web interface. On some HP printers there is WLAN connection but no ethernet connection. These you have to connect via USB and then use the hp-wificonfig tool from the hplip-gui package to configure them.
  6. Set up the printer via system-config-printer («Add» button). Wait around 15 seconds for the network scan (spinning icon must disappear). Usually you should select the default connection type as system-config-printer tries to find the best possibility. Generally use HP printers through the HPLIP connection, other printers preferably with DNS-SD connections (will continue to work whn the router changes the IP of the printer) and from the protocols use preferably AppSocket/jetDirect. The implementation of IPP in the printer’s firmware has often bugs. Make sure the desired protocols and DNS-SD/mDNS/BonJour support are active in the printer’s hardware configuration.
  7. Open a terminal/console and run the commands:
    $ ping <IP of the printer>
    $ nmap <IP of the printer>
    Replace «<IP of the printer>» by the printer’s IP address. The first command checks whether you can access the printer through the network, the second shows which port numbers are used by the printer and through this which protocols are active (80: Has web interface, 139: SMB, 443: encrypted IPP or encrypted web interface, 515: LPD, 631: IPP, 9100: JetDirect/AppSocket). Install the «nmap» package if needed.

  8. Run the commands:
    $ /usr/lib/cups/backend/snmp
    $ sudo /usr/lib/cups/backend/dnssd
    The output shows whether the printers get found by CUPS or system-config-printer and with which device URIs and protocols.

  9. Run the command
    $ /usr/lib/cups/backend/snmp <IP of the printer>
    if a printer does not get found by the simple «/usr/lib/cups/backend/snmp» call.

  10. Find out if your printer gets detected by CUPS:
    $ lpinfo -v

  11. Run the commands:
    $ avahi-browse -a -v -t -r
    $ avahi-browse -a -v -c -r
    These commands show whether your printer is visible via DNS-SD/mDNS/BonJour.

  12. Run
    $ ifconfig
    $ route
    to check general network health.

  13. Attach the output of the above commands to the bug report.

Note that problems cannot only caused by CUPS but also by the kernel (package «linux»), HPLIP (package «hplip»), and several third-party printer drivers.

USB -> Parallel adapter

We highly recommend not to buy and use these adapters to get old parallel-only printers connected to newer computers without parallel port. Please try the following alternatives:

  1. First check whether the printer is really parallel-only. If it has a USB or Ethernet port, use one of these for connection. If you do not have free USB ports on your computer, use a USB hub.
  2. If you have already a USB -> Parallel adapter and you have an All-in-One router (or NAS) with USB port, try to connect the printer with the adapter there, if the router has print server functionality, your printer should appear as a network printer.

  3. You can also get an old JetDirect (or compatible) network print box on eBay or Amazon for cheap, which also makes a network printer out of your printer.

  4. At least with USB -> Parallel adapters you can use with a Ubuntu machine proceeding as follows: Make sure that there is no other native USB printer or printer with USB -> Parallel adapter connected. This works only with one single printer on USB. Set up the printer with the device URI «parallel:/dev/usb/lp0», either by selecting «Enter URI» on the first page of the add-printer wizard of system-config-printer, or by right-clicking the icon of an existing (non-working) print queue, choosing «Properties» in the pop-up menu, and editing the «Device URI» field in the properties dialog. Note that you have to select printer manufacturer and model manually when adding a new printer.

Note that if the alternative you choose makes a network printer out of your printer that system-config-printer should find it as a network printer (wait for the scan to finish when the spinning icon disappears, then open the «Network printer» section). Perhaps you will need to choose make and model of the printer manually to finish the setup.

CUPS web interface

The CUPS web interface at http://127.0.0.1:631/ provides some useful messages and diagnostic capabilities.

CUPS error_log

This is a file where CUPS writes information about what it is doing. Almost all printing problems can be diagnosed from the error log, so it is the first place to look to start solving problems. To be useful, you must change the logging level:

  1. In Oneiric or newer with Unity desktop click the gear icon at the upper right (the one also used to log out) and in the menu showing up then, click «Printer» (or, in some versions, «Printers»). Or go to «System Settings» in the launcher and click on «Printing». The printer setup tool system-config-printer will open. Select «Server Settings» in the list on the left or in newer versions with the printers showing as icons choose «Server» in the main menu and then «Settings». Note that the main menu will be in the bar at the top of the screen if Oneiric (or newer) with Unity is used. There it only appears if you move the mouse into the top bar. Then check the checkbox «Save debugging information for troubleshooting» and click «Apply».
  2. In all Ubuntu flavors (also Kubuntu and server editions) you can run
    $ cupsctl LogLevel=debug
    to activate debug logging.

  3. In Karmic and later (CUPS 1.4.x) there is an automatic debug logging only for failed print jobs. So if you problem was a failed print job, the error_log can already contain the desired information. Unfortunately, only 200 debug message lines get logged per failed job. Run the command
    $ cupsctl LogDebugHistory=999999
    for practically unlimited logging of failed jobs.

  4. Clear the queue from any stuck jobs by deleting the jobs in the job viewer or running the «cancel -a» command.

  5. Try to print something. Wait until the job disappears from the queue or turns into «Stopped» state, independent whether something gets out of the printer. If the job never reaches «Stopped» state after the printer not showing any reaction for a longer time you also can go on to the next step.
  6. Scan or photograph the printout if it is not correct and attach the images to the bug report.
  7. Add /var/log/cups/error_log as an attachment to the bug report. Note that the file is not accessible for normal users. From Jaunty on you can access it from the account of the first user set up (in general users in the «adm» group). Otherwise you need to access it as root. To view the file run
    $ sudo less /var/log/cups/error_log
    and to copy it for attaching to a bug report run
    $ sudo cp /var/log/cups/error_log ~
    $ sudo chmod 777 ~/error_log

Troubleshooting Wizard

There is a troubleshooting wizard in system-config-printer (System -> Administration -> Printing in GNOME classic, Gear icon at the upper right of the screen -> Printers in Unity). You find it in the «Help» menu of system-config-printer. It produces a text file with a lot of useful information to attach to bug reports. Follow the instructions of the wizard. If you reach the test page step, you can either click the button to print the test page or you can print a job to the selected printer from any application or from the command line. The job will be shown in the integrated job viewer. Wait until it completes or goes into «Stopped» state. ONLY THEN AND NOT BEFORE mark the checkbox at the job, answer whether the job got printed correctly, and click «Forward». After that the file will get generated. Save it and attach it to your bug report.

Print Error pop-up window

If a print job fails, a job viewer with the failed job («Stopped» state) and pop-up window telling that the job has problems will appear. If you click the «Diagnose» button, the troubleshooting wizard will open. Do not delete the job before having completed the wizard. Take care to choose the printer with which the problem occured. In the «Test Page» step you do not need to print anything, nor to wait. Mark the stopped job in the integrated job viewer, click «No» at the question and then «Forward». After that save the file and attach it to the bug report.

AppArmor Protection of the printing system

From Gutsy on the security of the CUPS printing system is improved by using AppArmor. Unfortunately, the configuration is not perfect yet, especially if third-party printer drivers are used. First make sure the apparmor-utils package is installed. If you have any problems with printing, try deactivating the AppArmor protection with sudo aa-complain cupsd. If this helps, look for messages containing audit in the /var/log/syslog file. These show which components are accessed by the printing system for which there is no explicit permission given in /etc/apparmor.d/usr.sbin.cupsd. You can re-activate AppArmor via sudo aa-enforce cupsd. Report a bug to the package cups, so that we can correct the default configuration of AppArmor.

Capturing print job data

Often it is needed to find out what actually got sent to the printer in order to determine whether the problem is caused by the application or by the printing subsystem. It is easiest to capture the job data from the application so that it can be analyzed to see whether it is already broken or not. To do so, follow these steps:

  1. Clear the print queues of old jobs. Either use the job viewer or run the command
    $ cancel -a
    in a terminal window.

  2. Disable the print queue with which you have the problem. Use system-config-printer (System -> Administration -> Printing in GNOME classic, Gear icon at the upper right of the screen -> Printers in Unity), right-click the appropriate printer icon, and click «Enabled» in the pop-up menu, so that the check mark disappears; or run the command
    $ cupsdisable <PRINTER>
    in a terminal window (Replace «<PRINTER>» by the name of the print queue). This makes jobs stay in the queue so that you can capture them.

  3. Now print the job from your application. When the application has finished sending the job, check via the job viewer or the command
    $ lpstat -o
    whether it is in the queue.

  4. Display the content of CUPS’ spool directory using the command
    $ sudo ls -1 /var/spool/cups
    (Enter your password when asked).

  5. There should be exactly one file beginning with a «d». Copy this file to your home directory:
    $ sudo cp /var/spool/cups/d… ~/appout
    $ sudo chmod 777 ~/appout

  6. Re-enable the print queue:
    $ cupsenable <PRINTER>

  7. If the file gets printed correctly now, try the above procedure with another file, we need a file where the problem occurs.
  8. Check via the command
    $ file ~/appout
    what format the file is. It is usually PDF or PostScript. Display the file on the screen to see whether the problem already occurs (error message, missing characters, wrong colors, …). If you see the problem already, the application is the culprit, assign your bug report to the application’s package, otherwise assign it to the «cups» package.

  9. Attach the original file of your application and the ~/appout file to your bug report.

Getting the data which would go to the printer

Another important piece of data for debugging printing problems is the data which is supposed to be sent to the printer. In the previous section we captured what the application has sent to CUPS. CUPS applies several filters to this data to convert it into the printer’s native language. Here we capture the result of these filters:

  1. Activate printing into a file by adding a line containing «FileDevice yes» to /etc/cups/cups-files.conf and restarting CUPS by the command
    $ sudo restart cups

  2. Clone the queue of the printer with problems. The clone should print into a file and not to the actual printer, but should use the same driver, so that the same filters get applied. Use the command:
    $ lpadmin -p test -E -v file:/tmp/printout -P /etc/cups/ppd/<queue name>.ppd
    Replace «<queue name>» by the name of the queue with the problem. The clone has also exactly the same default settings as the original queue.

  3. Print the job which failed to the new print queue «test». If you have selected options in the print dialog, use the same options as you used when you encountered the problem. Wait until the job finishes (disappears in the job viewer). You will have a non-empty file named /tmp/printout then. Copy this file to your home directory:
    $ sudo cp /tmp/printout ~
    $ sudo chmod 777 ~/printout

  4. Attach this file to your bug report and/or examine it.

Sending a file to the printer unfiltered

If you print a file from an application or via the «lp» or «lpr» commands, the data usually goes through several filters to convert it into a format which the printer understands and to apply page management options, like 2 pages per sheet, only page 1, 3, and 9, … to it. For debugging it can be useful to bypass all these filters and let the data go directly to the printer, without any changes or conversions.

Do not send arbitrary files unfiltered to the printer now hoping that will solve any problems. Please use this mainly if you are asked for doing so in bug reports or after asking a support question.

In most cases you will have to print the data obtained from the section «Getting the data which would go to the printer» this way, often after editing it.

Use one of the following methods for unfiltered printing:

  1. Independent how your printer is connected, you can print unfiltered by using the «lp» or «lpr» commands with the «-oraw» argument:
    $ lp -d <printer> -oraw <file>
    $ lpr -P <printer> -oraw <file>
    Replace <printer> by the name of your print queue and <file> by the name of the file you want to print. This does not work around bugs in CUPS backends (the modules which CUPS uses to communicate with printer hardware), see the next steps for such cases.

  2. If the printer is connected via USB or parallel port, you can send the job directly to the printer’s device file:
    $ sudo -s
    # cat file > /dev/lp0
    # cat file > /dev/usb/lp0
    # cat file > /dev/usb/lp1
    # exit
    The numbers in the device file names can vary (sse also sections «USB Printer» and «Parallel port printer» above).

  3. If the printer is connected via the network (both ethernet or WLAN), you can use «nc» («netcat», part of the netcat-openbsd and netcat-traditional packages, install one of them if needed) to send unfiltered data:
    $ nc -w1 <printer> 9100 < <file>
    Replace <printer> by the host name or IP address of your printer and <file> by the name of the file you want to send. If the printer refuses the job, check in the printer’s web configuration interface whether JetDirect/AppSocket/9100 printing is enabled (see also the section «Network printer» above).

PostScript (PDF) printer chokes on the PostScript (PDF) coming from Ubuntu

Unfortunately, the PostScript (or PDF) interpreters in many printers have bugs, letting them print garbage or nothing at all, or even crash/get stuck when receiving a valid PostScript (or PDF) file.

If you have a PostScript or PDF printer and it does not print correctly from Ubuntu, please report a bug and proceed as follows, telling all your results in your bug report and staying tuned for further instructions of the developers:

  1. Tell us the exact Ubuntu version which you are using.
  2. Tell us the exact printer model.
  3. Attach the error_log, as described in the section «CUPS error_log» on this page.
  4. Attach the input file which you tried to print and tell us with which application you tried to print it.
  5. Attach the data which CUPS receives from the application (section «Capturing print job data» on this page).
  6. Attach the data which the printer receives (section «Getting the data which would go to the printer» on this page)
  7. Examine the file obtained in the previous step by running the command
    $ file printout

  8. If the file is PostScript or PDF, subscribe «cliddell» (Chris Liddell, Ghostscript upstream developer) to the bug report and also try to display the file on the screen with «evince» and «gs».

  9. Send the file unfiltered to the printer (as described in the section «Sending a file to the printer unfiltered». You should get the same problem, if you get a different (correct or incorrect) result, there is a problem with the CUPS backend (program which CUPS uses to communicate with the printer hardware).
  10. If the file is PostScript, try to send uncompressed PostScript. To do so print the file obtained in step (5) with one of the commands
    $ lpr -P <printer> -o psdebug <file>
    $ lp -d <printer> -o psdebug <file>
    Repeat the steps (6) — (9) printing this way. See also the file /usr/share/doc/cups-filters/README.gz, section «POSTSCRIPT PRINTING DEBUG MODE».

  11. As a workaround for the time being you can switch to an alternative program for generating the PostScript which is sent to the printer. Run
    $ lpadmin -p <printer> -o pdftops-renderer-default=pdftops
    to switch over and
    $ lpadmin -p <printer> -R pdftops-renderer-default
    to switch back. Make sure that you switch back if you follow further instructions from the developers in your bug report, or create a separate print queue for the workaround. See also the file /usr/share/doc/cups-filters/README.gz, section «POSTSCRIPT PRINTING RENDERER AND RESOLUTION SELECTION».

USB printer does not print or prints garbage

There are some USB printers who do not work when the standard communication through the USB is applied. For these exception rules need to get implemented in the USB backend of CUPS.

If your printer is connected via USB try the following steps to find out whether such exception rules could solve your problem:

  1. Does your printer also allow to be connected via network? Or does your router have a USB port which can be used to make a network printer out of a USB printer? Try out these connection methods. If your printer works with them, continue with the following steps. Continue also with the following steps if you do not have possibilities to use your printer as a network printer. Otherwise, your printer has a problem which does not fall into this class.
  2. Make sure your printer is connected via USB again. Run the following command in a terminal window
    $ cancel -a
    $ lpadmin -p <queue> -o usb-unidir-default=true
    with <queue> being the print queue name of the printer with problems. Now your computer does purely uni-directional USB communication with your printer. Does printing work correctly now? Run
    $ lpadmin -p <queue> -R usb-unidir-default
    to remove this change.

  3. Run
    $ cancel -a
    $ lpadmin -p <queue> -o usb-no-reattach-default=true
    to make the USB backend not re-attach the usblp kernel module after the communication with the printer. Does printing work correctly for you now? Undo this change via
    $ lpadmin -p <queue> -R usb-no-reattach-default

Please report a bug on the package «cups», preferably by running the command
$ ubuntu-bug cups
Report your results of the tests above and paste in the output of the
$ lsusb
command.

Problems installing the CUPS package

Most problems of installing the CUPS package are due to the CUPS daemon not starting after the installation or update of the package and this often happens when something is not OK with the configuration settings in /etc/cups/cupsd.conf.

To find out what is happening during startup of CUPS run the following commands
$ wget http://people.canonical.com/~pitti/tmp/cups.upstart.debug
$ sudo cp /etc/init/cups.conf{,.orig} 
$ sudo cp cups.upstart.debug /etc/init/cups.conf
$ sudo stop cups
$ sudo start cups
This should fail. Please attach /tmp/log to your bug report. After that, please restore the original script again with
$ sudo mv /etc/init/cups.conf{.orig,} 

If the CUPS daemon did not start («lpstat -r» says «scheduler is not running») follow the instructions under «CUPS error_log» on this page and instead of sending a job try to start CUPS:
$ sudo /usr/sbin/cupsd
If it fails, attach your error_log to your bug report.

If you look into your /tmp/log and error_log, you can probably also already find by yourself what went wrong, for example a broken entry in /etc/cups/cupsd.conf.

To restore the default configuration file /etc/cups/cupsd.conf, run the commands:
$ sudo mv /etc/cups/cupsd.conf ~
$ apt-get download cups
$ sudo dpkg -i —force-confmiss cups_*.deb
You can also restore other configuration files, as printers.conf for example. Simply do the same steps but instead of cupsd.conf move away the offending configuration file.

Turboprint

Turboprint is a comercially distributed manufacturer-independent printer driver package. It is for photo inkjet printers, supporting several models which are not or not well supported by the drivers which come with Ubuntu (Gutenprint, HPLIP) or from the manufacturers and also adds color management with calibration service to all supported printers. You have to pay for the software and for the calibration service. You can download the software for free but after a 30-day trial period a Turboprint logo gets printed on every page.

We cannot fix bugs in Turboprint, as it is a third-party closed-source software package, like many manufacturer-supplied drivers, but the developers of Turboprint are responsive, so we can forward bug reports to them.

One known problem is that Turboprint currently ships with a Ghostscript clone based on a very old Ghostscript version, after which we have worked a lot with the original developers of Ghostscript to remove very many crash bugs. So if you have problems that certain (especially more complex) files do not print (and perhaps you find segmentation fault messages of «gszedo» in /var/log/syslog), proceed as follows:

Run the command:
$ turboprint
A window, «Turboprint Control Center» will open. Click «Preferences» at the bottom of the window. In the dialog popping up now uncheck «Use Ghostscript with extensions for Turboprint». Click «OK» in the dialog window and «Exit» in the main window.

This makes Turboprint using the current version of Ghostscript as shipped with Ubuntu, containing all the latest bug fixes.

Known bugs

Description of known issues, how to recognise them and stock responses/actions.

evince: First try to remove (or move away) the ~/.config/evince/print-settings especially if you did changes on print queues, printers, drivers, … Old settings can prevent printing (See bug 1652791). Also note that evince (and other GTK/GNOME-based applications) often generates very awkward, large PDF files which can make PostScript and PDF printers receive very large and complex files which they cannot cope with. This got improved in newer versions, but old applications, especially ones using GTK 2.x still often cause problems.


  • Discuss this page

CategoryBugSquad CategoryDebugging

Состояние перевода: На этой странице представлен перевод статьи CUPS/Troubleshooting. Дата последней синхронизации: 8 января 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

В этой статье рассматриваются все неспецифические (то есть не связанные с каким-либо одним принтером) проблемы CUPS и драйверов принтеров (но не проблемы, связанные с совместным использованием принтеров), включая методы определения точной природы проблемы и решения выявленной проблемы.

Введение

Наилучший способ борьбы с неисправностями — это выставить ‘LogLevel’ в файле /etc/cups/cupsd.conf на:

LogLevel debug

А потом посмотреть вывод из файла /var/log/cups/error_log например так:

# tail -n 100 -f /var/log/cups/error_log

Символы слева от вывода означают следующее:

  • D=Debug(отладка)
  • E=Error(ошибка)
  • I=Information(информация)
  • И так далее

Следующие файлы также могут быть полезны:

  • /var/log/cups/page_log — каждый раз при успешной печати, пишет новую запись
  • /var/log/cups/access_log — записывает всю активность на cupsd http1.1 сервере

Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:

  1. Когда вы жмёте ‘печать’ приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).
  2. CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.
  3. GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.
  4. Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд

Распечатайте документ и посмотрите error_log, чтобы получить более подробное и правильное представление об процессе печати.

Проблемы, возникающие в результате обновлений

Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ

CUPS останавливается

Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения «404 — page not found» при попытке входа в панель управления CUPS через localhost:631.

Для того, чтобы воспользоваться новым конфигом, скопируйте /etc/cups/cupsd.conf.default в /etc/cups/cupsd.conf (при необходимости сделайте резервную копию старого конфига) и, чтобы новые настройки вступили в силу, перезапустите CUPS.

Для всех заданий — «остановлено»

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Если для всех отправленных на печать заданий установился статус «остановлено» («stopped»), — удалите принтер и установите его заново. Для этого войдите в веб-интерфейс CUPS, перейдите Принтеры > Удалить Принтер.

Для проверки настроек принтера перейдите во вкладку Принтеры, затем скопируйте отображаемую информацию. Далее нажмите на Администрирование. В выпадающем списке кликните Изменить принтер, перейдите к следующей странице(ам), и так далее.

Для всех заданий — «Принтер не отвечает»

Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:

lpd://BRN_020554/BINARY_P1

то имя хоста ‘BRN_020554’ должно соответствовать IP принтера, управляемого сервером CUPS. Если используется Avahi, убедитесь, что разрешение имени хоста Avahi работает.

Альтернативно, замените имя хоста, используемое в URI, IP-адресом принтера.

Версия PPD не совместима с gutenprint

Запустите:

# /usr/bin/cups-genppdupdate

И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).

Проблемы с сетью

Не удается найти принтер

Даже если CUPS обнаруживает сетевые принтеры, вы все равно можете получить ошибку «Не удается найти принтер» («Unable to locate printer») при попытке распечатать что-либо. Чтобы решить эту проблему, включите .разрешение локального имени хоста Avahi. Для получения дополнительной информации смотрите CUPS (Русский)#Сеть.

Эта проблема может возникать и при использовании файрвола (межсетевой экран, брандмауэр). Возможно, вам придется отключить его или установить корректные правила. Если вы используете system-config-printer для обнаружения сетевых принтеров, тогда он сделает все это автоматически.

Старый сервер CUPS

Начиная с версии CUPS 1.6, клиент по умолчанию использует IPP 2.0. Если сервер использует CUPS <= 1.5 / IPP <= 1.1, клиент не будет автоматически понижать версию протокола и, следовательно, не может связаться с сервером. Обходным путем является добавление опции version=1.1, описанной в Таблице 2. Опции URI IPP.

Общий принтер работает локально, но удаленный компьютер не печатает

Это вызвано тем, что задание на печать отправляется через фильтр дважды, один раз на локальном компьютере и один раз на удаленном. Смотрите также предупреждение на главной странице CUPS.

Не удается найти файл PPD

/var/log/cups/error_log
Cannot connect to remote printer ipp://HP079676.local
copy_model: empty PPD file

Убедитесь, что Avahi настроен правильно. В частности, проверьте, что nss-mdns установлен и настроен в /etc/nsswitch.conf.

USB-принтеры

Конфликт с SANE

Если у вас также запущен SANE, возможно, что он конфликтует с CUPS. Чтобы исправить это, создайте правило Udev, обозначающее устройство как совпадающее с libsane:

/etc/udev/rules.d/99-printer.rules
ATTRS{idVendor}=="vendor id(код производителя)", ATTRS{idProduct}=="product id(код продукта)", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

Конфликт с usblp

Доступ к USB-принтерам можно получить двумя способами: модулем ядра usblp и libusb. Первый — это классический способ. Это просто: данные отправляются на принтер, записывая их в файл устройства в виде простого последовательного потока данных. Чтение одного и того же файла устройства позволяет использовать двунаправленный доступ, по крайней мере, для таких вещей, как считывание уровней чернил, статуса или информации о возможностях принтера (PJL). Он работает очень хорошо для простых принтеров, но для многофункциональных устройств (принтер/сканер) он не подходит, и производители, такие как HP, поставляют свои собственные бэкенды. Источник: здесь.

Важно: Начиная с cups версии 1.6.0, больше не нужно заносить в запрет загрузки модуль ядра usblp.
Если вы узнаете, что это единственный способ исправить оставшуюся проблему, сообщите об этом в баг-трекер CUPS, а также можно связаться с Till Kamppeter (сопровождающий CUPS в Debian). Для получения дополнительной информации смотрите в upstream bug.

Если у вас возникли проблемы с работой USB-принтера, вы можете попробовать запрет загрузки для модуля ядра usblp:

/etc/modprobe.d/blacklistusblp.conf
blacklist usblp

Пользователям кастомного ядра может потребоваться вручную загрузить модуль ядра usbcore, прежде чем продолжить.

После установки модулей подключите принтер и проверьте, обнаружило ли его ядро, выполнив следующие действия:

# journalctl -e

или

# dmesg

Если вы используете usblp, вывод должен указывать на то, что принтер был обнаружен следующим образом:

Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver

Если вы запретили загрузку usblp, вы увидите что-то вроде:

usb 3-2: new full speed USB device using uhci_hcd and address 3
usb 3-2: configuration #1 chosen from 1 choice

USB autosuspend

Ядро Linux автоматически приостанавливает USB-устройства, когда есть поддержка драйверов и устройства не используются. Это может сэкономить электроэнергию, но некоторые USB-принтеры считают, что они не подключены, когда ядро приостанавливает USB-порт, предотвращая печать. Это можно устранить, отключив autosuspend для конкретного устройства, для получения дополнительной информации смотрите Power management#USB autosuspend.

Плохие разрешения

Проверьте разрешения USB-порта принтера. Получите номер шины (BUSID) и устройства (DEVID) от lsusb:

 lsusb 
 Bus <BUSID> Device <DEVID>: ID <PRINTERID>:<VENDOR> Hewlett-Packard DeskJet D1360

Проверьте владельца, просмотрев devfs:

 # ls -l /dev/bus/usb/<BUSID>/<DEVID>

Демон cups запускается от пользователя «cups» и относится к группе «lp», поэтому либо этому пользователю, либо группе требуется доступ на чтение и запись в USB-устройство. Если вы считаете, что разрешения выглядят неправильно, вы можете временно изменить группу и разрешение:

# chgrp lp /dev/bus/usb/<BUSID>/<DEVID>
# chmod 664 /dev/bus/usb/<BUSID>/<DEVID>

Затем проверьте, может ли cups теперь видеть устройство USB правильно.

Чтобы сделать постоянное изменение разрешения, которое будет запускаться автоматически при каждом запуске компьютера, добавьте следующую строку.

/etc/udev/rules.d/10-local.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="<VENDOR>", ATTRS{idProduct}=="<PRINTERID>", GROUP:="lp", MODE:="0664"

После редактирования перезагрузите правила udev этой командой:

# udevadm control --reload-rules

Каждая система может отличаться, поэтому обратитесь к вики-странице udev (Русский)#Список атрибутов устройства.

Проблемы с HP

Смотрите также CUPS/Принтероспецифичные проблемы#HP.

CUPS: «/usr/lib/cups/backend/hp failed»

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Убедитесь, что dbus установлен и запущен. Если ошибка повторяется, попробуйте запустить avahi-daemon.

Попробуйте добавить принтер в качестве сетевого принтера, используя протокол http:// .

Примечание: Там, возможно, потребуется установить права доступа.

CUPS: «Печать завершена», но принтер не печатает.

Это происходит на принтерах HP, когда вы выбираете (старый) драйвер hpijs (например, для Deskjet D1600 series). Вместо этого используйте драйвер hpcups.

Некоторые принтеры HP требуют, чтобы их прошивка загружалась с компьютера при каждом включении принтера. Вы можете столкнуться с этой проблемой, если есть проблема с udev (или аналогом), и правило загрузки прошивки никогда не запускается.
В качестве обходного пути вы можете вручную загрузить прошивку на принтер. Убедитесь, что принтер подключен и включен, затем выполните

hp-firmware -n

CUPS: ‘»foomatic-rip» not available/stopped with status 3’

Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом ‘остановлен’ (‘stopped’), а в /var/log/cups/error_log возникает одно из следующих сообщений об ошибках:

Filter "foomatic-rip" for printer printer_name not available: No such file or director

или:

PID pid (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!

убедитесь, что hplip установлен.

CUPS: «Filter failed»

Ошибка «filter failed» может быть вызвана некоторым количеством причин. Журнал ошибок CUPS (по умолчанию /var/log/cups/error_log) должен записывать, какой фильтр не удалось загрузить и почему.

Отсутствует ghostscript

Установите ghostscript (/usr/lib/cups/filter/gstoraster нуждается в его запуске).

Отсутствует foomatic-db

Установите foomatic-db и foomatic-db-ppds. Это помогает в некоторых случаях.

Avahi не включен

Запустите и включите службу avahi-daemon.

Устаревший плагин

Эта ошибка может указывать на то, что плагин устарел (версия несовместима) и может произойти после обновления системы, возможно, появится сообщение Plugin error в журнале (логе).
Если вы установили hplip-pluginAUR, вам нужно обновить пакет, иначе перезапустите hp-setup -i, чтобы установить последнюю версию плагина.

Устаревшая конфигурация принтера

Начиная с hplip-pluginAUR версии 3.17.11 hpijs больше не доступен. Если у вас есть принтеры, использующие hpijs, они не будут печатать. Необходимо перенастроить их и выбрать вместо этого новый драйвер hpcups.

Вы можете проверить, если это ваш случай, посмотрев в error_log cups`а:

 $ grep hpijs /var/log/cups/error_log 
 ...
 D [09/Jan/2018:14:32:58 +0000] [Job 97] sh: hpijs: command not found
 ...

CUPS: печатает только пустую страницу и страницу с сообщением об ошибке на HP LaserJet

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Существует ошибка, которая приводит к сбою CUPS при печати изображений на HP LaserJet (в моем случае 3380). Ошибки были зафиксированы и исправлены в Ubuntu.
Первая страница пуста, вторая страница содержит следующее сообщение об ошибке:

 ERROR:
 invalidaccess
 OFFENDING COMMAND:
 filter
 STACK:
 /SubFileDecode
 endstream
 ...

Чтобы устранить проблему, выполните следующую команду как суперпользователь (root):

# lpadmin -p printer -o pdftops-renderer-default=pdftops

HPLIP 3.13: Плагин установлен, но HP Device Manager жалуется на его отсутствие

Возможно, проблема связана с изменением прав доступа файла, которое было внесено в /var/lib/hp/hplip.state. Чтобы исправить проблему, достаточно простых команд chmod 644 /var/lib/hp/hplip.state и chmod 755 /var/lib/hp. Для получения дополнительной информации, пожалуйста, прочитайте эту ссылку.

hp-toolbox: «Unable to communicate with device»

# hp-toolbox
# error: Unable to communicate with device (code=12): hp:/usb/printer id

Разрешение проблемы

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Предположительно, hp-toolbox пытается получить доступ к /dev/usb/* или /dev/lp, поэтому он должен находиться в группе lp. Но почему sys? И я не могу воспроизвести это… (Discuss in Talk:CUPS (Русский)/Troubleshooting (Русский))

Может потребоваться добавить пользователя в группы lp и sys.

Виртуальный CDROM у принтеров

Это также может быть вызвано принтерами, такими как P1102, которые предоставляют виртуальный привод CD-ROM для драйверов MS Windows. Появляется lp dev, а затем исчезает. В этом случае попробуйте пакеты usb-modeswitch и usb-modeswitch-data, что позволяет отключить «Smart Drive» (правила udev, включенные в указанные пакеты).

Сетевые принтеры

Это также может происходить с сетевыми принтерами, использующими динамические имена хостов, если avahi-daemon не запущен. Другая причина заключается в том, что hp-setup не удалось найти принтер, потому что IP-адрес принтера изменился из-за DHCP. Если это так, подумайте о добавлении резервирования DHCP для принтера в конфигурации сервера DHCP.

hp-setup просит указать PPD-файл для обнаруженного принтера

Кроме того, при выборе файла PPD в графическом режиме hp-setup поле не обновляется и сообщение об ошибке не отображается.

Или, если вы используете интерактивный (консольный) режим, можно столкнуться с чем-то похожим на это даже при введении правильного пути к файлу ppd:

 Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz
 Traceback (most recent call last):
   File "/usr/bin/hp-setup", line 536, in <module>
     desc = nickname_pat.search(nickname).group(1)
 TypeError: cannot use a string pattern on a bytes-like object

Решение заключается в установке и запуске cups перед запуском hp-setup.

hp-setup: «Qt/PyQt 4 initialization failed»

Установите пакет python-pyqt4AUR, который дополнительно требуется (optdepend) для hplip. Альтернативно вы можете запустить hp-setup с интерфейсом командной строки с помощью флага -i.

hp-setup: находит принтер автоматически, но сразу после этого сообщает «Unable to communicate with device» при печати тестовой страницы

Это, по крайней мере, происходит с hplip 3.13.5-2 у принтера HP Officejet 6500A через локальное сетевое соединение. Чтобы решить проблему, укажите IP-адрес принтера HP для hp-setup, чтобы обнаружить принтер.

hp-setup: «KeyError: ‘family-class’»

Если при добавлении принтера в пользовательском интерфейсе он не работает, или вы получили KeyError: 'family-class' от hp-setup, возможно потребуется обновить вручную /usr/share/hplip/data/models/models.dat.

Проверьте определен ли раздел family-class=Undefined для вашего принтера. Если нет, добавьте это:

/usr/share/hplip/data/models/models.dat
[hp_laserjet_pro_mfp_m225dw]	
...
family-class=Undefined

Другие

Принтер «приостановлен — «Paused»» или «Остановлен» cо статусом «Рендеринг завершен»

Низкий уровень чернил

При низком уровне чернил некоторые принтеры зависают со статусом «Рендеринг завершен» («Rendering completed»), и, если это сетевой принтер, принтер может даже стать недоступным для CUPS, несмотря на то, что он правильно подключен к сети. Замена картриджа (картриджей) с низким уровнем чернил в этом случае вернет принтер в статус «Готов» («Ready») и, если он — сетевой принтер, то он станет снова доступным для CUPS.

Примечание: Если вы используете сторонние чернильные картриджи, то принтер может сообщать неточную информацию о уровне чернил. Если вы используете сторонние картриджи, и ваш принтер работал нормально, но теперь завис со статусом «Рендеринг завершен» («Rendering completed»), замените чернильные картриджи, независимо от уровня отображаемых чернил, перед тем, как пробовать другие решения проблемы.

Завершение печати из-за ошибок авторизации

Если удаленный принтер запрашивает аутентификацию, CUPS автоматически добавит директиву AuthInfoRequired для принтера в /etc/cups/printers.conf. Однако некоторые графические приложения (например, некоторые версии LibreOffice [1]) не имеют возможности запрашивать учетные данные, поэтому печать завершилась с ошибкой.
Чтобы исправить это, укажите требуемое имя пользователя и пароль в URI.
Для получения дополнительной информации смотрите [2], [3].

Unknown supported format: application/postscript

(Не найдена поддержка формата: application/postscript)

Закомментируйте строки:

application/octet-stream        application/vnd.cups-raw        0      -

в /etc/cups/mime.convs и:

application/octet-stream

в /etc/cups/mime.types.

Ошибка задания для печати (Print-Job) client-error-document-format-not-supported

Попробуйте установить пакет foomatic и используйте драйвер foomatic.

Не удается получить список драйверов принтера

(Также применимо к ошибке «-1 не поддерживается!»)

Попробуйте удалить драйверы Foomatic или обратитесь к CUPS/Принтероспецифичные проблемы#HPLIP для обходного пути.

lp: Error — Scheduler Not Responding

Если вы получите эту ошибку, убедитесь, что CUPS запущен, переменная окружения CUPS_SERVER не установлена и /etc/cups/client.conf корректный.

Сообщение об ошибке: «Using invalid Host»

Попробуйте добавить ServerAlias * в /etc/cups/cupsd.conf.

Не удается отправить на печать из LibreOffice

Если вы можете распечатать тестовую страницу с веб-интерфейса CUPS, но не из LibreOffice, попробуйте установить пакет a2ps.

Вывод принтера сдвинут

По-видимому, это связано с неправильным размером страницы, установленным в CUPS.

Принтер не работает (приостановлен — «Paused») после ошибки

Когда во время печати возникает ошибка, принтер в CUPS может перестать отвечать на запросы. lpq сообщает, что принтер is not ready (не готов), его можно активировать с помощью cupsenable. В веб-интерфейсе CUPS принтер отображается как приостановлен — «Paused», его можно возобновить с помощью Восстановить печать.

Чтобы CUPS автоматически активировал принтер, измените политику ошибок с стандартной настройки Останавливать принтер (stop-printer) на Повторить задание (retry-this-job).

Samsung: URF ERROR — Incomplete Session by time out

Эта ошибка обычно возникает при печати файлов по сети через IPP на принтерах Samsung и решается с помощью пакета samsung-unified-driverAUR.

Примечание: Соответствующий код ошибки 11-1112 соответствует внутренней проблеме с принтером, поэтому обращение к технической поддержке Samsung бесполезно.

Brother: Принтер печатает несколько копий

Иногда принтер печатает несколько копий документа (например, MFC-9330CDW напечатал 10 копий). Решение заключается в обновлении прошивки принтера.

Обычный пользователь не может изменять настройки принтера или удалять определенные задания

Если обычный пользователь должен иметь возможность изменять настройки принтеров или управлять очередью принтера, пользователь может быть добавлен в группу sys.

Состояние перевода: На этой странице представлен перевод статьи CUPS/Troubleshooting. Дата последней синхронизации: 8 января 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

  • CUPS (Русский)
  • CUPS/Принтероспецифичные проблемы

В этой статье рассматриваются все неспецифические (то есть не связанные с каким-либо одним принтером) проблемы CUPS и драйверов принтеров (но не проблемы, связанные с совместным использованием принтеров), включая методы определения точной природы проблемы и решения выявленной проблемы.

Contents

  • 1 Введение
  • 2 Проблемы, возникающие в результате обновлений
    • 2.1 CUPS останавливается
    • 2.2 Для всех заданий — «остановлено»
    • 2.3 Для всех заданий — «Принтер не отвечает»
    • 2.4 Версия PPD не совместима с gutenprint
  • 3 Проблемы с сетью
    • 3.1 Не удается найти принтер
    • 3.2 Старый сервер CUPS
    • 3.3 Общий принтер работает локально, но удаленный компьютер не печатает
    • 3.4 Не удается найти файл PPD
  • 4 USB-принтеры
    • 4.1 Конфликт с SANE
    • 4.2 Конфликт с usblp
    • 4.3 USB autosuspend
    • 4.4 Плохие разрешения
  • 5 Проблемы с HP
    • 5.1 CUPS: «/usr/lib/cups/backend/hp failed»
    • 5.2 CUPS: «Печать завершена», но принтер не печатает.
    • 5.3 CUPS: ‘»foomatic-rip» not available/stopped with status 3’
    • 5.4 CUPS: «Filter failed»
      • 5.4.1 Отсутствует ghostscript
      • 5.4.2 Отсутствует foomatic-db
      • 5.4.3 Avahi не включен
      • 5.4.4 Устаревший плагин
      • 5.4.5 Устаревшая конфигурация принтера
    • 5.5 CUPS: печатает только пустую страницу и страницу с сообщением об ошибке на HP LaserJet
    • 5.6 HPLIP 3.13: Плагин установлен, но HP Device Manager жалуется на его отсутствие
    • 5.7 hp-toolbox: «Unable to communicate with device»
      • 5.7.1 Разрешение проблемы
      • 5.7.2 Виртуальный CDROM у принтеров
      • 5.7.3 Сетевые принтеры
    • 5.8 hp-setup просит указать PPD-файл для обнаруженного принтера
    • 5.9 hp-setup: «Qt/PyQt 4 initialization failed»
    • 5.10 hp-setup: находит принтер автоматически, но сразу после этого сообщает «Unable to communicate with device» при печати тестовой страницы
    • 5.11 hp-setup: «KeyError: ‘family-class’»
  • 6 Другие
    • 6.1 Принтер «приостановлен — «Paused»» или «Остановлен» cо статусом «Рендеринг завершен»
      • 6.1.1 Низкий уровень чернил
    • 6.2 Завершение печати из-за ошибок авторизации
    • 6.3 Unknown supported format: application/postscript
    • 6.4 Ошибка задания для печати (Print-Job) client-error-document-format-not-supported
    • 6.5 Не удается получить список драйверов принтера
    • 6.6 lp: Error — Scheduler Not Responding
    • 6.7 Сообщение об ошибке: «Using invalid Host»
    • 6.8 Не удается отправить на печать из LibreOffice
    • 6.9 Вывод принтера сдвинут
    • 6.10 Принтер не работает (приостановлен — «Paused») после ошибки
    • 6.11 Samsung: URF ERROR — Incomplete Session by time out
    • 6.12 Brother: Принтер печатает несколько копий
    • 6.13 Обычный пользователь не может изменять настройки принтера или удалять определенные задания

Введение

Наилучший способ борьбы с неисправностями — это выставить ‘LogLevel’ в файле /etc/cups/cupsd.conf на:

А потом посмотреть вывод из файла /var/log/cups/error_log например так:

# tail -n 100 -f /var/log/cups/error_log

Символы слева от вывода означают следующее:

  • D=Debug(отладка)
  • E=Error(ошибка)
  • I=Information(информация)
  • И так далее

Следующие файлы также могут быть полезны:

  • /var/log/cups/page_log — каждый раз при успешной печати, пишет новую запись
  • /var/log/cups/access_log — записывает всю активность на cupsd http1.1 сервере

Также, если вы хотите решить свои проблемы, важно понимать, как вообще работает CUPS. Вот краткая информация об этом:

  1. Когда вы жмёте ‘печать’ приложение отправляет .ps-файл (PostScript, язык-скрипт, который описывает, как выглядит страница) в систему CUPS (так происходит в большинстве программ).
  2. CUPS смотрит на PPD-файл (файл описания принтера) и находит, фильтры которые ему нужно использовать для преобразования .ps-файла в файл, который понимает ваш принтер (например, PJL,PCL). Обычно для этого ему требуется ghostscript.
  3. GhostScript принимает ввод и решает, какие фильтры ему использовать, потом применяет их и преобразовывает .ps-файл в формат, который понимает принтер.
  4. Затем файл передается бэкенду. Например, если у вас принтер подключен к usb порту, то используется usb бэкенд

Распечатайте документ и посмотрите error_log, чтобы получить более подробное и правильное представление об процессе печати.

Проблемы, возникающие в результате обновлений

Проблемы возникшие после обновления CUPS и сопутствующего ему набора программ

CUPS останавливается

Существует вероятность, что для правильной работы в обновленной версии понадобится новый файл конфигурации. Например, получение сообщения «404 — page not found» при попытке входа в панель управления CUPS через localhost:631.

Для того, чтобы воспользоваться новым конфигом, скопируйте /etc/cups/cupsd.conf.default в /etc/cups/cupsd.conf (при необходимости сделайте резервную копию старого конфига) и, чтобы новые настройки вступили в силу, перезапустите CUPS.

Для всех заданий — «остановлено»

Если для всех отправленных на печать заданий установился статус «остановлено» («stopped»), — удалите принтер и установите его заново. Для этого войдите в веб-интерфейс CUPS, перейдите Принтеры > Удалить Принтер.

Для проверки настроек принтера перейдите во вкладку Принтеры, затем скопируйте отображаемую информацию. Далее нажмите на Администрирование. В выпадающем списке кликните Изменить принтер, перейдите к следующей странице(ам), и так далее.

Для всех заданий — «Принтер не отвечает»

Для сетевых принтеров, поскольку CUPS подключается через URI, необходимо убедиться, что в DNS настроен доступ к принтерам по IP. Например, если принтер подключен следующим образом:

lpd://BRN_020554/BINARY_P1

то имя хоста ‘BRN_020554’ должно соответствовать IP принтера, управляемого сервером CUPS. Если используется Avahi, убедитесь, что разрешение имени хоста Avahi работает.

Альтернативно, замените имя хоста, используемое в URI, IP-адресом принтера.

Версия PPD не совместима с gutenprint

Запустите:

# /usr/bin/cups-genppdupdate

И перезагрузите CUPS (будет выведено соответствующее сообщение после установки gutenprint).

Проблемы с сетью

Не удается найти принтер

Даже если CUPS обнаруживает сетевые принтеры, вы все равно можете получить ошибку «Не удается найти принтер» («Unable to locate printer») при попытке распечатать что-либо. Чтобы решить эту проблему, включите .разрешение локального имени хоста Avahi. Для получения дополнительной информации смотрите CUPS (Русский)#Сеть.

Эта проблема может возникать и при использовании файрвола (межсетевой экран, брандмауэр). Возможно, вам придется отключить его или установить корректные правила. Если вы используете system-config-printer для обнаружения сетевых принтеров, тогда он сделает все это автоматически.

Старый сервер CUPS

Начиная с версии CUPS 1.6, клиент по умолчанию использует IPP 2.0. Если сервер использует CUPS <= 1.5 / IPP <= 1.1, клиент не будет автоматически понижать версию протокола и, следовательно, не может связаться с сервером. Обходным путем является добавление опции version=1.1, описанной в Таблице 2. Опции URI IPP.

Общий принтер работает локально, но удаленный компьютер не печатает

Это вызвано тем, что задание на печать отправляется через фильтр дважды, один раз на локальном компьютере и один раз на удаленном. Смотрите также предупреждение на главной странице CUPS.

Не удается найти файл PPD

/var/log/cups/error_log

Cannot connect to remote printer ipp://HP079676.local
copy_model: empty PPD file

Убедитесь, что Avahi настроен правильно. В частности, проверьте, что nss-mdns установлен и настроен в /etc/nsswitch.conf.

USB-принтеры

Конфликт с SANE

Если у вас также запущен SANE, возможно, что он конфликтует с CUPS. Чтобы исправить это, создайте правило Udev, обозначающее устройство как совпадающее с libsane:

/etc/udev/rules.d/99-printer.rules ATTRS{idVendor}=="*vendor id(код производителя)*", ATTRS{idProduct}=="*product id(код продукта)*", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

Конфликт с usblp

Доступ к USB-принтерам можно получить двумя способами: модулем ядра usblp и libusb. Первый — это классический способ. Это просто: данные отправляются на принтер, записывая их в файл устройства в виде простого последовательного потока данных. Чтение одного и того же файла устройства позволяет использовать двунаправленный доступ, по крайней мере, для таких вещей, как считывание уровней чернил, статуса или информации о возможностях принтера (PJL). Он работает очень хорошо для простых принтеров, но для многофункциональных устройств (принтер/сканер) он не подходит, и производители, такие как HP, поставляют свои собственные бэкенды. Источник: здесь.

Важно: Начиная с cups версии 1.6.0, больше не нужно заносить в запрет загрузки модуль ядра usblp. Если вы узнаете, что это единственный способ исправить оставшуюся проблему, сообщите об этом в баг-трекер CUPS, а также можно связаться с Till Kamppeter (сопровождающий CUPS в Debian). Для получения дополнительной информации смотрите в upstream bug.

Если у вас возникли проблемы с работой USB-принтера, вы можете попробовать запрет загрузки для модуля ядра usblp:

/etc/modprobe.d/blacklistusblp.conf

Пользователям кастомного ядра может потребоваться вручную загрузить модуль ядра usbcore, прежде чем продолжить.

После установки модулей подключите принтер и проверьте, обнаружило ли его ядро, выполнив следующие действия:

или

Если вы используете usblp, вывод должен указывать на то, что принтер был обнаружен следующим образом:

Feb 19 20:17:11 kernel: printer.c: usblp0: USB Bidirectional
printer dev 2 if 0 alt 0 proto 2 vid 0x04E8 pid 0x300E
Feb 19 20:17:11 kernel: usb.c: usblp driver claimed interface cfef3920
Feb 19 20:17:11 kernel: printer.c: v0.13: USB Printer Device Class driver

Если вы запретили загрузку usblp, вы увидите что-то вроде:

usb 3-2: new full speed USB device using uhci_hcd and address 3
usb 3-2: configuration #1 chosen from 1 choice

USB autosuspend

Ядро Linux автоматически приостанавливает USB-устройства, когда есть поддержка драйверов и устройства не используются. Это может сэкономить электроэнергию, но некоторые USB-принтеры считают, что они не подключены, когда ядро приостанавливает USB-порт, предотвращая печать. Это можно устранить, отключив autosuspend для конкретного устройства, для получения дополнительной информации смотрите Power management#USB autosuspend.

Плохие разрешения

Проверьте разрешения USB-порта принтера. Получите номер шины (BUSID) и устройства (DEVID) от lsusb:

lsusb Bus <BUSID> Device <DEVID>: ID <PRINTERID>:<VENDOR> Hewlett-Packard DeskJet D1360

Проверьте владельца, просмотрев devfs:

 # ls -l /dev/bus/usb/<BUSID>/<DEVID>

Демон cups запускается от пользователя «cups» и относится к группе «lp», поэтому либо этому пользователю, либо группе требуется доступ на чтение и запись в USB-устройство. Если вы считаете, что разрешения выглядят неправильно, вы можете временно изменить группу и разрешение:

# chgrp lp /dev/bus/usb/<BUSID>/<DEVID>
# chmod 664 /dev/bus/usb/<BUSID>/<DEVID>

Затем проверьте, может ли cups теперь видеть устройство USB правильно.

Чтобы сделать постоянное изменение разрешения, которое будет запускаться автоматически при каждом запуске компьютера, добавьте следующую строку.

/etc/udev/rules.d/10-local.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="<VENDOR>", ATTRS{idProduct}=="<PRINTERID>", GROUP:="lp", MODE:="0664"

После редактирования перезагрузите правила udev этой командой:

# udevadm control --reload-rules

Каждая система может отличаться, поэтому обратитесь к вики-странице udev (Русский)#Список атрибутов устройства.

Проблемы с HP

Смотрите также CUPS/Принтероспецифичные проблемы#HP.

CUPS: «/usr/lib/cups/backend/hp failed»

Убедитесь, что dbus установлен и запущен. Если ошибка повторяется, попробуйте запустить avahi-daemon.

Попробуйте добавить принтер в качестве сетевого принтера, используя протокол http:// .

Примечание: Там, возможно, потребуется установить права доступа.

CUPS: «Печать завершена», но принтер не печатает.

Это происходит на принтерах HP, когда вы выбираете (старый) драйвер hpijs (например, для Deskjet D1600 series). Вместо этого используйте драйвер hpcups.

Некоторые принтеры HP требуют, чтобы их прошивка загружалась с компьютера при каждом включении принтера. Вы можете столкнуться с этой проблемой, если есть проблема с udev (или аналогом), и правило загрузки прошивки никогда не запускается. В качестве обходного пути вы можете вручную загрузить прошивку на принтер. Убедитесь, что принтер подключен и включен, затем выполните

CUPS: ‘»foomatic-rip» not available/stopped with status 3’

Если, во время использования принтера HP, задания появляются в очереди, но все завершаются со статусом ‘остановлен’ (‘stopped’), а в /var/log/cups/error_log возникает одно из следующих сообщений об ошибках:

Filter "foomatic-rip" for printer *printer_name* not available: No such file or director

или:

PID *pid* (/usr/lib/cups/filter/foomatic-rip) stopped with status 3!

убедитесь, что hplip установлен.

CUPS: «Filter failed»

Ошибка «filter failed» может быть вызвана некоторым количеством причин. Журнал ошибок CUPS (по умолчанию /var/log/cups/error_log) должен записывать, какой фильтр не удалось загрузить и почему.

Отсутствует ghostscript

Установите ghostscript (/usr/lib/cups/filter/gstoraster нуждается в его запуске).

Отсутствует foomatic-db

Установите foomatic-db и foomatic-db-ppds. Это помогает в некоторых случаях.

Avahi не включен

Запустите и включите службу avahi-daemon.

Устаревший плагин

Эта ошибка может указывать на то, что плагин устарел (версия несовместима) и может произойти после обновления системы, возможно, появится сообщение Plugin error в журнале (логе). Если вы установили hplip-plugin, вам нужно обновить пакет, иначе перезапустите hp-setup -i, чтобы установить последнюю версию плагина.

Устаревшая конфигурация принтера

Начиная с hplip-plugin версии 3.17.11 hpijs больше не доступен. Если у вас есть принтеры, использующие hpijs, они не будут печатать. Необходимо перенастроить их и выбрать вместо этого новый драйвер hpcups.

Вы можете проверить, если это ваш случай, посмотрев в error_log cups`а:

$ grep hpijs /var/log/cups/error_log

 ...
 D [09/Jan/2018:14:32:58 +0000] [Job 97] **sh: hpijs: command not found**
 ...

CUPS: печатает только пустую страницу и страницу с сообщением об ошибке на HP LaserJet

Существует ошибка, которая приводит к сбою CUPS при печати изображений на HP LaserJet (в моем случае 3380). Ошибки были зафиксированы и исправлены в Ubuntu. Первая страница пуста, вторая страница содержит следующее сообщение об ошибке:

 ERROR:
 invalidaccess
 OFFENDING COMMAND:
 filter
 STACK:
 /SubFileDecode
 endstream
 ...

Чтобы устранить проблему, выполните следующую команду как суперпользователь (root):

# lpadmin -p *printer* -o pdftops-renderer-default=pdftops

HPLIP 3.13: Плагин установлен, но HP Device Manager жалуется на его отсутствие

Возможно, проблема связана с изменением прав доступа файла, которое было внесено в /var/lib/hp/hplip.state. Чтобы исправить проблему, достаточно простых команд chmod 644 /var/lib/hp/hplip.state и chmod 755 /var/lib/hp. Для получения дополнительной информации, пожалуйста, прочитайте эту ссылку.

hp-toolbox: «Unable to communicate with device»

# hp-toolbox
# error: Unable to communicate with device (code=12): hp:/usb/*printer id*

Разрешение проблемы

Может потребоваться добавить пользователя в группы lp и sys.

Виртуальный CDROM у принтеров

Это также может быть вызвано принтерами, такими как P1102, которые предоставляют виртуальный привод CD-ROM для драйверов MS Windows. Появляется lp dev, а затем исчезает. В этом случае попробуйте пакеты usb-modeswitch и usb-modeswitch-data, что позволяет отключить «Smart Drive» (правила udev, включенные в указанные пакеты).

Сетевые принтеры

Это также может происходить с сетевыми принтерами, использующими динамические имена хостов, если avahi-daemon не запущен. Другая причина заключается в том, что hp-setup не удалось найти принтер, потому что IP-адрес принтера изменился из-за DHCP. Если это так, подумайте о добавлении резервирования DHCP для принтера в конфигурации сервера DHCP.

hp-setup просит указать PPD-файл для обнаруженного принтера

Кроме того, при выборе файла PPD в графическом режиме hp-setup поле не обновляется и сообщение об ошибке не отображается.

Или, если вы используете интерактивный (консольный) режим, можно столкнуться с чем-то похожим на это даже при введении правильного пути к файлу ppd:

 Please enter the full filesystem path to the PPD file to use (q=quit) :/usr/share/ppd/HP/hp-deskjet_2050_j510_series.ppd.gz
 Traceback (most recent call last):
   File "/usr/bin/hp-setup", line 536, in <module>
     desc = nickname_pat.search(nickname).group(1)
 TypeError: cannot use a string pattern on a bytes-like object

Решение заключается в установке и запуске cups перед запуском hp-setup.

hp-setup: «Qt/PyQt 4 initialization failed»

Установите пакет python-pyqt4, который дополнительно требуется (optdepend) для hplip. Альтернативно вы можете запустить hp-setup с интерфейсом командной строки с помощью флага -i.

hp-setup: находит принтер автоматически, но сразу после этого сообщает «Unable to communicate with device» при печати тестовой страницы

Это, по крайней мере, происходит с hplip 3.13.5-2 у принтера HP Officejet 6500A через локальное сетевое соединение. Чтобы решить проблему, укажите IP-адрес принтера HP для hp-setup, чтобы обнаружить принтер.

hp-setup: «KeyError: ‘family-class’»

Если при добавлении принтера в пользовательском интерфейсе он не работает, или вы получили KeyError: 'family-class' от hp-setup, возможно потребуется обновить вручную /usr/share/hplip/data/models/models.dat.

Проверьте определен ли раздел family-class=Undefined для вашего принтера. Если нет, добавьте это:

/usr/share/hplip/data/models/models.dat

[hp_laserjet_pro_mfp_m225dw]	
...
family-class=Undefined

Другие

Принтер «приостановлен — «Paused»» или «Остановлен» cо статусом «Рендеринг завершен»

Низкий уровень чернил

При низком уровне чернил некоторые принтеры зависают со статусом «Рендеринг завершен» («Rendering completed»), и, если это сетевой принтер, принтер может даже стать недоступным для CUPS, несмотря на то, что он правильно подключен к сети. Замена картриджа (картриджей) с низким уровнем чернил в этом случае вернет принтер в статус «Готов» («Ready») и, если он — сетевой принтер, то он станет снова доступным для CUPS.

Примечание: Если вы используете сторонние чернильные картриджи, то принтер может сообщать неточную информацию о уровне чернил. Если вы используете сторонние картриджи, и ваш принтер работал нормально, но теперь завис со статусом «Рендеринг завершен» («Rendering completed»), замените чернильные картриджи, независимо от уровня отображаемых чернил, перед тем, как пробовать другие решения проблемы.

Завершение печати из-за ошибок авторизации

Если удаленный принтер запрашивает аутентификацию, CUPS автоматически добавит директиву AuthInfoRequired для принтера в /etc/cups/printers.conf. Однако некоторые графические приложения (например, некоторые версии LibreOffice [1]) не имеют возможности запрашивать учетные данные, поэтому печать завершилась с ошибкой. Чтобы исправить это, укажите требуемое имя пользователя и пароль в URI. Для получения дополнительной информации смотрите [2], [3].

Unknown supported format: application/postscript

(Не найдена поддержка формата: application/postscript)

Закомментируйте строки:

application/octet-stream        application/vnd.cups-raw        0      -

в /etc/cups/mime.convs и:

в /etc/cups/mime.types.

Ошибка задания для печати (Print-Job) client-error-document-format-not-supported

Попробуйте установить пакет foomatic и используйте драйвер foomatic.

Не удается получить список драйверов принтера

(Также применимо к ошибке «-1 не поддерживается!»)

Попробуйте удалить драйверы Foomatic или обратитесь к CUPS/Принтероспецифичные проблемы#HPLIP для обходного пути.

lp: Error — Scheduler Not Responding

Если вы получите эту ошибку, убедитесь, что CUPS запущен, переменная окружения CUPS_SERVER не установлена и /etc/cups/client.conf корректный.

Сообщение об ошибке: «Using invalid Host»

Попробуйте добавить ServerAlias * в /etc/cups/cupsd.conf.

Не удается отправить на печать из LibreOffice

Если вы можете распечатать тестовую страницу с веб-интерфейса CUPS, но не из LibreOffice, попробуйте установить пакет a2ps.

Вывод принтера сдвинут

По-видимому, это связано с неправильным размером страницы, установленным в CUPS.

Принтер не работает (приостановлен — «Paused») после ошибки

Когда во время печати возникает ошибка, принтер в CUPS может перестать отвечать на запросы. lpq сообщает, что принтер is not ready (не готов), его можно активировать с помощью cupsenable. В веб-интерфейсе CUPS принтер отображается как приостановлен — «Paused», его можно возобновить с помощью Восстановить печать.

Чтобы CUPS автоматически активировал принтер, измените политику ошибок с стандартной настройки Останавливать принтер (stop-printer) на Повторить задание (retry-this-job).

Samsung: URF ERROR — Incomplete Session by time out

Эта ошибка обычно возникает при печати файлов по сети через IPP на принтерах Samsung и решается с помощью пакета samsung-unified-driver.

Примечание: Соответствующий код ошибки 11-1112 соответствует внутренней проблеме с принтером, поэтому обращение к технической поддержке Samsung бесполезно.

Brother: Принтер печатает несколько копий

Иногда принтер печатает несколько копий документа (например, MFC-9330CDW напечатал 10 копий). Решение заключается в обновлении прошивки принтера.

Обычный пользователь не может изменять настройки принтера или удалять определенные задания

Если обычный пользователь должен иметь возможность изменять настройки принтеров или управлять очередью принтера, пользователь может быть добавлен в группу sys.

  • Ошибка сервера cups server error internal error
  • Ошибка сервера cups red os
  • Ошибка сервера cups linux mint
  • Ошибка сервера cups client error not possible
  • Ошибка сервера cups client error not authorized