rpi: настроить домашнюю печать на Brother DCP-L2620DW

This commit is contained in:
2026-10-11 15:18:56 +03:00
parent 4965f70299
commit 629b11f03f
4 changed files with 65 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
# Домашняя печать с rpi
Принтер: Brother DCP-L2620DW, обнаружен 2026-10-11 через mDNS,
`192.168.10.24`, hostname `BRW2C9C58C1EEA7.local`.
Чёрно-белый, A4, двусторонняя печать; IPP `/ipp/print`, порт 631.
Код настройки — `setup.sh`; очередь `home-brother`, драйвер IPP Everywhere.
Установка: `sudo apt-get install --no-install-recommends cups cups-client cups-filters cups-ipp-utils`,
затем `sudo sh stacks/rpi-print/setup.sh` и
`sudo install -o root -g root -m 755 stacks/rpi-print/home-print /usr/local/bin/home-print`.
Печать PDF/PNG/JPEG: `lp -d home-brother -o media=A4 -o fit-to-page /path/to/file`.
Двусторонняя: добавить `-o sides=two-sided-long-edge`.
Очередь: `lpstat -W not-completed -o home-brother`; отмена: `cancel <job-id>`.
Word DOCX перед печатью нужно преобразовать в PDF: напрямую CUPS его не понимает.
⚠️ hostname через mDNS позволяет пережить смену DHCP-адреса; если принтер
не объявляет mDNS или выключен, отправка упадёт. Политика `abort-job` исключает
неожиданную автоматическую печать давно забытых заданий после включения.
Очередь не публикуется в сеть (`printer-is-shared=false`); CUPS остаётся локальным.
Отправлять на бумагу только по прямой просьбе пользователя. Сообщение о принятии
задания означает приём в очередь; итог следует проверить через `lpstat`.
+25
View File
@@ -0,0 +1,25 @@
#!/bin/sh
# Usage: home-print status | home-print [--duplex] FILE.pdf|FILE.png|FILE.jpg
set -eu
printer=home-brother
if [ "${1:-}" = status ]; then
lpstat -p "$printer"
lpstat -W not-completed -o "$printer"
exit
fi
sides=one-sided
if [ "${1:-}" = --duplex ]; then
sides=two-sided-long-edge
shift
fi
if [ "$#" -ne 1 ] || [ ! -f "$1" ]; then
echo 'Укажите один существующий PDF/PNG/JPEG-файл' >&2
exit 2
fi
case "$1" in
*.pdf|*.PDF|*.png|*.PNG|*.jpg|*.JPG|*.jpeg|*.JPEG) ;;
*) echo 'Поддерживаются PDF/PNG/JPEG; Word сначала преобразуйте в PDF' >&2; exit 2 ;;
esac
# Absolute path prevents a filename from becoming an lp option.
file=$(realpath -- "$1")
exec lp -d "$printer" -n 1 -o media=A4 -o fit-to-page -o sides="$sides" "$file"
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
# Run as root after installing cups cups-client cups-filters cups-ipp-utils.
set -eu
systemctl enable --now cups.service
lpadmin -p home-brother -E -v ipp://BRW2C9C58C1EEA7.local:631/ipp/print -m everywhere \
-D 'Brother DCP-L2620DW' -L 'Дом' \
-o printer-is-shared=false -o PageSize=A4 -o sides-default=one-sided \
-o printer-error-policy=abort-job
lpadmin -d home-brother
lpstat -p home-brother -v