notes/rpi_printserver.md

192 lines
5.6 KiB
Markdown
Raw Normal View History

2022-05-07 22:12:11 +03:00
# Принт-сервер и сетевой сканер на Raspberry PI
_МФУ Samsung SCX3405W_
## Печать
Подразделени Samsung, которое занималось производством принтером было куплено компанией HP, поэтому справедливо установить драйвера HP и свободные драйвера
```bash
sudo apt-get update
sudo apt-get install hplip printer-driver-splix -y
```
Установить службу печати линукс CUPS
```bash
sudo apt-get install cups -y
```
Необходимо добавить пользователя в группу lpadmin
```bash
sudo usermod -a -G lpadmin da2001
sudo reboot
```
Следующим этапом необходимо отредактировать конфигурационный файл службы печати
```bash
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>
```
Перезапустить службу печати
```bash
sudo systemctl restart cups
```
Если всё настроено верно, должен отобразиться web-интрефейс https://print-server-ip:631
![web](images/cups_web.png)
На вкладке Администрирование необходимо добавить новый принтер.
В случае с Samsung SCX3405W, его нет в списке, но есть Samsung SCX3200 - он также подойдёт.
С настройкой принтера закончено, теперь он должен быть доступен в локальной сети.
## Сканирование
Необходимо установить пакет sane
```bash
sudo apt install sane -y
```
Далее необходимо убедиться, что сканер опознан в системе
```bash
sudo sane-find-scanner
```
_пример вывода_
```bash
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.
```
Можно попробовать выполнить Сканирование
```bash
sudo scanimage -L
```
пример вывода:
```bash
Created directory: /var/lib/snmp/cert_indexes
device 'xerox_mfp:libusb:001:004' is a Samsung Samsung SCX-3400 Series multi-function peripheral
```
свидетельствует о готовности сканера
Непосредственно само сканирование
```bash
scanimage > ~/test-scan-file.pnm
```
Получить информацию о созданном файле
```bash
file test-scan-file.pnm
```
### Сетевое сканирование
Изменить конфигурацию для включения демона saned
```bash
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
Проверим права этого файла
```bash
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, чтобы дать ему необходимые разрешения:
```bash
sudo adduser saned lp
```
В конце необходимо запустить saned
```bash
sudo systemctl enable --now saned.socket
```