Почему при печати на Ubuntu Server 10.04 задерживается 10 секунд?
Я видел тонны постов, задающих эти и подобные вопросы на разных форумах, но, похоже, никто не может найти решение.
Основная проблема выглядит следующим образом:
Печать работала нормально в [Вставить старую версию дистрибутива Linux], но после обновления до [Более новой версии дистрибутива Linux] теперь есть [5,10,15] секундная задержка между отправкой файла в очередь на печать и когда принтер фактически начинает печатать.
В моем конкретном случае печать началась сразу в Ubuntu 8.04, но после обновления до 10.04 задержка составляет 10 секунд. Я делаю это на Ubuntu Server, печатая с помощью команды 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. Но есть еще задержка.
Есть идеи, что может быть причиной этого? Или способ решить проблему, чтобы выяснить, что ее вызывает?
ОБНОВЛЕНИЕ: я установил loglevel для отладки и получил около 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) вышел без ошибок. D [28/Nov/2010:14:44:24 -0500] [Job 3071] Написали 8192 байта данных для печати... D [28/Nov/2010:14:44:24 -0500] [Job 3071] Считать 8192 байта данных печати... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Печать страницы 1, 57% выполнено... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Печать страницы 1, 59% выполнено... D [28 / нояб. 2010: 14: 44: 24 -0500] Отбрасывание неиспользованного события выполнения задания... D [28 / Nov / 2010: 14: 44: 24 -0500] Отмена неиспользованного события изменения состояния принтера... I [28/Nov/2010:14:44:24 -0500] [Job 3071] Печать страницы 1, 60% выполнено...
Который повторяется до:
I [28/Nov/2010:14:44:26 -0500] [Job 3071] Печать страницы 1, 99% завершено... D [28 / нояб. 2010:14:44:26 -0500] Отбрасывание неиспользованного события выполнения задания... D [28/Nov/2010:14:44:26 -0500] Отмена неиспользованного события изменения состояния принтера... Я [28/Nov/2010:14:44:26 -0500] [Job 3071] Готов к печати.
Тогда это продолжается:
D [28/Nov/2010:14:44:26 -0500] [Job 3071] Написал 8192 байта данных для печати... D [28/Nov/2010:14:44:26 -0500] [Job 3071] Считать 8192 байта данных печати...
Снова и снова, пока:
D [28 / Nov / 2010: 14: 44: 29 -0500] [Job 3071] Считать 3361 байт данных печати... D [28/Nov/2010:14:44:29 -0500] [Job 3071] Написал 3361 байт данных для печати... I [28/Nov/2010:14:44:29 -0500] [Job 3071] Файл печати отправлен, ожидая завершения печати...
В какой момент принтер фактически начинает выводить данные. Целых 10 секунд спустя.
5 ответов
Я испытываю некоторые из того же. Я не уверен, что это та же проблема, что и у вас, но мы убедились, что с чековыми принтерами у некоторых из них внезапно появилась задержка печати 4 секунды, а у других сразу.
Это было после обновления кубков (Slackware linux).
После многих отладок мы обнаружили, что принтеры, поддерживающие SNMP, не имеют задержки, в то время как принтеры, не поддерживающие SNMP, имеют задержку.
Похоже, что чашки после обновления пытаются извлечь информацию с принтера по протоколу SNMP перед отправкой фактического задания на печать.
Сейчас я ищу способ отключить эту функцию... Попробую ответить, если найду решение.
Я должен упомянуть, что мы используем соединение raw / socket с этими принтерами. Я вижу, что в RedHat есть сообщение об этом, но мне не разрешено его просматривать (БЖ #709896)
Я действительно не могу узнать, как я могу отключить SNMP-связь в Кубках.:\
Потенциальный несвязанный ответ на ваш вопрос, но, безусловно, был ответом на мой вопрос, касался локального 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
Используя USB-принтер POS, я решил проблему следующим образом:
Остановить подачу чашек
service cups stop
Отредактируйте файл printers.conf.
sudo nano /etc/cups/printers.conf
выделите свой принтер и добавьте в последнюю строку желаемой конфигурации принтера следующую строку:
Option usb-unidir true
Перезапустить службу чашек
service cups restart