notes/rpi_printserver.md

5.6 KiB
Raw Permalink Blame History

Принт-сервер и сетевой сканер на Raspberry PI

МФУ Samsung SCX3405W

Печать

Подразделени Samsung, которое занималось производством принтером было куплено компанией HP, поэтому справедливо установить драйвера HP и свободные драйвера

sudo apt-get update
sudo apt-get install hplip printer-driver-splix -y

Установить службу печати линукс CUPS

sudo apt-get install cups -y

Необходимо добавить пользователя в группу lpadmin

sudo usermod -a -G lpadmin da2001
sudo reboot

Следующим этапом необходимо отредактировать конфигурационный файл службы печати

vim /etc/cups/cupsd.conf

строку Listen localhost:631 необходимо изменить на Port 631

добваить две строки

BrowseRemoteProtocols CUPS dnssd
BrowseAddress @LOCAL

Внести изменения в секцию Location, привести к виду:

<Location  />
  Order allow,deny
  Allow all
</Location>

В секции Location /admin закомментировать строку Order allow,deny

<Location /admin>
</Location>

Перезапустить службу печати

sudo systemctl restart cups

Если всё настроено верно, должен отобразиться web-интрефейс https://print-server-ip:631

web

На вкладке Администрирование необходимо добавить новый принтер. В случае с Samsung SCX3405W, его нет в списке, но есть Samsung SCX3200 - он также подойдёт.

С настройкой принтера закончено, теперь он должен быть доступен в локальной сети.

Сканирование

Необходимо установить пакет sane

sudo apt install sane -y

Далее необходимо убедиться, что сканер опознан в системе

sudo sane-find-scanner

пример вывода

da2001@printserver:~ $ sudo sane-find-scanner

  # sane-find-scanner will now attempt to detect your scanner. If the
  # result is different from what you expected, first make sure your
  # scanner is powered up and properly connected to your computer.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.
  # Also you need support for SCSI Generic (sg) in your operating system.
  # If using Linux, try "modprobe sg".

found USB scanner (vendor=0x04e8 [Samsung Electronics Co., Ltd.], product=0x344f [SCX-3400 Series]) at libusb:001:004
found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

Можно попробовать выполнить Сканирование

sudo scanimage -L

пример вывода:

Created directory: /var/lib/snmp/cert_indexes
device 'xerox_mfp:libusb:001:004' is a Samsung Samsung SCX-3400 Series multi-function peripheral

свидетельствует о готовности сканера

Непосредственно само сканирование

scanimage > ~/test-scan-file.pnm

Получить информацию о созданном файле

file test-scan-file.pnm

Сетевое сканирование

Изменить конфигурацию для включения демона saned

sudo vim /etc/default/saned

добавить строку RUN=yes

В основном конфигурациооном файле /etc/sane.d/saned.conf необходимо указать сеть доступности сканирования

192.168.13.0/24

кроме этого необходимо раскомментировать строку

data_portrange = 10000 - 10100

Также необходимо изменить разрешения, чтобы демон saned мог запускаться не от рута. В части вывода sane-find-scanner было показано

found USB scanner (vendor=0x04e8 [Samsung Electronics Co., Ltd.], product=0x344f [SCX-3400 Series]) at libusb:001:004

libusb:001:004 сообщает, что сканер находится по адресу /dev/bus/usb/001/004

Проверим права этого файла

da2001@printserver:~ $ ls -l /dev/bus/usb/001
итого 0
crw-rw-r--  1 root root 189, 0 мая  6 19:37 001
crw-rw-r--  1 root root 189, 1 мая  6 18:09 002
crw-rw-r--  1 root root 189, 2 мая  6 18:09 003
crw-rw-r--+ 1 root lp   189, 3 мая  6 19:39 004

как видно из вывода, файлом владеет root с группой lp (linux print). Нам нужно добавить демона sane в группу lp, чтобы дать ему необходимые разрешения:

sudo adduser saned lp

В конце необходимо запустить saned

sudo systemctl enable --now saned.socket