Apache und shared libraries und access to libusb

Status
Für weitere Antworten geschlossen.

udius

Benutzer
Mitglied seit
15. Apr 2010
Beiträge
494
Punkte für Reaktionen
0
Punkte
0
Moin!

Vorab: Falls mein Post hier falsch ist, dann bitte an die richtige Stelle verschieben!

Nach einigen erfolglosen Versuchen, meinen CANON MP640 unter DSM 3.1 bzw. DSM 4.0 beta zum laufen zu bringen, habe ich es hinbekommen, dass ich mittels sane (IPKG) via USB scannen kann. Drucken kann ich von allen meinen Clients (im Wesentlichen Linux) via LAN.

So weit, so gut. Nun ist die Kommandoberfläche von sane nicht gerade das, was ich benutzerfreundlich nennen würde (da hilft mir auch das Admintool von itari nichts, auch wenn es sonst ein tolles Teil ist). Also habe ich es mit Xsane versucht, aber irgendwie nicht zum laufen bekommen. Schließlich stieß ich auf phpSANE. Zuvor noch schnell netpbm heruntergeladen, dann config, make, make package und make install. Klappt: Wunderbar! :) Nun phpSANE entpacken nach /volume1/web/phpSANE und los geht es mit http://ds710plus/phpSANE/phpsane.php.

Nette Oberfläche, aber es wird nicht gescannt :-(

Ein paar Anpassungen von Pfaden in config.php, ein paar Änderungen hier und da. Noch schnell ein chmod 777 von phpSANE/tmp (dort werden die Previews und die Scans abgelegt). Aber letztendlich hänge ich nun an folgenden Problemen:

1. Führe ich direkt auf der Shell folgendes Kommando aus:
Rich (BBCode):
/usr/local/bin/scanimage --resolution 100dpi -l 0mm -t 0mm -x 216mm -y 297mm --mode="Color" | /usr/local/bin/pnmtojpeg --quality=50 > ./tmp//preview_1328182450.jpg 2>tmp/error
so finde ich unter ./tmp//preview_1328182450.jpg eine wunderschöne Preview von meinem zu scannenden Papier.

2. Führe ich das selbe Kommando via exec aus scan.php aus, so erhalte ich folgende Fehler:
a)
Rich (BBCode):
scanimage: open of device pixma:04A9173F failed: Access to resource has been denied
(ein scanimage -L ergibt übrigens
Rich (BBCode):
device `pixma:04A9173F' is a CANON Canon PIXMA MP640 multi-function peripheral
b)
Rich (BBCode):
/usr/local/bin/pnmtojpeg: error while loading shared libraries: libnetpbm.so.10: cannot open shared object file: No such file or directory

3. (Nicht ganz so wichtig) Bei meinen ersten Versuchen hat scanimage <irgendein Kommando> übrigens nur die Ausgaben produziert, die es produzieren sollte, nun produziert es andauernd
Rich (BBCode):
[pixma] udp_command: No data received (select): timed out
[pixma] udp_command: No data received (select): timed out
[pixma] udp_command: No data received (select): timed out
[pixma] Scanner not added: Cannot read scanner make & model: bjnp://noname:8612

Meine konkreten Fragen sind nun:

1.) Wie bringe ich apache/php bei, dass libnetpbm.so.10 unter /usr/local/lib zu finden ist. In der /usr/syno/etc/php/extension.ini habe ich schon
Rich (BBCode):
xtension = /usr/local/lib/libnetpbm.so
extension = /usr/local/lib/libnetpbm.so.10
hinzugefügt - nützt aber nichts (habe auch n apache restart durchgeführt).

2.) Was muss ich tun, damit "nobody" (darunter läuft der Apache wohl) auf /dev/usb/04a9:173f:12F1FD zugreifen kann (ich nehme mal an, dass es dieses Device ist, denn sane-find-scanner meldet
Rich (BBCode):
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.

found USB scanner (vendor=0x04a9 [Canon], product=0x173f [MP640 series]) at libusb:002:011
  # 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.

Hier noch eine Liste der USB-Devices
Rich (BBCode):
ll /dev/usb/
total 40
drwxr-xr-x 2 root root     4096 Feb  2 20:32 .
drwxr-xr-x 8 root root    36864 Feb  1 19:55 ..
crwxrwxrwx 1 root root 180,   0 Feb  1 22:28 04a9:173f:12F1FD
crw-r--r-- 1 root root 180,  96 Mar 23  2006 hiddev0
crw-r--r-- 1 root root 180,  97 Mar 20  2007 hiddev1
crw-r--r-- 1 root root 180, 106 Oct 14  2009 hiddev10
crw-r--r-- 1 root root 180, 107 Oct 14  2009 hiddev11
crw-r--r-- 1 root root 180, 108 Oct 14  2009 hiddev12
crw-r--r-- 1 root root 180, 109 Oct 14  2009 hiddev13
crw-r--r-- 1 root root 180, 110 Oct 14  2009 hiddev14
crw-r--r-- 1 root root 180, 111 Oct 14  2009 hiddev15
crw-r--r-- 1 root root 180,  98 Mar 20  2007 hiddev2
crw-r--r-- 1 root root 180,  99 Mar 20  2007 hiddev3
crw-r--r-- 1 root root 180, 100 Mar 20  2007 hiddev4
crw-r--r-- 1 root root 180, 101 Mar 20  2007 hiddev5
crw-r--r-- 1 root root 180, 102 Oct 14  2009 hiddev6
crw-r--r-- 1 root root 180, 103 Oct 14  2009 hiddev7
crw-r--r-- 1 root root 180, 104 Oct 14  2009 hiddev8
crw-r--r-- 1 root root 180, 105 Oct 14  2009 hiddev9
crw-rw---- 1 root lp   180,   0 Nov 13  2003 lp0
crw-rw---- 1 root lp   180,   1 Oct  4  2008 lp1
 

udius

Benutzer
Mitglied seit
15. Apr 2010
Beiträge
494
Punkte für Reaktionen
0
Punkte
0
Fehler 2b ist behoben. Einfach die Zeile
Rich (BBCode):
                 export LD_LIBRARY_PATH=/usr/local/lib
vor der Zeile
Rich (BBCode):
                if env TMPDIR=${TmpDir} PATH=${PHP_PATH} $Httpd $startArg; t
in der Datei /usr/syno/etc/rc.d/S97apache-user.sh einfügen und danach ein
Rich (BBCode):
 /usr/syno/etc/rc.d/S97apache-user.sh restart

P.s.: Wieso kann ich meinen Initialpost in diesem Fred nicht editieren???

EDITH: Fehler 2a tritt auch auf der shell auf, wenn ich mit einem non-root-user versuche, auf das USB-Device zuzugreifen.
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Editieren kannst Du nur 2(?) Stunden lang. Danach kann nur noch ein Moderator editieren...
 

udius

Benutzer
Mitglied seit
15. Apr 2010
Beiträge
494
Punkte für Reaktionen
0
Punkte
0
Fehler 2a tritt auch auf der shell auf, wenn ich mit einem non-root-user versuche, auf das USB-Device zuzugreifen. Lösungen, die in diversen Foren vorgeschlagen werden sind:

udev

bzw.

hotplug

Habe leider nichts dazu gefunden. Weiß jemand von Euch etwas dazu?
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
schon einmal darüber nachgedacht, das phpSANE unter dem System-Apachen laufen zu lassen? Dieser läuft mit 'root'-Rechten und hat deswegen weniger Problem mit Zugriffsrechten usw.

Itari
 

udius

Benutzer
Mitglied seit
15. Apr 2010
Beiträge
494
Punkte für Reaktionen
0
Punkte
0
ehrlich gesagt: nein, denn ich wollte nicht ins system-apache eingreifen wg. neuer firmware uns so. aber ich hab's jetzt mit sudo hinbekommen. :D
 

jkf1

Benutzer
Mitglied seit
31. Jul 2013
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo,

wie genau sieht diese Loesung mit sudo denn aus? Ich stehe grade vor dem gleichen Problem...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat