суботу, 6 жовтня 2007 р.

Підключаємо принтер Canon LBP-810 (LBP-1120) в Ubuntu

Всім хороший лазерний принтер Canon LBP-810 та його новіший варіант 1120, крім одного - це класичний Win-принтер. Донедавна ним можна було користуватися лише в операційній системі Windows. Ситуація дещо змінилася, коли у 2004 році з'явився неофіційний драйвер (http://www.boichat.ch/nicolas/capt/), проте він не вирішував всіх проблем. Зараз же на офіційному сайті Canon можна знайти офіційний драйвер до LBP-1120, проте у версії лише для rpm-based дистрибутивів (SuSE, RHEL, Fedora, TurboLinux). У даній статті я опишу як можна змусити працювати цей драйвер в Ubuntu.

1. Йдемо на http://software.canon-europe.com/ і завантажуємо звідти архів з драйвером для LBP-1120, після його розпаковки ми отримаємо два файли: cndrvcups-capt-1.30-1.i386.rpm та cndrvcups-common-1.30-1.i386.rpm.
2. Для того щоб зконвертувати rpm пакети у формат deb нам знадобиться утиліта alien, якщо у вас її не встановлено, то потрібно виконати
sudo apt-get install alien

3. Безпосередньо конвертуємо наші пакети у формат deb:
sudo alien *.rpm

4. Тепер встановлюємо отримані пакети звичайним чином, просто клацаючи по них мишкою.
5. Перезавантажуємо систему друку CUPS:

sudo /etc/init.d/cupsys stop
sudo /etc/init.d/cupsys start


6. Створюємо необхідні каталоги для демону ccpd та монітору captmon:

sudo mkdir /var/ccpd
sudo mkdir /var/captmon
sudo mkfifo /var/ccpd/fifo0
sudo chmod 777 /var/ccpd/fifo0


7. Заходимо у Система -> Адміністрування -> Printing і додаємо новий принтер, на другому кроці встановлюємо драйвер з файлу /usr/share/cups/model/CNCUPSLBP1120CAPTJ.ppd і вказуємо модель принтеру LBP-1120 CAPT ver.1.3



8. Налаштовуємо ccpd для роботи з нашим принтером:
sudo /usr/sbin/ccpdadmin -p LBP1120-CAPT-ver.1.3 -o /dev/usblp0

Результатом буде щось подібне:

CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 39787

Entry Num : Spooler : Backend : FIFO path : Device Path : Status
----------------------------------------------------------------------------
[0] : LBP1120-CAPT-ver.1.3 : usb : //Canon/LBP-810 : /dev/usblp0 : New!!


9. Тепер нам потрібно відредагувати скрипт /etc/init.d/ccpd таким чином щоб він був сумісний з Ubuntu/Debian. Для цього набираємо
sudo gedit /etc/init.d/ccpd
і змінюємо вміст файлу на наступний:

#!/bin/sh
#
# ccpdstartup script for Canon Printer Daemon for CUPS
#
#Modified for Debian GNU/Linux
#by Raphael Doursenaud .

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

case $1 in
start)
echo -n "Starting $DESC: $NAME"
start-stop-daemon --start --quiet --exec $DAEMON
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
echo "."
;;
status)
echo "$DESC: $NAME:" `pidof $NAME`
;;
restart)
echo -n "Restarting $DESC: $NAME"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --exec $DAEMON
echo "."
;;
*)
echo "Usage: ccpd {start|stop|status}"
exit 1
;;
esac

exit 0


Тестуємо наш новий скрипт:
sudo /etc/init.d/ccpd start

Тепер наш принтер вже повинен бути робочим. Щоб запустити монітор CAPT потрібно виконати команду
sudo captstatusui -P LBP1120-CAPT-ver.1.3

де LBP1120-CAPT-ver.1.3 - це ім'я принтеру, у вашому випадку може відрізнятися.



Якщо монітор напише помилку Cannot open FIFO спробуйте перезапустити /etc/init.d/ccpd, а також виключити і включити принтер.

Демон ccpd повинен запускатися автоматично при кожному завантаженні комп'ютеру, інакше принтер працювати не буде. Щоб вирішити цю проблему скористаємося допомогою програми Boot-Up Manager (BUM). Встановлюється вона дуже просто:
sudo apt-get install bum

Тепер через Система -> Адміністрування -> Boot-Up Manager запускаємо його і відмічаємо Canon CAPT Printer Driver for Linux v1.30. Тепер при наступному запуску системи демон ccpd буде запускатися автоматично.



Все, тепер ви можете повноцінно використовувати свій Canon LBP-810 в Ubuntu.

Англомовна стаття яка допомогла мені проробити вищезгадану роботу розміщена тут:
http://v0xel.wordpress.com/2006/05/23/canoon-lbp-1120-on-ubuntu-510-how-to/

PS: У новій версії Ubuntu 7.10 (Gutsy Gibbon) не лише змінено серйозно модифіковано систему друку, але ще й додано систему AppArmor яка у даному випадку може ускладнити встановлення драйверів. Власне у 7.10 після всього вищезгаданого потрібно ще виконати наступну команду:
sudo aa-complain cupsd

Крім того, принтер тепер асоціюється не з /dev/usblp0, а /dev/usb/lp0, тобто так я і у більшості інших дистрибутивів.

PS2: З Ubuntu Hardy проблема встановлення драйверу ще спрощується. З недавніх пір, на вищеназваному сайті з драйверами, Canon тепер викладає драйвери для своїх лазерних принтерів не лише у пакетах rpm але й deb. Таким чином відпадає необхідність у їх конвертуванні, а також правці скриптів.

Немає коментарів:

Дописати коментар