Я видел множество сообщений, в которых задавались эти и подобные вопросы на различных форумах, но, похоже, никто не мог предложить решение.
Основная проблема выглядит так:
Печать работала нормально на [Insert Old Version of Linux Distro], но после обновления до [Newer version of Linux Distro] теперь существует задержка [5,10,15] секунд между отправкой файла в команду печати и фактическим моментом, когда принтер начинает печать.
В моем конкретном случае печать началась сразу в Ubuntu 8.04, но после обновления до 10.04 имеет задержку 10 секунд. Я делаю это на сервере Ubuntu, печатаю с помощью команды lpr, но проблема присутствует и на рабочем столе 10.04. Из того, что я читал, это также влияет на более новые версии MOST дистрибутивов linux. Fedora, OpenSUSE, Arch и др.
Все принтеры являются сетевыми. Печать из Windows также выполняется немедленно. Индикатор на принтере сразу начинает мигать, но в течение 10-15 секунд ничего не гаснет.
Ubuntu 10.04 использует CUPS 1.4.3. Я подумал, что это может быть ошибка в CUPS, поэтому я скомпилировал CUPS 1.4.5 (последняя стабильная версия), чтобы заменить Ubuntu 1.4.3. Но все же задержка.
Есть идеи, что может быть причиной этого? Или способ устранить проблему, чтобы выяснить, что ее вызывает?
ОБНОВИТЬ: Я установил уровень журнала для отладки и получил около 660 строк вывода в моем журнале для одного задания. Отправленный мной тестовый файл занял 10 секунд с момента его добавления в реплику до момента выхода.
Я не буду публиковать здесь все (если вы этого не хотите!), Но вот основные моменты:
Задание отправлено, и в ту же секунду происходит множество вещей. Последняя строка для этой секунды:
D [28/Nov/2010:14:44:19 -0500]
Discarding unused printer-state-changed event...
Следующая строка журнала появляется через 4 секунды:
D [28/Nov/2010:14:44:23 -0500]
[Job 3071] prtGeneralCurrentLocalization type is 0, expected 2!
Так что у нас по какой-то причине задержка в 4 секунды.
Через 1 секунду мы получаем:
D [28/Nov/2010:14:44:23 -0500] PID 15448 (/usr/lib/cups/filter/pdftoraster) exited with no errors. D [28/Nov/2010:14:44:24 -0500] [Job 3071] Wrote 8192 bytes of print data... D [28/Nov/2010:14:44:24 -0500] [Job 3071] Read 8192 bytes of print data... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Printing page 1, 57% complete... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Printing page 1, 59% complete... D [28/Nov/2010:14:44:24 -0500] Discarding unused job-progress event... D [28/Nov/2010:14:44:24 -0500] Discarding unused printer-state-changed event... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Printing page 1, 60% complete...
Что повторяется до тех пор, пока:
I [28/Nov/2010:14:44:26 -0500] [Job 3071] Printing page 1, 99% complete... D [28/Nov/2010:14:44:26 -0500] Discarding unused job-progress event... D [28/Nov/2010:14:44:26 -0500] Discarding unused printer-state-changed event... I [28/Nov/2010:14:44:26 -0500] [Job 3071] Ready to print.
Затем он переходит к:
D [28/Nov/2010:14:44:26 -0500] [Job 3071] Wrote 8192 bytes of print data... D [28/Nov/2010:14:44:26 -0500] [Job 3071] Read 8192 bytes of print data...
Снова и снова, пока:
D [28/Nov/2010:14:44:29 -0500] [Job 3071] Read 3361 bytes of print data... D [28/Nov/2010:14:44:29 -0500] [Job 3071] Wrote 3361 bytes of print data... I [28/Nov/2010:14:44:29 -0500] [Job 3071] Print file sent, waiting for printer to finish...
Это момент, когда принтер фактически начинает печатать. Целых 10 секунд спустя.
Я испытываю то же самое. Я не уверен, что это та же проблема, что и у вас, но мы наблюдали, что с принтерами чеков у некоторых из них внезапно начиналась 4-секундная задержка при печати, в то время как другие появлялись сразу.
Это было после обновления Cups (Slackware linux).
После долгой отладки мы обнаружили, что принтеры, поддерживающие SNMP, не имеют задержки, а принтеры, не поддерживающие SNMP, имеют задержку.
Кажется, что cups после обновления пытается получить информацию с принтера по SNMP перед отправкой фактического задания на печать.
Сейчас ищу способ отключить эту функцию ... Попробую написать ответ, если найду решение.
Я должен упомянуть, что мы используем прямое / сокетное соединение с этими принтерами. я вижу RedHat сообщает об этой ошибке, но мне не разрешено его просматривать (БЖ №709896)
Не могу понять, как отключить SNMP-связь в Cups. : \
Потенциальный несвязанный ответ на ваш вопрос, но, безусловно, ответ на мой вопрос касался локального термопринтера USB - почему он вызывает задержку в 5 секунд между отпечатками.
Решение оказалось в том, что не все USB-принтеры должны быть настроены для двусторонней связи, как того хочет CUPS. Таким образом, настройка «причуды» для принтера в области чашек / usr / share / cups / usb для включения конкретного «идентификатора» принтера и установки таких флагов, как «unidir», «no-reattach», «soft-reset», казалось чтобы полностью решить проблему для меня. Надеюсь, любой, кто ищет ту же проблему, сможет сэкономить несколько часов на отладке в коде чашки, чтобы понять, что было очевидно, когда я ввел отладочный вывод, в котором говорилось, что он ждет завершения потока чтения USB (очевидно, 5 секунд).
У меня такой же опыт работы с user127222. Для некоторых принтеров, не поддерживающих протокол SNMP, задания на печать будут задерживаться на 4 секунды. После изучения этого кода в CUPS:
if ((ppd = ppdOpenFile(getenv("PPD"))) == NULL ||
((ppdattr = ppdFindAttr(ppd, "cupsSNMPSupplies", NULL)) != NULL &&
ppdattr->value && _cups_strcasecmp(ppdattr->value, "true")))
{
ppdClose(ppd);
return;
}
Я обнаружил, что могу отключить эти запросы SNMP, обновив файл PPD для этого принтера. С помощью:
*cupsSNMPSupplies: False
Ссылка: Расширения CUPS PPD
Я бы посоветовал посмотреть следующий пост в ubuntuforums, так как у них тоже есть проблемы со связью с принтером.
http://ubuntuforums.org/showthread.php?t=1101273
надеюсь, что это поможет, RayQuang