Установка принтера на Linux раньше означала охоту за драйвером под конкретную модель, возню с пакетами от производителя и молитву, чтобы всё это заработало после очередного обновления системы. Современная система печати перевернула этот порядок. Вместо драйверов под каждую модель она опирается на универсальные сетевые стандарты, которые позволяют печатать почти на любом сетевом принтере последнего десятилетия без всякого драйвера. Принтер сам сообщает системе о своих возможностях, а система формирует задание в понятном принтеру виде. Подключил, нашёл, печатаешь, никаких пакетов от производителя.

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

Как работает печать без драйверов

В основе безпрайверной печати лежит сетевой протокол печати и стандарт, делающий печать универсальной. Идея проста: принтер обязан понимать несколько универсальных форматов заданий, а значит, системе не нужно знать тонкости конкретной модели. Она формирует задание в одном из этих универсальных форматов, и принтер его принимает, потому что обязан их поддерживать по стандарту. Проприетарных языков, эксклюзивных для одной модели, в этой схеме нет.

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

Обнаружение принтера в сети происходит через механизм объявления служб, тот же, что стоит за беспроводной печатью с мобильных устройств разных производителей. Принтер периодически объявляет о себе в локальной сети, а система печати его слышит и автоматически добавляет в список доступных. По сути, это одна и та же технология под разными торговыми именами в экосистемах разных производителей, и Linux пользуется ей наравне со всеми. Принтеры, выпущенные примерно после начала прошлого десятилетия, обычно поддерживают эти стандарты, что видно по упоминанию беспроводной печати или универсального стандарта в их характеристиках.

Как установить систему печати и найти принтер

Сначала ставят саму систему печати с сопутствующими утилитами и службой объявления служб, без которой обнаружение по сети не работает.

sudo apt install cups cups-client avahi-daemon

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

systemctl status cups

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

sudo usermod -aG lpadmin $USER

Эта команда даёт текущему пользователю права администратора печати, что нужно для управления очередями через веб-интерфейс или команды. Это важная граница безопасности: только уполномоченные администраторы должны иметь возможность менять очереди печати и видеть метаданные заданий. После добавления в группу нужно перезайти в систему, чтобы новые права вступили в силу.

Как добавить сетевой принтер вручную

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

sudo lpadmin -p Office-Printer -E -v ipp://192.168.1.50/ipp/print -m everywhere

Здесь создаётся очередь с произвольным именем, включается приём заданий, задаётся сетевой адрес принтера в виде ссылки протокола печати и выбирается универсальный безпрайверный режим. Именно последний параметр велит системе работать с принтером без драйвера, опрашивая его возможности напрямую. Адрес берут реальный, тот, что у принтера в сети, а имя очереди придумывают любое удобное.

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

sudo lpadmin -d Office-Printer
lpstat -p -d

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

Как поделиться принтером с устройствами Apple

Отдельная приятная возможность это раздать подключённый к Linux принтер устройствам Apple через встроенную поддержку беспроводной печати в системе печати. Тогда айфоны и планшеты в той же сети увидят принтер в своих диалогах печати автоматически, как родной. Для этого в системе печати включают объявление принтера по сети.

sudo cupsctl --share-printers
sudo cupsctl WebInterface=Yes

Первая команда разрешает делиться принтерами по сети, вторая включает веб-интерфейс управления, если он был отключён. После этого устройства Apple в локальной сети начинают видеть принтер в диалогах беспроводной печати без всякой настройки на их стороне. Машина с Linux фактически прикидывается беспроводным принтером, понятным мобильным устройствам.

Тут стоит знать про распространённую путаницу. Иногда после настройки устройство Apple видит как бы два принтера вместо одного: один от системы печати, другой от службы объявления. Это нормально, просто один путь требует драйвера на стороне устройства, а другой нет, и обычно работает безпрайверный. Лишнее объявление при желании отключают в настройках, но само наличие двух записей не поломка, а следствие двух параллельных механизмов оповещения о принтере.

Как диагностировать неработающую печать

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

lpstat -t

Эта команда выдаёт полную картину: какие принтеры есть, включены ли они, принимают ли задания и что висит в очередях. Если очередь оказалась остановленной из-за прежней ошибки, её возобновляют, и накопившиеся задания уходят на печать. Частая причина молчащего принтера это именно остановленная после сбоя очередь, о чём легко забыть.

Если очередь в порядке, а печати нет, причину ищут в журнале системы печати, куда она пишет подробности о каждом задании. Распространённые беды это блокировка обнаружения по сети межсетевым экраном, неверно выбранный режим очереди или устаревшие остатки прежних попыток настройки. Межсетевой экран нередко режет служебный трафик обнаружения, и тогда принтер просто не находится по сети, хотя физически доступен. Открытие нужных портов для обнаружения и протокола печати решает эту беду.

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

Чем отличается настройка принтера по USB

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

sudo apt install ipp-usb

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

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

Краткий порядок настройки

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

  1. Установить систему печати, клиентские утилиты и службу обнаружения по сети, проверив, что служба печати запущена;
  2. Добавить свою учётную запись в группу администраторов печати и перезайти для применения прав;
  3. Дать системе найти принтер автоматически либо добавить его вручную с универсальным безпрайверным режимом;
  4. Назначить принтер основным и отправить пробную страницу, проверив готовность очереди;
  5. При нужде раздать принтер устройствам Apple, включив объявление принтеров по сети.

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

Что в итоге запомнить

Современная система печати Linux избавила от драйверной мороки, перейдя на универсальные сетевые стандарты, по которым печатать можно почти на любом сетевом принтере последнего десятилетия без единого драйвера. Принтер сам объявляет о себе в сети и сообщает свои возможности, а система формирует задание в универсальном формате, который принтер обязан понимать. Это та же технология, что стоит за беспроводной печатью с мобильных устройств, просто под разными именами.

Настройка сводится к установке системы печати со службой обнаружения, добавлению себя в группу администраторов и выбору принтера, найденного автоматически или добавленного вручную с универсальным безпрайверным режимом. Linux умеет и раздавать принтер устройствам Apple, прикидываясь беспроводным принтером. Расширенные функции вроде уровня чернил порой ещё требуют драйвера производителя, но для обычной печати безпрайверный путь прост, надёжен и избавляет от вечной охоты за совместимыми драйверами.

Отдельно стоит отметить выигрыш в долговечности настройки. Поскольку безпрайверная печать не завязана на драйвер конкретной модели, она не ломается после обновлений системы и не требует переустановки драйверов при смене дистрибутива. Принтер, настроенный по универсальному стандарту сегодня, продолжит работать и через годы, и при замене на другую совместимую модель достаточно поменять лишь адрес в очереди. Это резко контрастирует с прежней эпохой, когда обновление системы нередко обрушивало печать из-за несовместимого драйвера, и приходилось всё настраивать заново. Универсальный подход делает печать не только простой в настройке, но и устойчивой во времени, что для домашней и офисной техники ценно ничуть не меньше лёгкого старта.