Подключение принтера к компьютеру под управлением Linux часто вызывает затруднения даже у опытных пользователей. В отличие от Windows или macOS, где драйвера устанавливаются автоматически, в дистрибутивах на базе Linux этот процесс может потребовать ручных действий. Основная проблема заключается в разнообразии принтеров и отсутствии универсальных решений: драйвера для Canon, HP или Brother устанавливаются по-разному, а некоторые модели вообще не имеют официальной поддержки.

В этой статье мы разберём все возможные способы установки драйверов — от автоматического определения устройства до ручной компиляции проприетарных пакетов. Вы узнаете, как проверить совместимость принтера с Linux, где скачать актуальные драйвера, и что делать, если система не видит устройство. Особое внимание уделим типичным ошибкам, таким как отсутствие поддержки CUPS или конфликты с sane-backends.

Материал будет полезен как новичкам, которые впервые подключают принтер к Ubuntu или Mint, так и опытным пользователям, столкнувшимся с редкими моделями или специфическими проблемами. Все инструкции протестированы на актуальных версиях дистрибутивов (2023–2026 гг.) и охватывают как USB-, так и сетевые подключения.

1. Проверка совместимости принтера с Linux

Прежде чем приступать к установке драйверов, необходимо убедиться, что ваша модель принтера поддерживается в Linux. Даже если производитель официально не выпускает драйвера для Linux, устройство может работать через открытые альтернативы.

Основные источники информации о совместимости:

  • 🔍 База данных OpenPrinting — самый полный каталог принтеров с указанием уровня поддержки (openprinting.org/printers). Ищите свою модель и смотрите статус: Perfectly (полная поддержка), Mostly (частичная) или Partially (ограниченная).
  • 📄 Официальные страницы производителей. Компании HP, Brother и Epson часто предоставляют Linux-драйвера, а Canon и Xerox — реже. Проверьте раздел поддержки на сайте бренда.
  • 💬 Форумы и wiki. Архив Ubuntu Wiki (wiki.ubuntu.com) и темы на Ask Ubuntu или Linux Mint Forums содержат опыт других пользователей с конкретными моделями.

Если ваш принтер отмечен как Paperweight (неработающий) или отсутствует в базах, это не приговор. Возможно, его поддерживает универсальный драйвер foo2zjs (для лазерных принтеров) или gutenprint (для струйных). Для старых моделей HP подойдёт hplip, а для Brother — фирменные пакеты .deb/.rpm.

⚠️ Внимание: Производители могут менять политику поддержки Linux. Например, Canon в 2023 году перестал обновлять драйвера для ряда струйных принтеров, а HP перенёс часть пакетов в репозитории дистрибутивов. Всегда сверяйте информацию на официальных ресурсах.
Производитель Тип принтера Рекомендуемый драйвер Уровень поддержки
HP Лазерный/струйный hplip ⭐⭐⭐⭐⭐
Brother Лазерный Фирменные .deb/.rpm ⭐⭐⭐⭐
Canon Струйный cnijfilter или gutenprint ⭐⭐⭐
Epson Струйный/сублимационный epson-inkjet-printer-escpr ⭐⭐⭐⭐
Samsung/Xerox Лазерный splix или foo2zjs ⭐⭐⭐
📊 Какой принтер вы подключаете?
HP
Canon
Brother
Epson
Samsung/Xerox
Другой

2. Автоматическая установка драйверов через CUPS

CUPS (Common Unix Printing System) — стандартная подсистема печати в Linux, которая во многих случаях может автоматически определить и настроить принтер. Если ваше устройство поддерживается открытыми драйверами, этот метод сработает без дополнительных действий.

Инструкция по настройке:

  1. Откройте веб-интерфейс CUPS, перейдя в браузере по адресу http://localhost:631. Если страница не открывается, запустите службу командой:
    sudo systemctl start cups
  2. Перейдите в раздел Administration → Add Printer. Введите имя пользователя и пароль (обычно это данные вашей учётной записи в системе).
  3. Выберите ваш принтер из списка обнаруженных устройств. Если он подключён по USB, но не отображается, проверьте подключение и права доступа (см. раздел 4).
  4. На этапе выбора драйвера CUPS предложит несколько вариантов. Для большинства моделей HP подойдёт HP LaserJet... или HP Officejet.... Для других брендов ищите драйвер с пометкой recommended.
  5. Завершите настройку, указав имя принтера, расположение и параметры по умолчанию (например, формат бумаги A4).

Если CUPS не находит драйвер автоматически, попробуйте вручную указать PPD-файл (PostScript Printer Description). Многие производители предоставляют такие файлы на своих сайтах. Например, для принтеров Brother PPD можно скачать в архиве с драйверами.

💡

Если после установки принтер печатает пустые листы или иероглифы, проверьте кодировку в настройках CUPS. Для кириллицы выберите UTF-8 и отключите опцию "Use printer language for text".

3. Ручная установка драйверов от производителя

Если автоматическая настройка не сработала, придётся устанавливать драйвера вручную. Процесс зависит от производителя и формата пакетов (.deb, .rpm, .tar.gz). Рассмотрим наиболее распространённые случаи.

3.1. Установка драйверов HP (hplip)

Для принтеров HP существует универсальный пакет hplip, который поддерживает большинство моделей. В большинстве дистрибутивов он доступен из стандартных репозиториев:

# Для Debian/Ubuntu:

sudo apt update && sudo apt install hplip hplip-gui

Для Fedora/RHEL:

sudo dnf install hplip hplip-gui

Для Arch Linux:

sudo pacman -S hplip

После установки запустите утилиту настройки:

hp-setup

и следуйте инструкциям на экране. Если ваша модель требует проприетарного плагина, система предложит скачать его автоматически.

3.2. Драйвера Brother: официальные пакеты

Brother предоставляет драйвера для Linux в виде готовых пакетов. Скачайте их с официального сайта, выбрав свою модель. Например, для Brother DCP-L2550DW потребуются два пакета: LPR (для печати) и CUPSwrapper (для интеграции с системой).

Установка для .deb-систем (Ubuntu, Mint):

sudo dpkg -i --force-all brgenml1lprdriver-*.deb

sudo dpkg -i --force-all brgenml1cupswrapper-*.deb

Для .rpm-систем (Fedora, openSUSE):

sudo rpm -ivh brgenml1lprdriver-*.rpm

sudo rpm -ivh brgenml1cupswrapper-*.rpm

После установки перезапустите CUPS:

sudo systemctl restart cups

3.3. Canon: проблемы и решения

Принтеры Canon часто вызывают сложности из-за отсутствия официальных драйверов для новых моделей. Для струйных принтеров серии PIXMA используйте пакет cnijfilter:

# Для 32-битных систем:

wget https://gdlp01.c-wss.com/gds/7/0100006377/01/cnijfilter2-5.60-1-deb.tar.gz

tar -xvf cnijfilter2-*.tar.gz

cd cnijfilter2-*/packages

sudo dpkg -i *.deb

Для 64-битных систем:

Используйте пакеты из репозитория или ищите альтернативы в gutenprint

Если официальных драйверов нет, попробуйте универсальный gutenprint:

sudo apt install printer-driver-gutenprint
Для принтеров Canon MG3600 и новее может потребоваться патч для cnijfilter, так как производитель изменил протокол взаимодействия. Актуализированные версии ищите на GitHub (например, репозиторий michaelrsweet/cnijfilter2).

Скачать официальные драйвера с сайта производителя

Проверьте разрядность системы (32/64 бит)

Установите зависимости (libcups2, libusb)

Отключите принтер от USB (если подключён)

Перезагрузите службу CUPS после установки-->

4. Решение проблем с подключением по USB

Если принтер не определяется при подключении по USB, проблема может крыться в правах доступа, отсутствии модулей ядра или конфликтах с другими устройствами. Вот типичные шаги для диагностики:

Проверка подключения:

  • 🔌 Убедитесь, что кабель исправен и подключён к порту USB 2.0 (некоторые принтеры не работают с USB 3.0).
  • 🖥️ Выполните команду lsusb в терминале. Если принтер не отображается в списке, проблема в физическом подключении или питании.
  • 📋 Проверьте логи ядра на ошибки:
    dmesg | grep -i usb

    Ищите строки с printer или unable to enumerate.

Настройка прав доступа:

Часто принтер не доступен обычному пользователю из-за ограничений udev. Добавьте своё имя в группу lp:

sudo usermod -aG lp $USER

Если это не помогло, создайте правило для udev. Найдите идентификаторы устройства:

lsusb -v | grep -A 3 "Printer"

Затем создайте файл /etc/udev/rules.d/99-printer.rules со строкой:

ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="YYYY", MODE="0666"

где XXXX и YYYY — значения из вывода lsusb.

После изменений перезагрузите правила udev:

sudo udevadm control --reload-rules

sudo udevadm trigger

⚠️ Внимание: Некоторые принтеры (например, Canon Selphy или Epson Stylus) требуют дополнительных модулей ядра, таких как usb-lp или usblp. Если устройство определяется, но не печатает, проверьте загружены ли эти модули командой lsmod | grep usb. При необходимости загрузите их вручную: sudo modprobe usblp.

5. Настройка сетевого принтера (Wi-Fi/Ethernet)

Сетевые принтеры подключаются сложнее, чем USB-устройства, но дают больше возможностей (печать с нескольких компьютеров, мобильных устройств). Рассмотрим два сценария: принтер с собственным IP-адресом и устройство, подключённое через маршрутизатор.

5.1. Подключение по IP-адресу

Если принтер имеет статический IP (настроен в меню устройства), добавьте его в CUPS:

  1. Откройте http://localhost:631 и перейдите в Administration → Add Printer.
  2. Выберите LPD/LPR Host or Printer или AppSocket/HP JetDirect.
  3. Введите IP-адрес принтера в формате lpd://192.168.1.100 или socket://192.168.1.100:9100.
  4. Выберите драйвер (как в разделе 2).

Для принтеров HP с поддержкой JetDirect можно использовать утилиту hp-setup с ключом --ip:

hp-setup 192.168.1.100

5.2. Подключение через роутер (Bonjour/Avahi)

Если принтер подключён к маршрутизатору по Wi-Fi или Ethernet, но не имеет фиксированного IP, используйте протокол Bonjour (он же Avahi в Linux). Убедитесь, что служба avahi-daemon запущена:

sudo systemctl status avahi-daemon

В CUPS принтер должен отобразиться автоматически в разделе Discovered Network Printers. Если нет — проверьте:

  • 🔄 Перезапустите avahi-daemon:
    sudo systemctl restart avahi-daemon
  • 📡 Убедитесь, что принтер и компьютер находятся в одной подсети.
  • 🔧 В настройках роутера включите опцию Multicast DNS (если есть).

Для принтеров Brother может потребоваться установка пакета brsaneconfig4 для сетевого сканирования:

sudo apt install brsaneconfig4
Что делать, если принтер не виден в сети?

1. Проверьте, включён ли в принтере режим сетевого подключения (Wi-Fi/Ethernet).

2. Убедитесь, что брандмауэр Linux не блокирует порты 631 (CUPS) и 5353 (Bonjour):

sudo ufw allow 631/tcp

sudo ufw allow 5353/udp

3. Попробуйте вручную указать IP-адрес принтера в CUPS, даже если он не отображается автоматически.

4. Для принтеров Epson может потребоваться установка epson-printer-utility для настройки Wi-Fi.

6. Альтернативные методы: SANE и Foo2zjs

Если стандартные драйвера не работают, на помощь приходят открытые альтернативы. Два самых популярных решения — SANE (для сканирования) и foo2zjs (для печати на лазерных принтерах).

6.1. Foo2zjs для лазерных принтеров

Пакет foo2zjs поддерживает многие лазерные принтеры HP, Xerox, Minolta и Konica. Установите его из репозиториев:

sudo apt install printer-driver-foo2zjs

Для некоторых моделей (например, HP LaserJet 1018) потребуется прошивка. Скачайте её и установите:

wget https://foo2zjs.rkkda.com/firmware/sihp1018.dl

sudo cp sihp1018.dl /usr/share/foo2zjs/firmware/

sudo chmod a+r /usr/share/foo2zjs/firmware/sihp1018.dl

6.2. SANE для сканирования

Если принтер поддерживает сканирование, но функция не работает, установите sane и sane-utils:

sudo apt install sane sane-utils

Проверьте, обнаружено ли устройство:

scanimage -L

Если принтер не отображается, добавьте его вручную. Для этого отредактируйте файл /etc/sane.d/{backend}.conf, где {backend} — название бэкенда (например, hpaio для HP, brother4 для Brother). Раскомментируйте строку с моделью вашего устройства.

Для тестирования сканирования выполните:

scanimage --format=png > test.png
⚠️ Внимание: Некоторые МФУ (например, Canon MF4700) требуют отдельных драйверов для печати и сканирования. Если scanimage -L выдаёт ошибку Device busy, убедитесь, что принтер не используется для печати в данный момент, или перезагрузите службу saned:

sudo systemctl restart saned

7. Диагностика и устранение ошибок печати

Даже после успешной установки драйверов могут возникать проблемы: пустые листы, искажённые символы, зависание заданий. Рассмотрим типичные ошибки и их решения.

Симптом Возможная причина Решение
Принтер не реагирует на задания Очередь печати заблокирована Очистите очередь: sudo cancel -a или перезапустите CUPS: sudo systemctl restart cups
Печать идёт очень медленно Низкое разрешение или сжатие данных В настройках принтера в CUPS выберите более высокое разрешение (например, 600 dpi вместо 300 dpi)
Текст печатается иероглифами Неправильная кодировка или драйвер В CUPS выберите другой драйвер (например, PostScript вместо PCL) или установите шрифты mscorefonts
Принтер печатает пустые листы Закончился тонер/чернила или неверный формат бумаги Проверьте уровень расходников и настройки бумаги в lpoptions -l
CUPS выдаёт ошибку "Filter failed" Отсутствует зависимость или неверный драйвер Установите cups-filters и переустановите драйвер: sudo apt install --reinstall printer-driver-*

Для глубокой диагностики изучите логи CUPS:

tail -f /var/log/cups/error_log

Если в логах встречаются ошибки вида Unable to locate printer или Connection refused, проверьте:

  • 🔌 Физическое подключение принтера (USB/сеть).
  • 📡 Для сетевых принтеров — пинг до устройства: ping 192.168.1.100.
  • 🔧 Права доступа к /dev/usb/lp0 (должны быть crw-rw---- для группы lp).

Для принтеров Canon с ошибкой cijusbmgr failed может помочь переустановка пакета libusb:

sudo apt install --reinstall libusb-1.0-0
💡

Если принтер работают через USB, но не печатает по сети (или наоборот), проблема чаще всего в настройках брандмауэра или конфликте IP-адресов. Проверьте, что порт 631 (CUPS) открыт для локальной сети.

FAQ: Частые вопросы по установке драйверов принтера в Linux

Мой принтер не поддерживается Linux. Есть ли альтернативы?

Да, даже если производитель не выпускает драйвера для Linux, можно попробовать:

  • 🖨️ Универсальные драйвера: gutenprint (для струйных), foo2zjs (для лазерных), splix (для Samsung/Xerox).
  • 🍎 Эмуляция через Windows: Настройте виртуальную машину с Windows и расшарите принтер по сети. В Linux подключите его как сетевой (smb://).
  • 🌐 Облачные сервисы: Некоторые принтеры (например, HP ePrint) поддерживают печать через email. Отправляйте документы на специальный адрес, привязанный к устройству.

Для сканирования в таких случаях поможет SANE с ручной настройкой бэкенда.

Как обновить драйвер принтера в Linux?

Способ обновления зависит от типа драйвера:

  • 🔄 Драйвера из репозиториев: Обновите систему стандартной командой:
    sudo apt update && sudo apt upgrade

    Это обновит пакеты вроде hplip, gutenprint или foo2zjs.

  • 📦 Ручные драйвера (.deb/.rpm): Скачайте новую версию с сайта производителя и установите поверх старой:
    sudo dpkg -i новый_драйвер.deb
  • 🐧 Исходники: Если драйвер компилировался из исходников, скачайте свежий архив, удалите старую версию (sudo make uninstall) и повторите установку.

После обновления перезапустите CUPS:

sudo systemctl restart cups

Принтер печатает, но сканировать не может. Что делать?

Проблема обычно связана с отсутствием драйверов для сканера. Проверьте следующее:

  1. Установлен ли пакет sane:
    sudo apt install sane sane-utils
  2. Обнаруживается ли сканер:
    scanimage -L

    Если нет — добавьте устройство вручную в конфиг /etc/sane.d/{backend}.conf.

  3. Для принтеров Brother установите brscan4:
    sudo apt install brscan4
  4. Проверьте права доступа к устройству:
    ls -l /dev/bus/usb//

    Ваш пользователь должен быть в группе scanner.

Если сканер по-прежнему не работает, попробуйте альтернативные программы вроде xsane или simple-scan.

Можно ли использовать принтер без драйверов (через Generic)?

Да, в CUPS есть универсальные драйвера Generic, но они подходят только для базовой печати текста. Для графики, цветной печати или специфических функций (двусторонняя печать, брошюровка) они не годятся.

Чтобы попробовать:

  1. В CUPS выберите Add Printer → Generic.
  2. Укажите модель Generic PostScript Printer или Generic PCL 6 Printer.
  3. Настройте параметры бумаги и разрешение.

Если принтер поддерживает PostScript или PCL, этот метод может сработать. Для струйных принтеров без поддержки этих языков результат будет плохим (размытый текст, неправильные цвета).

Как удалить старые драйвера принтера?

Чтобы избежать конфликтов, перед установкой новых драйверов рекомендуется удалить старые. Способ зависит от метода установки:

  • 📦 Пакеты из репозиториев:
    sudo apt remove hplip gutenprint foo2zjs
  • 📦 Ручные .deb/.rpm пакеты:
    sudo dpkg -r имя_пакета  # для Debian/Ubuntu
    

    sudo rpm -e имя_пакета # для Fedora/RHEL

  • 🐧 Исходники: Если драйвер компилировался из исходников, выполните:
    sudo make uninstall

    в директории с исходниками.

  • 🗑️ Очистка конфигов: Удалите оставшиеся файлы настроек:
    sudo rm -rf /etc/cups/ppd/название_принтера

После удаления перезапустите CUPS:

sudo systemctl restart cups