Настройка печати на Synology с принтером HP LaserJet Professional M1132 MFP

в 4:56, , рубрики: cups, docker, Jenkins, Synology

Synology NAS может выполнять роль принт-сервера, позволяя печатать документы по сети без необходимости постоянно держать компьютер включённым. В этой статье я расскажу, как настроить печать через CUPS (Common UNIX Printing System) на примере HP LaserJet Professional M1132 MFP, подключённого по USB.

Это актуально для старых принтеров, у которых имеется только USB-порт, без LAN и WiFi.

В качестве рабочей отправной точки я использовал репозиторий: https://github.com/ziwork/synology-airprint

Перед запуском Docker Container на DSM7 Synology запустите эти команды в терминале SSH:

  • sudo synosystemctl stop cupsd

  • sudo synosystemctl stop cups-lpd

  • sudo synosystemctl stop cups-service-handler

  • sudo synosystemctl disable cupsd

  • sudo synosystemctl disable cups-lpd

  • sudo synosystemctl disable cups-service-handler

В качестве терминала я использую PuTTY

1. Подключение принтера к Synology

Подключите HP LaserJet Professional M1132 MFP к USB-порту Synology NAS и убедитесь, что устройство распознано.

Войдите в NAS через SSH и выполните команду:

lsusb

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

__1-1 03f0:042a:0100 00  2.00  480MBit/s 98mA 3IFs (Hewlett-Packard HP LaserJet Professional M1132 MFP)

2. Развёртывание CUPS в Docker через Jenkins

Я использую для развертывания контейнеров Jenkins, так как он дает больше гибкости и возможностей. Я точно не помню, какой инструкцией я пользовался для его развертывания, возможно эта: https://www.christian-knedel.de/ru/post/2021/march/20210321-docker-jenkins/

Также Jenkins я использовал, так как по умолчанию у меня не выполнялись команды docker для развертывания контейнера даже через sudo и пришлось сделать много настроек, чтобы решить эту проблему. В общем Jenkins - проще :)

Тем не менее команда Docker, если не будете использовать Jenkins:

docker run --name cups --restart unless-stopped --net host 
  --device=/dev/bus/usb:/dev/bus/usb 
  --privileged 
  -v /volume1/docker/cups/services:/services 
  -v /volume1/docker/cups/config:/config 
  -e CUPSADMIN=admin 
  -e CUPSPASSWORD=password 
  linuxserver/cups

Шаг 1: Создание директорий для CUPS

Перед развёртыванием создадим папки для хранения конфигурации:

mkdir -p /volume1/docker/cups/services
mkdir -p /volume1/docker/cups/config
chmod -R 777 /volume1/docker/cups

Шаг 2: Настройка Jenkins Pipeline

Если CUPS должен развернуться автоматически через Jenkins, создайте Jenkins Pipeline со следующим Jenkinsfile:

pipeline {
    agent any

    environment {
        CUPS_CONTAINER_NAME = "cups"
        CUPS_IMAGE = "linuxserver/cups"
        SERVICES_DIR = "/volume1/docker/cups/services"
        CONFIG_DIR = "/volume1/docker/cups/config"
        CUPS_ADMIN = "admin"
        CUPS_PASSWORD = "password"
    }

    stages {
        stage('Cleanup old container') {
            steps {
                script {
                    def isExisting = sh(script: "docker ps -aq -f name=${CUPS_CONTAINER_NAME}", returnStdout: true).trim()
                    if (isExisting) {
                        echo "Stopping and removing old container..."
                        sh "docker stop ${CUPS_CONTAINER_NAME} || true"
                        sh "docker rm ${CUPS_CONTAINER_NAME} || true"
                    } else {
                        echo "Container ${CUPS_CONTAINER_NAME} does not exist. Skipping removal."
                    }
                }
            }
        }

        stage('Deploy CUPS Container') {
            steps {
                script {
                    sh """
                    docker run --name ${CUPS_CONTAINER_NAME} --restart unless-stopped --net host 
                      --device=/dev/bus/usb:/dev/bus/usb 
                      --privileged 
                      -v ${SERVICES_DIR}:/services 
                      -v ${CONFIG_DIR}:/config 
                      -e CUPSADMIN=${CUPS_ADMIN} 
                      -e CUPSPASSWORD=${CUPS_PASSWORD} 
                      ${CUPS_IMAGE}
                    """
                }
            }
        }

        stage('Verify CUPS is Running') {
            steps {
                script {
                    def isRunning = sh(script: "docker ps -q -f name=${CUPS_CONTAINER_NAME}", returnStdout: true).trim()
                    if (isRunning) {
                        echo "CUPS контейнер успешно запущен!"
                    } else {
                        error "CUPS контейнер не запустился!"
                    }
                }
            }
        }
    }

    post {
        success {
            echo "CUPS успешно развернут через Jenkins!"
        }
        failure {
            echo "Ошибка при развертывании CUPS контейнера."
        }
    }
}

Шаг 3: Запуск пайплайна

  1. Создайте новый Jenkins Pipeline Job.

  2. Вставьте код в Pipeline Script в Jenkins.

  3. Запустите Pipeline – он автоматически развернёт CUPS.

Настройка печати на Synology с принтером HP LaserJet Professional M1132 MFP - 1

После успешного запуска CUPS Web UI будет доступен по адресу:
👉 http://<IP вашего NAS>:631

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

Шаг 1: Открываем CUPS Web UI

Перейдите в браузере на страницу CUPS:

http://<IP вашего NAS>:631

Затем войдите с admin/password.

Шаг 2: Добавление принтера

  1. Перейдите в Administration → Add Printer.

  2. Выберите принтер в списке usb://HP/LaserJet_Professional_M1132_MFP.

  3. Выберите драйвер:

    • Если HP LaserJet Professional M1132 MFP есть в списке — выберите его.

Настройка печати на Synology с принтером HP LaserJet Professional M1132 MFP - 2

После добавления выполните Print Test Page, чтобы убедиться, что печать работает.

4. Установка проприетарного плагина HP (HPLIP Plugin)

Для корректной работы драйвера HP потребуется HPLIP Plugin.

Шаг 1: Установка плагина

Войдите в контейнер:

docker exec -it cups bash

Скачайте HPLIP Plugin:

wget https://developers.hp.com/sites/default/files/hplip-3.21.12-plugin.run
chmod +x hplip-3.21.12-plugin.run

Запустите установку:

./hplip-3.21.12-plugin.run

Согласитесь с установкой плагина (Yes).

Шаг 2: Перезапуск CUPS

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

docker restart cups

Теперь попробуйте снова напечатать тестовую страницу через CUPS UI.

5. Настройка печати на Windows 11

  1. Откройте Параметры → Принтеры и сканеры.

  2. Нажмите Добавить принтер или сканер.

  3. Принтер должен быть предложен автоматически:

    Настройка печати на Synology с принтером HP LaserJet Professional M1132 MFP - 3
  4. Если Windows не нашла принтер, нажмите "Принтер, который мне нужен, отсутствует в списке".

  5. Выберите "Добавить принтер по IP-адресу", введите:

    http://<IP Synology>:631/printers/HP_LaserJet_Professional_M1132_MFP
  6. Выберите подходящий драйвер

  7. Завершите настройку и попробуйте распечатать тестовую страницу.

6. Настройка печати на Android

На Android принтер должен быть доступен автоматически при выборе функции печати в любом приложении

Настройка печати на Synology с принтером HP LaserJet Professional M1132 MFP - 4

Обо мне

Проектирую солюшн и архитектуру приложений в крупной компании Казахстана. Специализируюсь на low-code решениях, платформенном инжиниринге и DDD.
https://solution-architect.kz
Веду блог в телеграм канале на русском языке https://t.me/architectkz

Заключение

Теперь ваш Synology NAS выполняет роль принт-сервера, и вы можете печатать с любого устройства в сети, включая Windows и Android.
Если у вас другой принтер, процесс будет аналогичным, но могут понадобиться другие драйверы.

🚀 Теперь печать работает без необходимости держать ПК включённым! 🚀

Автор: manifest1

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js