Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode

Принтер Canon LBP 3200 в Ubuntu

К великому моему сожалению, принтер Canon LBP 3200 не заработал в Ubuntu 9.10 “из коробки”.

Драйверов для него в стандартной поставке нет. Просто скачать и установить драйвер тоже сразу не получилось. Поэтому я решил поискать ответ в интернете.

Мне удалось найти две адекватные ссылки:

Собственно, моя инструкция полностью написана, руководствуясь этими ссылками. К сожалению, обе они по отдельности результата не дали.

Все, что написано ниже, у меня дало положительный результат.

Инструкция для Ubuntu 9.10

Открываем терминал:

sudo su

Удаляем:

  • libcupsys2 и libstdc++5:
/usr/sbin/ccpdadmin -x LBP3200
sudo /usr/sbin/lpadmin -x LBP320
sudo dpkg -P cndrvcups-capt
sudo dpkg -P cndrvcups-common

Далее скачиваем и устанавливаем libcupsys2 и libstdc++5:

Далее надо скачать драйвер принтера:

sudo su
cd /tmp
wget http://files.canon-europe.com/files/soft31118/software/CAPTDRV180.tar.gz
tar -xzf CAPTDRV180.tar.gz
cd ./CANON_UK/Driver/Debian
dpkg -i cndrvcups-common_1.80-1_i386.deb
dpkg -i cndrvcups-capt_1.80-1_i386.deb

Далее надо отредактировать файл /etc/ccpd.conf:

sudo gedit /etc/ccpd.conf

Меняем строки:

#<Printer  LBP3200>
#DevicePath /dev/usb/lp0
#</Printer>

на

<Printer  LBP3200>
DevicePath /dev/usblp0
</Printer>

Перегружаем сервер печати:

sudo /etc/init.d/cups restart
sudo /etc/init.d/ccpd stop && sudo /etc/init.d/ccpd start

Регистрируем принтер в ccpd:

sudo /usr/sbin/ccpdadmin -p LBP3200 -o /dev/usblp0
sudo /etc/init.d/ccpd stop && sudo /etc/init.d/ccpd start

Окно статуса принтера можно открыть так:

captstatusui -P LBP3200

UPDATE

Поставил Linux Mint 16 64bit (~ Ubuntu 13.10), и в нем моя инструкция, конечно, не подходит.

Пришлось проходить этот квест заново. К счастью, Canon выпустил новые драйверы, что немного облегчает задачу.

Итак, имеем названную систему.

  1. Скачиваем и устанавливаем deb-пакеты с драйверами от производителя.

  2. Подключаем и включаем принтер. Смотрим, на какой usb-порт он подключился (у меня /dev/usb/lp1). Смотреть нужно тут: /dev/usb

  3. Правим /etc/ccpd.conf:

    sudo gedit /etc/ccpd.conf
    

    Меняем строки:

    #<Printer  LBP3200>
    #DevicePath /dev/usb/lp0
    #</Printer>
    

    на

    <Printer  LBP3200>
    DevicePath /dev/usb/lp1
    </Printer>
    
  4. Добавляем принтер (в архиве с драйверами есть README, можно посмотреть откуда взялись эти строки и на что их менять, если принтер отличается):

    sudo /usr/sbin/lpadmin -p LBP3200 -P /usr/share/cups/model/CNCUPSLBP3200CAPTK.ppd -v ccp://localhost:59687 -E
    sudo /usr/sbin/lpadmin -p LBP3200 -m CNCUPSLBP3200CAPTK.ppd -v ccp://localhost:59787 -E
    sudo /usr/sbin/ccpdadmin -p LBP3200 -o /dev/usb/lp1
    
  5. Перегружаем сервер печати (см. выше)

  6. Печатаем пробную страницу.

Все!


PS

Что еще обнаружилось:

  • Нужно добавить /etc/init.d/ccpd в автозагрузку:

    update-rc.d ccpd defaults 20;
    

    Причем, даже после добавления в автозагрузку, нужно перезагружать ccpd. Поэтому еще нужно в /etc/rc.local перед exit 0 добавить:

    /etc/init.d/ccpd restart
    
  • Кроме того выяснилось, что в зависимости от того, был ли подключен включенный принтер до загрузки системы или нет, принтеру назначаются разные файлы устройства. Если включен после загрузки ОС, то /dev/usb/lp1, если до — то /dev/usb/lp0.

Чтобы преодолеть эту неприятность, я изобрел следующий костыль:

В /etc/init.d/ccpd в начало секций ccpd_start() и ccpd_stop() (только ccpd_start недостаточно) добавил следующий блок:

###############################
# Fix гуляние портов
if [ -e /dev/usb/lp0 ]; then
    echo "Exist /dev/usb/lp0"
    if [ ! -e /dev/usb/lp1 ]; then
        echo "NOT exist /dev/usb/lp1"
        echo "ln -s /dev/usb/lp0 /dev/usb/lp1"
        ln -s /dev/usb/lp0 /dev/usb/lp1
    fi
fi
###############################

Этот блок создает символическую ссылку в случаях, когда система загружается с уже включенным принтером.