Сервер печати CUPS в Linux. Подключение и настройка принтера HP LaserJet P1102 к Raspberry Pi. Настройка общего доступа к принтеру. Настройка печати из Windows.
Для превращения "одноплатника" Raspberry Pi в принт-сервер даже не обязательно подключать к нему мыши, клавы, мониторы - все можно сделать с рабочей станции или ноутбука под управлением Windows. Потребуется только сетевой кабель - да и с ним дело пойдет гораздо быстрее. Wi-Fi на Малине можно будет до настроить попозже.
1. Скачиваем дистрибутив Ubuntu Server 22.04.1 LTS
2. Скачиваем Raspberry Pi Imager
3. Устанавливаем OS на карту памяти - объем (от 8Гб)
4. Карту памяти вставляем в Raspberry, саму плату подключаем "шнурком" к домашней сети.
Подаем питание.
Открываем WEB интерфейс домашнего роутера и смотрим какой IP получила "малина".
5. Скачиваем и устанавливаем приложение MobaXterm Home Edition
Версия для домашнего использования бесплатна - "кряки" не нужны.
6. Устанавливаем обновления
sudo apt update
sudo apt upgrade
Первая команда загружает списки пакетов содержащихся в репозитариях, вторая команда производит установку обновлений.
7. Установка CUPS на компьютер с Ubuntu
Основным механизмом печати и служб печати Ubuntu является Common UNIX Printing System (CUPS). Эта система печати является свободно доступным переносимым уровнем печати, который стал новым стандартом печати в большинстве дистрибутивов Linux.
CUPS управляет заданиями на печать и очередями и обеспечивает сетевую печать с использованием стандартного протокола интернет-печати (IPP), а также поддерживает очень широкий спектр принтеров, от матричных до лазерных и многих других. CUPS также поддерживает PostScript (PPD) и автоматическое определение сетевых принтеров, а также имеет простой веб-инструмент для настройки и администрирования.
Для установки CUPS в терминале необходимо ввести команду:
sudo apt install cups
По завершении установки сервер CUPS будет запущен автоматически!
8. Конфигурация
Поведение сервера Common UNIX Printing System настраивается с помощью директив, содержащихся в файле /etc/cups/cupsd.conf
Перед редактированием конфигурационного файла следует сделать копию исходного файла и защитить ее от записи, чтобы у вас были исходные настройки в качестве эталона и повторного использования по мере необходимости.
Копируем /etc/cups/cupsd.conf файл и защищаем его от записи с помощью следующих команд:
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original
sudo chmod a-w /etc/cups/cupsd.conf.original
Службой печати CUPS удобно управлять через WEB интерфейс и поэтому необходимо разрешить подключение с других устройств в домашней сети.
Сделать это можно с помощью команды:
sudo cupsctl --remote-admin --remote-any --share-printers
Или отредактировать вручную файл cupsd.conf:
sudo nano /etc/cups/cupsd.conf
Меняем строки:
на
И добавляем Allow all в секции:
После внесения любых изменений в файл конфигурации необходимо перезапускать сервис CUPS.
sudo /etc/init.d/cups restart
Последнее, что необходимо сделать - закинуть пользователя (в моем случае единственный дефолтный пользователь с именем "ubuntu") в группу админов "чашек". Без этого действа WEB интерфейс сервера CUPS будет доступен, но производить каких-либо изменений не разрешит.
sudo usermod -a -G lpadmin ubuntu
Открываем браузер и вбиваем в адресную строку:
https://IP_МАЛИНЫ:631/admin
При попытке выполнить любые административные изменения, система запросит пароль.
9. Установка пакета драйверов для принтера
Сетевым я буду делать вот этот домашний принтер:
Подключаем принтер по USB к Малине
И как видим подходящего драйвера в системе нет!
Конкретно моя модель принтера работает по протоколу QPDL. Для этого протокола необходимо установить драйвер foo2qpdl.
foo2qpdl — это драйвер принтера с открытым исходным кодом для принтеров, которые используют проводной протокол QPDL для своих данных печати, таких как Samsung CLP-300 или Samsung CLP-600. Эти принтеры часто ошибочно называют winprinters или GDI-принтерами. Однако Microsoft GDI требует только API между приложением и драйвером принтера, а не протокол на проводе между драйвером принтера и принтером. На самом деле принтеры QPDL — это растровые принтеры, которые используют очень эффективный проводной протокол. QPDL — это всего лишь один из многих используемых сегодня проводных протоколов, таких как Postscript, PCL, Epson, ZjStream и т. д.
Этот драйвер использует Ghostscript для выполнения всей тяжелой работы (обработки изображений). Драйвер принтера foo2qpdl состоит из пяти основных компонентов.
- foo2qpdl - образ страницы в движок преобразования протокола драйвера.
- foo2qpdl-wrapper - скрипт оболочки (совместимый с foomatic), который запускает ghostscript и foo2qpdl в конвейере.
- icc2ps - преобразовывает цветовой профиль ICM в CRD Postscript, который затем загружается в Ghostscript перед программой Postscript пользователя.
- foomatic-db - записи базы данных foomatic, которые описывают поддерживаемые принтеры и их параметры, чтобы спулеры принтеров знали, как получить доступ к принтеру с помощью -
- foo2qpdl-wrapper. - qpdldecode - инструмент для разработчиков, позволяющий проверять потоки QPDL.
Раньше это драйвер можно было также установить с сайта:
http://foo2zjs.rkkda.com/foo2zjs.tar.gz
Но! теперь этот ресурс недоступен. Впрочем копию этого пакета можно найти на GitHUB, скачать и установить оттуда:
Но самый простой способ решить данную задачу - использовать deb-пакет из официального репозитория,
https://packages.ubuntu.com/source/bionic/foo2zjs
установив его с помощью команды:
sudo apt-get install printer-driver-foo2zjs
После добавления принтера переходим в "Управление принтерами"
Клацаем по ссылке наименование, а там переходим в левый выпадающий список:
И там выбираем печать пробной страницы:
11. Настройка Wi-Fi на Raspberry Pi
Теперь пришло самое время сделать наш будущий принт-сервер беспроводным.
Ищем имя карты WiFi:
ls /sys/class/net
Редактируем файл:
sudo nano /etc/netplan/50-cloud-init.yaml
перезагружаемся
sudo reboot
и снова удаленно входим в систему:
Малина поймала адрес 192.168.0.12. Его необходимо будет зарезервировать на домашнем маршрутизаторе.
Сетевой кабель теперь можно отключить.
12. Установка принтера в Windows 7
http://192.168.0.12:631/printers/HP_P1102
Тестовая страница печати:
13. Установка принтера в Windows 10
Windows 10 в домашней сети нашла принтер подключенный к Raspberry Pi самостоятельно.
14. Итоги
Теперь принтер можно поставить в любой укромный угол квартиры, и совсем не обязательно туда тянуть сеть.
Конечно, помимо версии Ubuntu Server есть еще версия Ubuntu Desktop с полноценным графическим интерфейсом, и установить в ней принтер можно вообще без танцев с бубном работы в терминале используя исключительно мышь, но там есть пара минусов
- она более требовательна к ресурсам - следовательно придется купить Raspberry Pi подороже, а смысла в этом для организации только принт-сервера нет ни какого;
- для работы с Ubuntu Desktop потребуется монитор, клавиатура и эта самая мышь - при работе с Ubuntu Server можно обойтись сетевым кабелем и ноутбуком с любой ОС.
Системные требования к Raspberry Pi в зависимости от версии Ubuntu можно посмотреть тут:
Конечно, можно купить и готовый принт-сервер, однако он всегда останется только принт-сервером. Используя ресурсы Raspberry Pi и внешние GPIO доступные на плате можно сделать принтер с часами помимо управления принтером, можно установить ПО для управления умным домом, или подключить какие либо исполнительные механизмы или датчики.
Оглавление канала доступно тут:
Всем удачи!