[Comm] Canon LBP 2900 - чего не хватает?
Денис Черносов
=?iso-8859-1?q?denis0=2Eru_=CE=C1_gmail=2Ecom?=
Пт Ноя 7 09:18:50 MSK 2008
7 ноября 2008 г. 0:16 пользователь Michael Shigorin <mike на osdn.org.ua>написал:
> On Thu, Nov 06, 2008 at 10:50:36AM +0400, Денис Черносов wrote:
> > Сегодня звонили врачи, жаловались, что снова пропал принтер и
> > перезагрузка не помогает.
>
> Скорее всего, что-то застряло в спуле. sudo cancel -a
Вот именно эту команду не пытался применять...
И вообще проблема оказалась еще аховее... Постараюсь описать по порядку:
1) Компьютер после перезагрузки печатает документ (возможно документы) из
спула. Но при заходе что либо печатать отказывается из любой программы.
Опять перезагрузка, опять печать из спула и опять отказ.
2) Я лезу в логи - ничего подозрительного. Смотрю состояние сервисов: ccpd
"неживой, но lock-файл не удален". Впоследствии вычислил, что он ведет себя
так, если пытаться его рестартануть при запущенном cups.
3) Читаю инструкции к скрипту установки принтера, нахожу опции для удаления.
На всякий случай:
#./setup.sh remove
#./setup.sh LPB2900
Симптомы остаются... Долго сказка сказывается...
Выводы:
При печати документа запускается с кучей опций процесс captfilter и/или
captmon2 (или captmon+ещечегото, в зависимости от модели принтера). По
какой-то неясной причине, этот процесс не завершается правильно, а
монопольно овладевает устройством и висит. Даже после завершения того
приложения, которое заказало печать. "Кто первый встал, того и тапки". Что
интересно, даже печать из спула при загрузке считается за попытку. Простое
прибивание процессов не помогает - в осадок с неубитым lock-файлом
вываливается ccpd. Пока написал жуткий костыль, чтобы они хотя бы могли
после каждого документа рестартануть всю систему (требует пароль
администратора, но можно и через sudo, наверное переписать).
#!/bin/sh
#clear restart all services for canon LPB2900 printer
/sbin/service cups stop
/sbin/service ccpd stop
rm -f /var/lock/subsys/ccpd
sleep 3
killall captfilter captmon2 ccpd cupsd
/sbin/rmmod usblp
sleep 3
/sbin/modprobe usblp
sleep 3
/sbin/service ccpd start
/sbin/service cups start
Но это, разумеется, не езда. Есть смутная надежда, что дело можно
кардинально поправить несколькими простыми шаманскими па (права на файл,
сборка из сырцов в хэшере под наш бранч и т.п.).
Кстати, почитал лицензию на драйверы
http://software.canon-europe.com/files/soft28622/readme/LICENSE-captdrv-1.60E.txtи
не понял, что мешает добавлять их в дистрибутив? Вроде бы достаточно
свободная лицензия а некоторые компоненты драйверов и вовсе GPL2... Или хотя
бы в вашей же папке
http://fly.osdn.org.ua/~mike/packages<http://fly.osdn.org.ua/%7Emike/packages/lprestart/>сложить,
для начала - ей богу, самый прямой путь.
Возвращаясь к нашим баранам... я на всякий случай качнул оттуда /etc и
/var/log. Если для проверки гипотез чего-то понадобиться, говорите - выложу.
> Нет, надо выписывать sudo или suid-ную обёртку. Последнее
> и сделано (в меру моей некомпетентности) в пакете lprestart.
>
Скачал, буду изучать.
Тогда может пригодиться ходить на одну винду RDP/VNC...
>
Комп один. И вся задумка в экономии бедным врачам (которые и так скинулись
со своих на комп, монитор и принтер - это не служебное железо!) на покупке
лицензии на Windows и MS Office. Даже если поставить винду в виртуальную
машину, лицензионной чистоты это не добавит - только геморроя больше станет.
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/community/attachments/20081107/4758b88b/attachment.html>
Подробная информация о списке рассылки community