Подключение принтера к операционной системе на базе Linux может показаться сложной задачей — особенно если вы привыкли к автоматическим мастерам настройки в Windows или macOS. На самом деле процесс не требует глубоких технических знаний, но имеет свои нюансы: от выбора правильного драйвера до настройки системы печати CUPS. В этой статье мы разберём все способы подключения (USB, Wi-Fi, сетевой принтер), рассмотрим типичные ошибки и дадим конкретные рекомендации для популярных дистрибутивов — Ubuntu, Fedora, Debian и Arch Linux.
Многие пользователи сталкиваются с проблемой, когда Linux "не видит" принтер даже после физического подключения. Причина чаще всего кроется в отсутствии проприетарных драйверов (особенно для моделей HP, Canon или Epson с закрытыми протоколами). Мы покажем, как установить необходимые пакеты, настроить печать через SMB для сетевых устройств и даже подключить старые принтеры через lpd-протокол. А если что-то пойдёт не так — в конце статьи вы найдёте FAQ с решениями самых распространённых ошибок.
⚠️ Внимание: Производители принтеров регулярно обновляют прошивки и драйверы. Если ваша модель выпущена позже 2023 года, проверьте совместимость с Linux на сайте производителя — некоторые новые устройства (например, Canon PIXMA G-series или HP Smart Tank) могут требовать ручной установки фирменного ПО.
1. Подготовка системы: проверка совместимости и установка CUPS
Прежде чем подключать принтер, убедитесь, что в вашей системе установлена и запущена служба CUPS (Common Unix Printing System). Это стандартный менеджер печати для Linux, который управляет всеми подключёнными устройствами. В большинстве дистрибутивов он установлен по умолчанию, но иногда требует дополнительной настройки.
Чтобы проверить статус службы, выполните в терминале:
systemctl status cups
Если служба не активна, запустите её:
sudo systemctl start cups
sudo systemctl enable cups # для автозапуска при старте системы
Для управления принтерами через веб-интерфейс CUPS откройте в браузере:
http://localhost:631
⚠️ Внимание: В некоторых дистрибутивах (например, Ubuntu 22.04+) доступ к веб-интерфейсу CUPS по умолчанию запрещён. Чтобы разблокировать его, отредактируйте файл /etc/cups/cupsd.conf, найдите строку Listen localhost:631 и добавьте под ней Port 631. После этого перезапустите службу: sudo systemctl restart cups.
Также рекомендуется установить пакеты с драйверами для популярных брендов:
- 🖨️ Для HP:
sudo apt install hplip(Debian/Ubuntu) илиsudo dnf install hplip(Fedora) - 🖨️ Для Epson:
sudo apt install printer-driver-escprилиsudo dnf install epson-inkjet-printer-escpr - 🖨️ Для Canon:
sudo apt install printer-driver-gutenprint(универсальный драйвер) - 🖨️ Для Brother: скачайте драйвер с официального сайта (выбирайте версию для Linux)
2. Подключение принтера по USB: пошаговая инструкция
Самый простой способ подключения — через USB-кабель. В большинстве случаев Linux автоматически определяет устройство и устанавливает базовый драйвер. Однако для полноценной работы может потребоваться дополнительная настройка.
Шаг 1. Подключите принтер к компьютеру с помощью USB-кабеля и включите его. Убедитесь, что кабель исправен — некоторые дешёвые кабели передают только питание, но не данные.
Шаг 2. Проверьте, обнаружила ли система принтер. Выполните команду:
lsusb
В выводе найдите строку с названием вашего принтера (например, Bus 001 Device 003: ID 03f0:1205 HP, Inc DeskJet 2130 series). Если устройство не отображается, попробуйте другой USB-порт или кабель.
Шаг 3. Откройте веб-интерфейс CUPS (http://localhost:631) и перейдите в раздел Administration → Add Printer. Система должна показать обнаруженный принтер. Выберите его и следуйте инструкциям мастера.
☑️ Подготовка к подключению по USB
Если принтер не определяется автоматически:
- Убедитесь, что установлен пакет
foomatic-db(база данных драйверов):sudo apt install foomatic-db. - Попробуйте вручную указать модель принтера в CUPS, выбрав производителя и ближайшую совместимую модель.
- Для старых принтеров (до 2010 года) может потребоваться эмуляция через
foo2zjsилиgutenprint.
Если принтер определяется, но не печатает, попробуйте перезагрузить службу CUPS: sudo systemctl restart cups. Иногда это решает проблемы с буфером печати.
3. Подключение по Wi-Fi: настройка беспроводного принтера
Беспроводное подключение удобно, но требует больше шагов для настройки. Большинство современных принтеров (например, HP OfficeJet Pro 9015e или Epson EcoTank ET-2800) поддерживают прямую печать по Wi-Fi, но для этого принтер и компьютер должны находиться в одной сети.
Способ 1: Подключение через веб-интерфейс принтера
- Найдите IP-адрес принтера. Обычно его можно узнать, распечатав тестовую страницу с настройками сети (опция
Network ConfigurationилиWireless Setupв меню принтера). - Откройте веб-интерфейс принтера, введя его IP-адрес в браузере (например,
http://192.168.1.100). - Убедитесь, что принтер подключён к вашей Wi-Fi сети. При необходимости настройте подключение вручную, указав SSID и пароль.
Способ 2: Добавление принтера через CUPS
- Откройте
http://localhost:631и перейдите вAdministration → Add Printer. - В списке обнаруженных принтеров выберите
Network Printer(может называтьсяLPD/LPR Host or PrinterилиInternet Printing Protocol (ipp)). - Введите IP-адрес принтера в формате:
- 🌐 Для
IPP:ipp://192.168.1.100/ipp/print - 🌐 Для
LPD:lpd://192.168.1.100/PASSTHRU - 🌐 Для
Socket/JetDirect:socket://192.168.1.100:9100
- 🌐 Для
PPD-файл с драйвером (можно скачать с сайта производителя).⚠️ Внимание: Некоторые принтеры (например, Canon MG3600) требуют установки фирменного ПО для работы по Wi-Fi. В таком случае скачайте драйвер с официального сайта и следуйте инструкции производителя. Также проверьте, что в роутере отключён режим изоляции клиентов (AP Isolation) — он может блокировать связь между принтером и компьютером.
| Протокол | Порт | Когда использовать | Пример URI |
|---|---|---|---|
| IPP | 631 | Современные принтеры (рекомендуется) | ipp://192.168.1.100/ipp/print |
| LPD/LPR | 515 | Старые сетевые принтеры | lpd://192.168.1.100/PASSTHRU |
| Socket/JetDirect | 9100 | Принтеры HP с JetDirect | socket://192.168.1.100:9100 |
| SMB | 445 | Принтеры, подключённые к Windows-PC | smb://192.168.1.50/PrinterName |
4. Подключение сетевого принтера (SMB, IPP, LPD)
Если принтер подключён к другому компьютеру в сети (например, к Windows-PC) или является сетевым устройством с собственным IP, его можно добавить в Linux через соответствующий протокол. Рассмотрим наиболее распространённые сценарии.
Подключение к принтеру на Windows-PC (через SMB)
Если принтер расшарен на компьютере с Windows, выполните следующие шаги:
- Убедитесь, что на Windows включено совместное использование принтера. Для этого перейдите в
Панель управления → Устройства и принтеры, кликните правой кнопкой на принтере и выберитеСвойства принтера → Доступ. ОтметьтеОбщий доступ к данному принтеру. - Установите пакет
smbclient(для работы с SMB):sudo apt install smbclient. - В CUPS выберите
Add Printer → Windows Printer via SAMBA. - Введите адрес в формате:
smb://IP_АДРЕС_КОМПЬЮТЕРА/ИМЯ_ПРИНТЕРА(например,smb://192.168.1.50/HP_LaserJet). - Укажите имя пользователя и пароль от Windows-ПК (если требуется аутентификация).
Подключение к сетевому принтеру по IPP
Многие офисные принтеры (например, Xerox WorkCentre или Ricoh MP C3004) поддерживают протокол IPP (Internet Printing Protocol). Чтобы подключиться:
- Узнайте IP-адрес принтера (обычно указан на наклейке или в меню сети).
- В CUPS выберите
Add Printer → Internet Printing Protocol (ipp). - Введите URI в формате:
ipp://IP_АДРЕС/ipp/print(например,ipp://192.168.1.200/ipp/print). - Выберите модель принтера из списка или загрузите
PPD-файл.
⚠️ Внимание: Если принтер требует аутентификацию, в URI укажите имя пользователя и пароль: ipp://user:password@192.168.1.200/ipp/print. Избегайте использования простых паролей — передача данных по IPP без шифрования может быть небезопасной в публичных сетях.
Как узнать IP-адрес принтера без распечатки?
Если принтер не печатает тестовую страницу, попробуйте найти его в списке устройств вашего роутера. Для этого откройте веб-интерфейс роутера (обычно 192.168.1.1 или 192.168.0.1) и найдите раздел DHCP Clients List или Connected Devices. Принтер может отображаться под своим сетевым именем (например, HPOfficeJetPro9015).
5. Установка драйверов для нестандартных принтеров
Не все принтеры поддерживаются "из коробки" в Linux. Особенно это касается многофункциональных устройств (МФУ) с функцией сканирования или новых моделей с закрытыми протоколами. В таких случаях приходится устанавливать проприетарные драйверы или использовать универсальные решения.
Драйверы для принтеров HP
Компания HP предоставляет официальный пакет hplip, который поддерживает большинство их устройств. Чтобы установить его:
sudo apt install hplip hplip-gui # для Debian/Ubuntu
sudo dnf install hplip hplip-gui # для Fedora
sudo pacman -S hplip # для Arch Linux
После установки запустите утилиту настройки:
hp-setup
Она предложит выбрать модель принтера и настроить подключение (USB или сеть).
Драйверы для принтеров Epson
Для принтеров Epson (например, EcoTank или WorkForce) скачайте драйвер с официального сайта. Обычно это архив с инсталлятором. Распакуйте его и следуйте инструкции:
tar -xvf epson-inkjet-printer-escpr2-1.1.22-x86_64.tar.gz
cd epson-inkjet-printer-escpr2-1.1.22-x86_64
sudo ./install.sh
Универсальные драйверы (Gutenprint, Foo2zjs)
Если для вашей модели нет официального драйвера, попробуйте:
- 🖨️
gutenprint— поддерживает множество струйных и лазерных принтеров:sudo apt install printer-driver-gutenprint - 🖨️
foo2zjs— для принтеров с чипами ZjStream (многие модели HP LaserJet):sudo apt install printer-driver-foo2zjs - 🖨️
foo2lava— для принтеров Fujitsu и некоторых Xerox.
Важно: Для принтеров Canon PIXMA MG-series (например, MG3600, MG2500) часто требуется установка драйверов через cnijfilter2. Скачайте их с сайта Canon и установите вручную — автоматические репозитории Linux их не содержат.
6. Решение распространённых проблем
Даже после правильной настройки принтер может не работать. Рассмотрим типичные ошибки и способы их устранения.
Проблема 1: Принтер не определяется по USB
- 🔌 Проверьте кабель и порт — попробуйте другой USB-порт (желательно
USB 2.0, так как некоторые принтеры не совместимы сUSB 3.0). - 🔌 Выполните команду
dmesg | tailпосле подключения принтера. Если увидите ошибки видаusb 1-1: device descriptor read/64, error -110, это указывает на проблемы с питанием — попробуйте подключить принтер через хаб с внешним питанием. - 🔌 Убедитесь, что модуль ядра
usb-lpзагружен:lsmod | grep lp. Если нет — загрузите его вручную:sudo modprobe usb-lp.
Проблема 2: Печать идёт, но документ неполный или искажённый
- 📄 Попробуйте распечатать тестовую страницу через CUPS (
http://localhost:631/printers→ выберите принтер →Maintenance → Print Test Page). - 📄 Если проблема только с определёнными документами (например, PDF), попробуйте сохранить файл в другой формат (например, в
.psчерезpdftops). - 📄 Проверьте настройки качества печати в драйвере принтера (иногда помогает смена режима с
DraftнаNormal).
Проблема 3: Принтер подключён по Wi-Fi, но периодически пропадает
- 📶 Убедитесь, что принтер и компьютер находятся в одной подсети. Проверьте это командой
ip a(на Linux) и сравните с IP принтера. - 📶 Отключите на роутере функцию
Band Steering(если есть) — она может принудительно переключать устройства между частотами2.4 GHzи5 GHz, что приводит к разрыву соединения. - 📶 Настройте статический IP-адрес для принтера в роутере (через привязку по MAC-адресу).
Проблема 4: CUPS выдаёт ошибку "Filter failed"
Эта ошибка означает, что система не может обработать задание печати из-за проблем с драйвером или фильтрами. Решения:
- 🔧 Переустановите драйвер принтера.
- 🔧 Проверьте права на файлы фильтров:
sudo chmod -R 755 /usr/lib/cups/filter. - 🔧 Удалите проблемное задание печати:
sudo cancel -a(очищает всю очередь).
Если принтер работает, но сканер не определяется, установите дополнительные пакеты: sudo apt install sane sane-utils libsane-extras. Для МФУ HP также может потребоваться xsane или simple-scan.
7. Альтернативные способы печати: Google Cloud Print и IPPS
Если стандартные методы не работают, можно использовать облачные сервисы или современные протоколы печати.
Google Cloud Print (устаревший, но ещё работает)
Хотя Google официально закрыл сервис Cloud Print в 2020 году, некоторые принтеры (особенно HP и Canon) до сих пор поддерживают его через фирменные приложения. Чтобы настроить:
- Установите
google-cloud-print-connector(если доступен для вашего дистрибутива). - Зарегистрируйте принтер в Google Cloud Print через веб-интерфейс.
- В Linux добавьте принтер как сетевой с URI:
https://www.google.com/cloudprint/printer_id.
⚠️ Внимание: Этот метод не рекомендуется для конфиденциальных документов, так как данные проходят через серверы Google.
IPP через интернет (IPPS)
Современные принтеры поддерживают IPPS (IPP over TLS) — защищённый протокол печати через интернет. Чтобы подключиться:
- Узнайте адрес IPPS вашего принтера (обычно указан в документации или на наклейке).
- В CUPS добавьте принтер с URI:
ipps://принтер.example.com:443/ipp/print. - При необходимости укажите логин и пароль для аутентификации.
Печать через AirPrint (для Apple-устройств)
Если ваш принтер поддерживает AirPrint (многие модели HP, Canon, Epson), его можно подключить к Linux через avahi-daemon:
sudo apt install avahi-daemon # для обнаружения устройств в локальной сети
sudo systemctl restart avahi-daemon
После этого принтер должен появиться в списке доступных устройств в CUPS.
8. Автоматизация и утилиты для управления печатью
Для удобства управления принтерами в Linux существуют графические и консольные утилиты, которые упрощают настройку и мониторинг.
Графические утилиты
- 🖥️
system-config-printer— стандартный графический интерфейс для настройки принтеров в Fedora, RHEL и Debian:sudo apt install system-config-printer # для Debian/Ubuntusudo dnf install system-config-printer # для Fedora
- 🖥️
hp-toolbox— утилита для принтеров HP, позволяет проверять уровень чернил, чистить картриджи и обновлять прошивку. - 🖥️
gsimplecal— лёгкий менеджер заданий печати для GNOME.
Консольные утилиты
- 💻
lpstat— показывает статус принтеров и очередь печати:lpstat -a # список всех принтеровlpstat -o # текущие задания печати
- 💻
cancel— отменяет задания печати:cancel job_id # отменить конкретное заданиеcancel -a # отменить все задания
- 💻
cupsenableиcupsdisable— включает/отключает принтер:sudo cupsenable PrinterNamesudo cupsdisable PrinterName
Мониторинг уровня чернил
Для проверки уровня чернил в картриджах установите пакет ink:
sudo apt install ink
Затем выполните:
ink -p PrinterName
Для принтеров HP также работает команда:
hp-levels PrinterName
⚠️ Внимание: Не все принтеры поддерживают чтение уровня чернил через Linux. Если команда возвращает ошибку, проверьте совместимость вашей модели на сайте производителя.
Для удалённого управления принтерами в сети используйте ssh + lp. Например, чтобы распечатать файл на удалённом принтере: ssh user@remote-pc "lp -d PrinterName file.pdf".
FAQ: Частые вопросы по подключению принтера к Linux
🔹 Почему Linux не видит мой новый принтер Canon PIXMA MG3600?
Эта модель требует установки проприетарного драйвера cnijfilter2. Скачайте его с официального сайта Canon (раздел "Драйверы для Linux") и установите вручную. После установки перезапустите CUPS: sudo systemctl restart cups.
🔹 Как подключить принтер, который расшарен с Windows 10?
Используйте протокол SMB. В CUPS выберите Add Printer → Windows Printer via SAMBA и введите адрес в формате smb://IP_АДРЕС_КОМПЬЮТЕРА/ИМЯ_ПРИНТЕРА. Убедитесь, что на Windows включён общий доступ к принтеру и отключён брандмауэр для локальной сети.
🔹 Можно ли подключить старый принтер HP LaserJet 1020 к современному Linux?
Да, но потребуется драйвер foo2zjs. Установите его:
sudo apt install printer-driver-foo2zjs
Затем подключите принтер по USB и выберите модель HP LaserJet 1020 foo2zjs в CUPS. Для работы сканера (если есть) также установите xsane.
🔹 Почему после обновления системы принтер перестал работать?
Вероятно, обновление заменило драйвер или конфигурацию CUPS. Попробуйте:
- Перезапустить службу:
sudo systemctl restart cups. - Переустановить драйвер принтера.
- Проверить логи на ошибки:
journalctl -u cups --no-pager | grep -i error.
Если проблема сохраняется, проверьте, не изменились ли настройки брандмауэра (ufw или firewalld) — они могут блокировать доступ к порту 631.
🔹 Как распечатать документ из терминала?
Используйте команду lp или lpr:
lp -d PrinterName document.pdf # печать файла на указанный принтер
lpr -P PrinterName document.txt # альтернативный синтаксис
Чтобы увидеть список доступных принтеров, выполните: lpstat -a.