Добавление принтера через терминал в Linux может показаться сложной задачей для начинающих пользователей, но на практике этот процесс занимает не больше 5-10 минут при правильном подходе. В отличие от графических интерфейсов, терминал предоставляет больше контроля над настройками, позволяет автоматизировать процесс и решать проблемы, когда GUI-инструменты отказываются работать. Особенно актуально это для серверных версий дистрибутивов, где графическая оболочка отсутствует по умолчанию.

Основной инструмент для работы с принтерами в Linux — система CUPS (Common Unix Printing System), которая управляет всеми аспектами печати. Через терминал вы можете не только добавить принтер, но и настроить его параметры, обновить драйверы или устранить типичные ошибки подключения. Эта статья покрывает все этапы: от проверки установленных пакетов до тестовой печати документа, с акцентом на наиболее распространённые дистрибутивы — Ubuntu/Debian и CentOS/RHEL.

1. Проверка установленных пакетов CUPS

Прежде чем добавлять принтер, убедитесь, что система CUPS установлена и запущена. В большинстве современных дистрибутивов она присутствует по умолчанию, но на минимальных серверных сборках может отсутствовать.

Чтобы проверить статус службы, выполните команду:

systemctl status cups

Если служба не активна, запустите её:

sudo systemctl start cups

sudo systemctl enable cups # для автоматического запуска при загрузке

⚠️ Внимание: На некоторых серверных дистрибутивах (например, Ubuntu Server) пакет cups может отсутствовать. Установите его командой sudo apt install cups (Debian/Ubuntu) или sudo yum install cups (CentOS/RHEL).

После установки проверьте доступность веб-интерфейса CUPS (порт 631), который может пригодиться для диагностики:

lpstat -t
📊 Какой дистрибутив Linux вы используете?
Ubuntu/Debian
CentOS/RHEL
Arch Linux
Fedora
Другой

2. Поиск доступных принтеров в сети

Если принтер подключён по сети (Ethernet или Wi-Fi), сначала определите его IP-адрес или сетевое имя. Для этого используйте команду:

lpinfo -v

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

network lpd://BRN00012345678.local/queue

network ipp://HP-OfficeJet-Pro-9010._ipp._tcp.local/

direct hp:/net/HP_OfficeJet_Pro_9010?ip=192.168.1.100

Для принтеров, подключённых по USB, используйте:

lsusb

Ищите в выводе строки с упоминанием производителя (HP, Canon, Brother и т.д.). Например:

Bus 001 Device 003: ID 03f0:1024 HP OfficeJet Pro 9010
Тип подключения Команда для обнаружения Пример вывода
Сетевой принтер (IPP) lpinfo -v | grep ipp ipp://HP-OfficeJet-Pro-9010._ipp._tcp.local/
Сетевой принтер (LPD) lpinfo -v | grep lpd lpd://BRN00012345678.local/queue
USB-принтер lsusb | grep -i "printer\|hp\|canon\|brother" Bus 001 Device 003: ID 03f0:1024 HP OfficeJet Pro 9010
Локальный (parallel port) lpinfo -v | grep parallel direct parallel:/dev/lp0
💡

Если принтер не обнаруживается по сети, проверьте, включён ли на нём протокол IPP или LPD в настройках сетевого интерфейса. Для HP это делается через веб-интерфейс принтера (обычно по адресу http://[IP-принтера]).

3. Установка драйверов для принтера

Без правильного драйвера принтер не будет работать корректно. В большинстве случаев Linux автоматически подбирает универсальный драйвер (например, postscript или pcl), но для полноценной поддержки функций (двусторонняя печать, сканирование) лучше установить фирменный драйвер.

Для принтеров HP используйте пакет hplip:

sudo apt install hplip  # Debian/Ubuntu

sudo yum install hplip # CentOS/RHEL

Для Brother и Canon скачайте драйверы с официальных сайтов и установите вручную. Например, для Brother HL-L2350DW:

wget https://download.brother.com/welcome/dlf100000/hl1230dwlpr-3.0.1-1.i386.deb

sudo dpkg -i hl1230dwlpr-3.0.1-1.i386.deb

⚠️ Внимание: Драйверы для 32-битных систем (.i386.deb) могут не работать на 64-битных дистрибутивах без установки библиотек совместимости (sudo apt install libc6-i386).

Проверьте список доступных драйверов командой:

lpinfo -m

Убедиться, что принтер включён и подключён к сети/USB

Обновить список пакетов (sudo apt update)

Проверить архитектуру системы (uname -m)

Скачать драйвер с официального сайта производителя (если требуется)

Установить зависимости для 32-битных драйверов (при необходимости)-->

4. Добавление принтера через команду lpadmin

Основная команда для добавления принтера в CUPS — lpadmin. Её синтаксис зависит от типа подключения.

Для сетевого принтера (IPP):

sudo lpadmin -p HP_OfficeJet_Pro_9010 -E -v ipp://192.168.1.100/ipp/print -m everywhere

Где:

- -p — имя принтера (произвольное, но без пробелов)

- -E — включить принтер после добавления

- -v — URI устройства (из вывода lpinfo -v)

- -m — модель драйвера (можно указать конкретный драйвер из lpinfo -m или everywhere для автоматического выбора)

Для USB-принтера:

sudo lpadmin -p Brother_HL_L2350DW -E -v usb://Brother/HL-L2350DW?serial=ABC12345 -m drv:///brother/hl1250.drv.gz

Для локального принтера (LPT-порт):

sudo lpadmin -p Epson_LX_300 -E -v parallel:/dev/lp0 -m lx300.ppd
Что делать, если команда lpadmin выдаёт ошибку "Unsupported format"

Ошибка возникает, когда указанный драйвер (-m) несовместим с принтером. Решения:

1. Укажите другой драйвер из списка lpinfo -m (например, drv:///sample.drv/ps для PostScript-принтеров).

2. Используйте универсальный драйвер everywhere.

3. Установите фирменный драйвер от производителя (см. раздел 3).

5. Настройка принтера по умолчанию и тестовая печать

После добавления принтера его нужно сделать устройством по умолчанию (если требуется) и проверить работоспособность.

Установите принтер по умолчанию:

sudo lpoptions -d HP_OfficeJet_Pro_9010

Отправьте тестовую страницу:

lp -d HP_OfficeJet_Pro_9010 /etc/nsswitch.conf

Или используйте встроенную команду CUPS для тестовой печати:

sudo lpadmin -p HP_OfficeJet_Pro_9010 -o printer-is-shared=false -o auth-info-required=none

echo "Test page" | lp -d HP_OfficeJet_Pro_9010

Проверьте статус задания печати:

lpstat -o
⚠️ Внимание: Если тестовая страница не печатается, проверьте:

- Состояние очереди печати (lpstat -t).

- Права доступа к принтеру (ls -l /etc/cups/printers.conf).

- Логи CUPS (tail -f /var/log/cups/error_log).

💡

Команда lpstat -t — ваш главный инструмент диагностики. Она показывает все принтеры, их статус и текущие задания печати.

6. Устранение распространённых ошибок

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

  • 🔌 Принтер не обнаруживается по сети:

    Проверьте, что принтер и компьютер находятся в одной подсети. Отключите брандмауэр на время настройки (sudo ufw disable). Используйте ping 192.168.1.100 (замените на IP принтера), чтобы убедиться в доступности устройства.

  • 🖨️ Драйвер не подходит:

    Удалите принтер (sudo lpadmin -x HP_OfficeJet_Pro_9010) и добавьте заново с другим драйвером. Для HP попробуйте hp:/net/HP_OfficeJet_Pro_9010 вместо ipp://.

  • 📄 Задания печати зависают в очереди:

    Очистите очередь командой sudo cancel -a или перезапустите службу CUPS (sudo systemctl restart cups).

  • 🔒 Ошибка "Not authorized":

    Добавьте своего пользователя в группу lpadmin:

    sudo usermod -aG lpadmin $USER

    Затем перезагрузитесь или выполните newgrp lpadmin.

Если принтер подключён через USB, но не определяется, попробуйте отключить его, выполнить sudo usermod -aG lp $USER, перезагрузить систему и подключить принтер заново. Это часто решает проблемы с правами доступа к USB-устройствам.

7. Автоматизация добавления принтера через скрипт

Если вам нужно регулярно добавлять принтеры на несколько машин, можно создать скрипт для автоматизации процесса. Пример скрипта для добавления сетевого принтера HP OfficeJet Pro 9010:

#!/bin/bash

PRINTER_NAME="HP_OfficeJet_Pro_9010"

PRINTER_IP="192.168.1.100"

DRIVER="everywhere"

Установка CUPS (если не установлен)

if ! command -v lpadmin &> /dev/null; then

sudo apt update && sudo apt install -y cups

sudo systemctl enable --now cups

fi

Добавление принтера

sudo lpadmin -p "$PRINTER_NAME" -E -v "ipp://$PRINTER_IP/ipp/print" -m "$DRIVER"

sudo lpoptions -d "$PRINTER_NAME"

Тестовая печать

echo "Printer $PRINTER_NAME added successfully. Printing test page..."

echo "Test page from $(hostname) at $(date)" | lp -d "$PRINTER_NAME"

Сохраните скрипт в файл (например, add_printer.sh), сделайте его исполняемым и запустите:

chmod +x add_printer.sh

./add_printer.sh

8. Управление принтерами через веб-интерфейс CUPS

Хотя статья посвящена работе в терминале, веб-интерфейс CUPS может быть полезен для визуального контроля. Чтобы получить к нему доступ:

  1. Убедитесь, что служба CUPS запущена (sudo systemctl status cups).
  2. Откройте в браузере адрес http://localhost:631.
  3. Перейдите в раздел Administration → Add Printer.
  4. Введите имя пользователя и пароль (используйте учётные данные суперпользователя или пользователя из группы lpadmin).

Через веб-интерфейс вы можете:

  • 📋 Просматривать список установленных принтеров.
  • 🔧 Модифицировать настройки (разрешение, двусторонняя печать).
  • 📄 Управлять очередью печати (отмена, приостановка заданий).
  • 🖼️ Печатать тестовые страницы.
⚠️ Внимание: По умолчанию доступ к веб-интерфейсу CUPS разрешён только с локального хоста (localhost). Чтобы открыть доступ из сети, отредактируйте файл /etc/cups/cupsd.conf, добавив строку Allow @LOCAL в секции <Location />, затем перезапустите службу (sudo systemctl restart cups).

FAQ: Частые вопросы по добавлению принтера в терминале

Можно ли добавить принтер без прав суперпользователя?

Да, но с ограничениями. Пользователь должен быть в группе lpadmin. Добавьте себя в группу командой sudo usermod -aG lpadmin $USER, затем выйдите и войдите заново в систему. После этого вы сможете добавлять принтеры без sudo, но некоторые операции (например, установка драйверов) всё равно потребуют прав администратора.

Как удалить принтер через терминал?

Используйте команду:

lpadmin -x ИМЯ_ПРИНТЕРА

Например, для принтера HP_OfficeJet_Pro_9010:

sudo lpadmin -x HP_OfficeJet_Pro_9010

Чтобы удалить все принтеры, сначала получите их список (lpstat -p), затем удалите каждый по очереди.

Почему принтер добавляется, но не печатает?

Причин может быть несколько:

  1. Неверный драйвер. Проверьте список поддерживаемых драйверов (lpinfo -m) и добавьте принтер заново с другим драйвером.
  2. Очередь печати заблокирована. Очистите её командой sudo cancel -a.
  3. Проблемы с подключением. Для сетевых принтеров проверьте ping до устройства.
  4. Отсутствуют права. Убедитесь, что ваш пользователь входит в группу lp.

Также проверьте логи CUPS:

tail -n 50 /var/log/cups/error_log
Как добавить принтер на удалённый сервер?

Если принтер подключён к другому компьютеру в сети, вы можете подключиться к нему через IPP или Samba.

Для IPP (если на удалённом компьютере запущен CUPS):

sudo lpadmin -p Remote_Printer -E -v ipp://192.168.1.101:631/printers/HP_OfficeJet -m everywhere

Для Samba (если принтер расшарен через Windows):

sudo lpadmin -p Samba_Printer -E -v smb://WORKGROUP/SERVER/PrinterName -m everywhere

В обоих случаях убедитесь, что на удалённом компьютере разрешён доступ к принтеру.

Где хранятся конфигурационные файлы принтеров?

Основные файлы конфигурации CUPS расположены в директории /etc/cups/:

  • /etc/cups/printers.conf — список всех настроенных принтеров.
  • /etc/cups/cupsd.conf — основной конфигурационный файл службы.
  • /etc/cups/ppd/ — файлы PPD (PostScript Printer Description) для каждого принтера.

Не редактируйте эти файлы вручную, если не уверены в последствиях. Для изменений используйте команды lpadmin или веб-интерфейс CUPS.