Як примусити працювати в Лінуксі принтер Canon LBP 2900
Японська компанія Canon славиться якістю своєї техніки, але сумно відома неувагою до систем FOSS, для яких вона не надає гідної підтримки. Довгий час ентузіастам доводилося самим писати драйвери для принтерів, сканерів, фотоапаратів та інших пристроїв, на яких стоїть гравірування «Canon». І якщо, приміром, із фотоапаратами все давно доволі непогано (принаймні, digikam доволі добре з ними працює), то з принтерами — біда. Досі мені не вдавалося "завести" під Лінуксом жоден кенонівський принтер.
І ось зараз вдома опинився простенький лазерний чорно-білий принтер Canon LBP 2900 китайської збірки. Пристрій робочий і з не використаним до кінця картриджем, тож постала задача примусити його працювати. І це мені врешті-решт вдалося, хоча й не з першої спроби.
Як виявилося, для LBP 2900 є навіть офіційні драйвери під Лінукс. Тож послідовність встановлення починається з відвідання європейського сайту Canon-а.
0. Отже, йдемо на canon-europe.com, вводимо там в пошук модель нашого принтера, і, після двох переходів опиняємося (можливо, не одразу, бо сайт часто серйозно "гальмує") на сторінці, де слід вибрати операційну систему і мову. В моєму випадку після вибору 64-бітного Лінукса та англійської мови сторінка набула вигляду
http://www.canon-europe.com/support/consumer_products/products/printers/...
і перше ж посилання на ній:
дозволило завантажити драйвер у вигляді архіва (121,6 MB).
1. В завантаженому архіві є бінарні драйвери як для 32-бітних систем, так і для 64-бітних (тому навіщо потрібні два окремі пункти вибору на сайті Canon-а, не зовсім зрозуміло), а також їхні джерельні тексти та документація у форматі HTML. Для встановлення драйвера й приведення принтера в робочий стан слід покроково виконати описану в документації процедуру. Однак, там немає деяких нюансів — тому я й написав цей допис.
Архів із драйверами слід покласти в будь-який зручний для вас каталог, розархівувати (особисто я для цього відкрив каталог із ним у Konqueror-і, клацнув на архіві правою кнопкою миші (правий клац) і вибрав пункт зринного меню «Розпакувати —> Розпакувати сюди»), після чого знайти підкаталог з годящою версією драйверів. Якщо ви чомусь не впевнені, яка бітність у системи, на якій ви саме чаклуєте із встановленням драйвера, виконайте в командному рядку команду
$ uname -m
Надалі нам потрібно буде виконати цілий ряд команд, частина з яких потребуватиме прав суперкористувача (рута), тому найкраще буде одразу запустити емулятор термінала і перейти в ньому в каталог, де лежить розархівований каталог з драйверами від Canon-а (для мене найпростіше в цьому разі — натиснути в Konqueror-і клавішу F12 на клавіатурі, але нерідко я запускаю окрему програму Konsole), після чого одразу ж отримати права рута, виконавши команду
$ su -
і ввівши пароль рута. Якщо ж кому не хочеться цього робити, доведеться писати перед доброю половиною команд: «sudo» або «su -c». Обирайте самі, що вам зручніше. Я ж про всяк випадок писатиму далі, як це заведено, перед командами, які не потребують прав рута, «$», а перед тими, що можуть виконуватися тільки з-під рута — «#».
2. Перш ніж будь-що встановлювати, слід приєднати принтер до комп’ютера і ввімкнути його живлення, після чого переконатися, що в системі запущена служба друку cups. В openSUSE — дистрибутиві Лінукса, яким я користуюся — як і в багатьох інших дистрибутивах, давно перейшли на систему ініціалізації systemd, тож я описуватиму команди роботи з сервісами саме для випадку systemd. Отже, перевіряємо стан cups:
$ systemctl status cups.service
Якщо служба не активна, її слід запустити:
$ systemctl start cups.service
Дивимося у вивід, і бачимо там виділені зеленим слова «active (running)». Отже, тепер все нормально.
3. Почнемо встановлення. Оскільки для деяких випадків може виявитися потрібною бібліотека libstdc++33, її варто встановити. В openSUSE її може не виявитися у підключених вами репозиторіях програм. Якщо так, то слід зайти на інтернет-сторінку software.opensuse.org і встановити бібліотеку звідти. Найпростіше зробити це, вибравши встановлення в один клац (1-click install).
Всі ж інші програми ми встановлюватимемо з командного рядка, бо так значно швидше й простіше. В openSUSE я рекомендую використовувати не rpm, а zypper, оскільки спільний модуль для потрібного нам драйвера потребує деяких програм, які можуть у вас і не бути встановленими. rpm в цьому разі просто припинить встановлення, а zypper знайде потрібні програми і запропонує їх встановити за один раз. Перевірити за допомогою zypper, чи встановлена у вас яка-небудь програма, можна командою
$ zypper info <точна назва програми>
або
$ zypper se <початок назви програми>
Встановлюємо ми програми, виконуючи команду
# zypper in <точна назва програми>
4. Тепер слід встановити спершу спільний модуль для драйвера принтера — у мене це було так:
# zypper in cndrvcups-common-3.20-1.x86_64.rpm
а вже після цього — сам драйвер:
# zypper in cndrvcups-capt-2.70-1.x86_64.rpm
причому встановлення драйвера потягнуло за собою деякі залежності, які zypper успішно розв’язав.
5. Після встановлення драйвера слід перезавантажити службу cups:
# systemctl restart cups.service
6. Далі, для роботи принтера потрібно, щоб у пам’яті комп’ютера був завантажений модуль ядра usblp. Перевіряємо, чи це так:
# lsmod | grep usblp
Якщо вивід порожній, то потрібного модуля у пам’яті немає (у мене було саме так), отже, його слід запустити:
# modprobe usblp
7. Тепер зареєструємо встановлений драйвер у системі:
# /usr/sbin/lpadmin -p LBP2900 -m CNCUPSLBP2900CAPTK.ppd -v ccp://localhost:59687 -E
і "прив’яжемо" його до конкретного пристрою:
# /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp0
Остання команда має шлях, який залежить від дистрибутива (про що пишуть в офіційній інструкції із встановлення), а результат цієї команди — від того, чи завантажено у пам’ять модуль usblp (про що в інструкції нічого не сказано). У мене спершу цей модуль не був завантажений, в результаті чого пристрій /dev/usb/lp0 просто не існував як файл в каталозі /dev, відтак виконання останньої наведеної команди нічого не давало, і принтер не працював. Коли ж я завантажив його командою modprobe, а вже тоді виконав останню з наведених вище команд, то побачив у виводі
CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787Entry Num : Spooler : Backend : FIFO path : Device Path : Status
----------------------------------------------------------------------------
[0] : LBP2900 : ccp : //localhost:59687 : /dev/usb/lp0 : Modified
що показувало, що принтер тепер напевне "приписаний" до пристрою /dev/usb/lp0.
8. Після проведених маніпуляцій потрібно запустити службу ccpd, якщо вона не запущена:
# systemctl start ccpd.service
9. Все. Після цього принтер працює. Якщо ж вам цього недостатньо, зайдіть у YaST, виберіть там у розділі «Обладнання» пункт «Принтер» і переконайтеся, що ваш Canon там зареєстрований. Якщо ні, натисніть внизу кнопку «Додати», після чого YaST сам розпізнає принтер і підбере потрібний драйвер, а вам залишатиметься тільки погодитися зі зробленим вибором.
- блоґ campana
- Щоб додати коментар, увійдіть