# Принт-сервер и сетевой сканер на 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
```