Kyocera FS-1100, CUPS и статус печати

Всё о принтерах, сканерах и многофункциональных устройствах. Подключение, настройка, проблемы.

Модератор: Модераторы разделов

Аватара пользователя
minoru-kun
Сообщения: 621
ОС: Debian GNU/Linux

Kyocera FS-1100, CUPS и статус печати

Сообщение minoru-kun »

Имеется: принтер Kyocera FS-1100 обслуживаемый CUPS (модели 1.3.8).
Принтер довольно неплохо работает вместе с CUPS, но однако, получить статус работы или ошибку, в случае, если печать по каким-то причинам происходит (к примеру - отсутствие бумаги), не представляется возможным. Вместо этого, любая вышедшая на печать работа тот час же считается завершенной. С другими принтерами (как, например, с моим HP Desjket 1100) такой проблемы не наблюдается. В чем же состоит типовое решение проблемы? :)

В коде CUPS, однако, есть фрагмент, отвечающий за загрузку задания на печать в принтер и, вроде как, способный отлавливать подобные ошибки.

Код:

/* * backend/runloop.c... */ if (print_bytes && FD_ISSET(device_fd, &output)) { if ((bytes = write(device_fd, print_ptr, print_bytes)) < 0) { /* * Write error - bail if we don't see an error we can retry... */ if (errno == ENOSPC) { if (paperout != 1) { fputs("STATE: +media-empty-error\n", stderr); _cupsLangPuts(stderr, _("ERROR: Out of paper!\n")); paperout = 1; } } else if (errno == ENXIO) { if (offline != 1) { fputs("STATE: +offline-error\n", stderr); _cupsLangPuts(stderr, _("INFO: Printer is currently off-line.\n")); offline = 1; } } else if (errno != EAGAIN && errno != EINTR && errno != ENOTTY) { fprintf(stderr, _("ERROR: Unable to write print data: %s\n"), strerror(errno)); return (-1); } } else { if (paperout) { fputs("STATE: -media-empty-error\n", stderr); paperout = 0; } if (offline) { fputs("STATE: -offline-error\n", stderr); _cupsLangPuts(stderr, _("INFO: Printer is now on-line.\n")); offline = 0; } fprintf(stderr, "DEBUG: Wrote %d bytes of print data...\n", (int)bytes); print_bytes -= bytes; print_ptr += bytes; total_bytes += bytes; }

однако, вызов FD_ISSET в условии всегда возвращает 0, показывая, что никакой обратной информации от принтера не приходит. Аналогичная ситуация проявляется и во многих остальных частях кода. Такое ощущение, что к принтеру надо как-то... по-особому обращаться, чтобы заставить его говорить. Как-то так же... как виндовый драйвер.

Интересно так же, встречаются ли такие проблемы с другими принтерами, и как они решаются (и решаются ли линуксоидами вообще?) в таких ситуациях.
Спасибо сказали:
jura12
Сообщения: 275
ОС: ubuntu 11.04

Re: Kyocera FS-1100, CUPS и статус печати

Сообщение jura12 »

я бы ориентировался на эту информацию http://openprinting.org/show_printer.cgi?r...Kyocera-FS-1100
Спасибо сказали: