LINUX.ORG.RU
решено ФорумAdmin

Centos 6 как расшарить сетевой сканер

 ,


1

1

Добрый день Есть МФУ HP3055 со сломанным USB портом, в офисе компы на windows 7/10 x64. Как оказалось сетевой сканер нет возможности настроить на 64 битные системы потому что HP не написали дров. Решил сделать на Centos 6.

Все ставил из стоковых репов

 sane-backends                                               x86_64                                  1.0.21-5.el6
 hpijs                                                       x86_64                                  1:3.14.6-4.el6.1                                   @base                                  9.2 M
 hplip                                                       x86_64                                  3.14.6-4.el6.1                                     @base                                  9.1 M
 hplip-gui                                                   x86_64                                  3.14.6-4.el6.1                                     @base                                  2.8 M
 hplip-libs                                                  x86_64                                  3.14.6-4.el6.1                                     @base                                  343 k
 libsane-hpaio                                               x86_64                                  3.14.6-4.el6.1                                     @base                                  148 k
 sane-backends-devel                                         x86_64                                  1.0.21-5.el6                                       @base                                   33 k
 sane-backends-libs                                          x86_64                                  1.0.21-5.el6                                       @base                                  7.6 M
 sane-backends-libs-gphoto2                                  x86_64                                  1.0.21-5.el6                                       @base                                   40 k
 sane-frontends                                              x86_64                                  1.0.14-9.2.el6                                     @base                                  132 k
 xsane                                                       x86_64                                  0.997-8.el6

сканер подключился, проверил сканирует все норм

scanimage -L
device `hpaio:/net/HP_LaserJet_3055?ip=192.168.4.30' is a Hewlett-Packard HP_LaserJet_3055 all-in-one

теперь чтоб его расшарить ставлю xinetd и делаю

# cat /etc/xinetd.d/saned
service sane-port
{
   port = 6566
   socket_type = stream
   server = /usr/sbin/saned
   user = root
   group = root
   wait = no
}
# cat /etc/sane.d/saned.conf
localhost
192.168.4.0/24

на винде ставлю в качестве клиента SANEWinDS или SaneTwain при обращении к сканеру получаю ошибку

Jun 25 15:22:23 63proxy xinetd[24696]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
Jun 25 15:22:23 63proxy xinetd[24696]: Started working: 1 available service
Jun 25 15:22:43 63proxy xinetd[24696]: START: sane-port pid=24718 from=::ffff:192.168.4.114
Jun 25 15:22:45 63proxy saned[24718]: io/hpmud/pp.c 627: unable to read device-id ret=-1
Jun 25 15:22:45 63proxy xinetd[24696]: EXIT: sane-port status=0 pid=24718 duration=2(sec)
Jun 25 15:23:28 63proxy xinetd[24696]: Exiting...

тоесть сокет sane-port не может открыть порт сканера? почему не понятно, как лечить незнаю, помогите пожалуйста.

Выглядит так, что нужно копать в сторону прав доступа.

PS. как вариант, раньше было несколько вариантов веб-интерфейсов к sane, где прямо по http можно было зайти, нажать кнопочку сканирования и сохранить файл.

pod ★★
()
Ответ на: комментарий от pod

может xinetd не запускает sane-port от рута и тот в свою очередь не может порт сканера открыть? а как ему сказать чтоб запускал?

fordiego
() автор топика
Ответ на: комментарий от fordiego

тут я не подскажу, я настраивал sane по сети только отдельным сервисом, не через xinetd.

Тут правило одно - нужно чтобы на файл устройства сканера (/dev/...) у пользователя saned были права на чтение-запись.

можно локально писать debug лог saned, или подключиться к процессу с помощью strace и посмотреть внутри что происходит.

pod ★★
()
Последнее исправление: pod (всего исправлений: 1)
Ответ на: комментарий от pod

так сканер сетевой нет его в dev device `hpaio:/net/HP_LaserJet_3055?ip=192.168.4.30'

strace посмотрел фигня какая то не понятная

restart_syscall(<... resuming interrupted call ...>) = 1
accept(5, {sa_family=AF_INET6, sin6_port=htons(51551), inet_pton(AF_INET6, "::ffff:192.168.4.114", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 6
setsockopt(6, SOL_IPV6, IPV6_ADDRFORM, [2], 4) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f799e40aa70) = 25302
sendto(7, "<30>Jun 25 16:20:33 xinetd[24862"..., 87, MSG_NOSIGNAL, NULL, 0) = 87
close(6)                                = 0
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25302, si_status=0, si_utime=0, si_stime=0} ---
write(4, "\21", 1)                      = 1
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\21", 1)                       = 1
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 25302
sendto(7, "<30>Jun 25 16:20:34 xinetd[24862"..., 85, MSG_NOSIGNAL, NULL, 0) = 85
close(-1)                               = -1 EBADF (Bad file descriptor)
wait4(-1, 0x7ffe90cfab4c, WNOHANG, NULL) = -1 ECHILD (No child processes)
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = 1 ([{fd=5, revents=POLLIN}])
accept(5, {sa_family=AF_INET6, sin6_port=htons(51552), inet_pton(AF_INET6, "::ffff:192.168.4.114", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 6
setsockopt(6, SOL_IPV6, IPV6_ADDRFORM, [2], 4) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f799e40aa70) = 25303
sendto(7, "<30>Jun 25 16:20:34 xinetd[24862"..., 87, MSG_NOSIGNAL, NULL, 0) = 87
close(6)                                = 0
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=25303, si_status=0, si_utime=1, si_stime=1} ---
write(4, "\21", 1)                      = 1
rt_sigreturn()                          = -1 EINTR (Interrupted system call)
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1) = 1 ([{fd=3, revents=POLLIN}])
ioctl(3, FIONREAD, [1])                 = 0
read(3, "\21", 1)                       = 1
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 25303
sendto(7, "<30>Jun 25 16:20:36 xinetd[24862"..., 85, MSG_NOSIGNAL, NULL, 0) = 85
close(-1)                               = -1 EBADF (Bad file descriptor)
wait4(-1, 0x7ffe90cfab4c, WNOHANG, NULL) = -1 ECHILD (No child processes)
poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, -1 <detached ...>

fordiego
() автор топика
Ответ на: комментарий от pod

я настраивал sane по сети только отдельным сервисом, не через xinetd

я б тоже так настроил, только sane в centos 6 по другому не ставица, или я рукожоп

fordiego
() автор топика
Ответ на: комментарий от fordiego

а, тьфу, я не так понял, он получается по сети подключен к линуксовому компу, а уже с него ты его ещё раз шаришь по sane на вендовые? тогда да, сложно и непонятно что с этим поделать. Посмотри в сторону веб-интерфейса к sane (phpSANE использовал, работало).

pod ★★
()
Ответ на: комментарий от fordiego

usermod -aG scanner,lp saned \\ вот это про права доступа, добавить пользователя scanner в saned. В centos имена могут отличаться.

pod ★★
()
Ответ на: комментарий от pod

он получается по сети подключен к линуксовому компу, а уже с него ты его ещё раз шаришь по sane на вендовые?

именно так, потому что с винды 64 битной не подключаеца сканер по сети

Посмотри в сторону веб-интерфейса к sane (phpSANE использовал, работало)

ок!

fordiego
() автор топика
Ответ на: комментарий от pod

не получилось c phpSANE при сканировании вот что показывает

Jun 26 08:39:10 63proxy scanimage: io/hpmud/pp.c 627: unable to read device-id ret=-1
Jun 26 08:39:13 63proxy scanimage: io/hpmud/pp.c 627: unable to read device-id ret=-1
Jun 26 08:39:32 63proxy scanimage: sane_hpaio_read(maxLength=32768): User cancelled!
Jun 26 08:39:32 63proxy scanimage: sane_hpaio_cancel: already cancelled!

апач запускается с правами apache:apache владелец и права на всю папку с /var/www/html/phpSANE дал апачу дал права 777 /var/www/html/phpSANE/tmp (туда отсканированные доки валяца) дал права 755 /usr/sbin/scanimage

fordiego
() автор топика
Ответ на: комментарий от pod

проверил сканирует

[root@63proxy ~]# scanimage --format=png --mode=Color --resolution=150 > ./test.png
открыл на винде test.png, картинка есть

fordiego
() автор топика
Ответ на: комментарий от fordiego

еще апач в еррор логи вот такое сыпит при сканировании через phpsane

ls: cannot access /usr/local/bin/pdfunite: No such file or directory
[Tue Jun 26 09:45:26 2018] [error] [client 192.168.0.45] PHP Warning:  file_put_contents(./scanners/hewlett-packard-hp-laserjet-3055-all-in-one.ini): failed to open stream: No such file or directory in /var/www/html/scan/incl/functions.php on line 119, referer: http://63proxy/scan/phpsane.php
[Tue Jun 26 09:45:26 2018] [error] [client 192.168.0.45] PHP Warning:  file_put_contents(./scanners/hewlett-packard-hp-laserjet-3055-all-in-one.ini): failed to open stream: No such file or directory in /var/www/html/scan/incl/functions.php on line 120, referer: http://63proxy/scan/phpsane.php
[Tue Jun 26 09:45:26 2018] [error] [client 192.168.0.45] PHP Warning:  file_put_contents(./scanners/hewlett-packard-hp-laserjet-3055-all-in-one.ini): failed to open stream: No such file or directory in /var/www/html/scan/incl/functions.php on line 121, referer: http://63proxy/scan/phpsane.php
[Tue Jun 26 09:45:26 2018] [error] [client 192.168.0.45] PHP Warning:  file_put_contents(./scanners/hewlett-packard-hp-laserjet-3055-all-in-one.ini): failed to open stream: No such file or directory in /var/www/html/scan/incl/functions.php on line 122, referer: http://63proxy/scan/phpsane.php
sh: ./output/scan_2018-06-26 10.04.57.png: No such file or directory
scanimage: received signal 13
scanimage: trying to stop scanner
scanimage: sane_read: Operation was cancelled
[Tue Jun 26 09:45:46 2018] [error] [client 192.168.0.45] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Samarkand' for 'SAMT/4,0/no DST' instead in /var/www/html/scan/phpsane.php on line 330, referer: http://63proxy/scan/phpsane.php
[Tue Jun 26 09:45:46 2018] [error] [client 192.168.0.45] PHP Fatal error:  Uncaught exception 'UnexpectedValueException' with message 'DirectoryIterator::__construct(./output/): failed to open dir: \xbd\xd5\xe2 \xe2\xd0\xda\xde\xd3\xde \xe4\xd0\xd9\xdb\xd0 \xd8\xdb\xd8 \xda\xd0\xe2\xd0\xdb\xde\xd3\xd0' in /var/www/html/scan/incl/files.php:56\nStack trace:\n#0 /var/www/html/scan/incl/files.php(56): DirectoryIterator->__construct('./output/')\n#1 /var/www/html/scan/phpsane.php(410): include('/var/www/html/s...')\n#2 {main}\n  thrown in /var/www/html/scan/incl/files.php on line 56, referer: http://63proxy/scan/phpsane.php

в /var/www/html/scan/tmp создается пустой файл preview_1529935921.jpg

fordiego
() автор топика
Ответ на: комментарий от fordiego

Сделал! создал каталоги ./scanners ./output в корне сайта /var/www/html/scan дал права apache:apache 755 все заработало!

fordiego
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.