
Я почти полтора месяца пытался заставить работать этот принтер (за это время я даже успел перейти на сборку PinguyOS, обзор которой, возможно, скоро будет). И никаких успехов я не достиг в этом, но лишь до сегодняшнего дня. Пару дней назад я стал искать свежие мануалы по настройке этого принтера и сопоставив их, мне удалось сделать задуманное.
И теперь я хочу поделиться работающим решением с хабрасообществом. Я надеюсь, что эта информация окажется полезна.
Перед выполнением всех пунктов инструкции принтер лучше держать в выключенном состоянии.
Итак, первым пунктом я предлагаю воспользоваться скриптом по автоматической настройке (что, правда, у меня не заработало, однако это наиболее простой метод установить сами драйвера) принтера, который можно скачать тут.
Далее, распаковываем архив и запускаем имеющийся скрипт (вы должны находиться в терминале в той папке, в которой и лежит интересующий нас скрипт — canonLBP_install.sh) следующей командой (в терминале):
sudo ./canonLBP_install.sh LBP3010
Это установить все необходимые драйвера, а также некоторые дополнительные пакеты из числа зависимостей — очень удобно.
Далее идём в Система — Администрирование — Печать и удаляем там появившийся принтер, он нам больше не понадобится.
После этого запустим ещё одну команду в терминале:
sudo /usr/sbin/lpadmin -p LBP3010 -m CNCUPSLBP3050CAPTK.ppd -v ccp:/var/ccpd/fifo0
Это создаст новый принтер на основе pdd-файла, в котором, как я понял, описывается принцип работы с нашим LBP3010 (и, как видно из названия, с LBP3050). В результате этого действия в Система — Администрирование — Печать появится принтер с называнием LBP3010.
Теперь нам надо привязать этот принтер к usb. Для этого выполняем следующую команду в терминале:
sudo /usr/sbin/ccpdadmin -p LBP3010 -o /dev/usb/lp0
После этого в консоли должно быть написано нечто следующее:
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787
Entry Num : Spooler : Backend : FIFO path : Device Path : Status
----------------------------------------------------------------------------
[0] : LBP3010 : ccp : /var/ccpd/fifo0 : /dev/usb/lp0 : New!!
Всё, что осталось сделать — подправить скрипт ccpd, который является важным звеном в работе принтера. В очередной раз возвращаемся к терминалу:
sudo gedit /etc/init.d/ccpd
Этой командой мы открываем этот скрипт в дефолтном текстовом редакторе под root'ом. Удаляем из этого файла всё, что вы там видите и вставляем новый скрипт:
# startup script for Canon Printer Daemon for CUPS (ccpd)
### BEGIN INIT INFO
# Provides: ccpd
# Required-Start: $local_fs $remote_fs $syslog $network $named
# Should-Start: $ALL
# Required-Stop: $syslog $remote_fs
# Default-Start: 2 3
# Default-Stop: 0 1 4 5 6
# Description: Start Canon Printer Daemon for CUPS
### END INIT INFO
DAEMON=/usr/sbin/ccpd
LOCKFILE=/var/lock/subsys/ccpd
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=ccpd
DESC="Canon Printer Daemon for CUPS"
test -f $DAEMON || exit 0
. /lib/lsb/init-functions
case $1 in
start)
log_begin_msg "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --exec $DAEMON
log_end_msg $?
;;
stop)
log_begin_msg "Stopping $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
log_end_msg $?
;;
status)
echo "$DESC: $NAME:" `pidof $NAME`
;;
restart)
log_begin_msg "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --exec $DAEMON
log_end_msg $?
;;
*)
echo "Usage: ccpd {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Затем перезапускаем сервис принтера опять же из терминала:
sudo /etc/init.d/ccpd restart
В ответ в консоли вы должны увидеть:
* Restarting Canon Printer Daemon for CUPS: ccpd [ OK ]
Для того, чтобы принтер работал и после перезапуска системы, выполняем ещё одну команду:
sudo update-rc.d ccpd defaults 50
И вы должны получить в ответ следующее:
update-rc.d: warning: ccpd start runlevel arguments (2 3 4 5) do not match LSB Default-Start values (2 3)
update-rc.d: warning: ccpd stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (0 1 4 5 6)
Adding system startup for /etc/init.d/ccpd ...
/etc/rc0.d/K50ccpd -> ../init.d/ccpd
/etc/rc1.d/K50ccpd -> ../init.d/ccpd
/etc/rc6.d/K50ccpd -> ../init.d/ccpd
/etc/rc2.d/S50ccpd -> ../init.d/ccpd
/etc/rc3.d/S50ccpd -> ../init.d/ccpd
/etc/rc4.d/S50ccpd -> ../init.d/ccpd
/etc/rc5.d/S50ccpd -> ../init.d/ccpd
Теперь можем включить принтер (я уверен, вы ждали этого момента ;) )
В системе появится ещё один принтер под названием Canon LBP3010/LBP3018/LBP3050, который система выставит как принтер по умолчанию, что нам совершенно не надо.
Надо указать системе, чтобы она использовала по умолчанию принтер который мы с вами создали — то есть LBP3010, а этот новый принтер лично я оставил, на всякий случай. Если удалите и у вас всё будет работать — прошу отписаться в комментах.
В свойствах этого принтера на вкладке Политика ставим галочки напротив приём заданий, разрешён и общий доступ.
Можете распечатывать тестовую страницу :)
В статье были использованы материалы:
help.ubuntu.com/community/CanonCaptDrv190
forum.ubuntu.ru/index.php?topic=94290.0
и ещё куча всего, что в той или иной степени оказалось полезно.