Hallo... Ich hab von udev überhaupt keinen plan... Ich hab zwar jetzt das wiki dazu gelesen, bin mir aber nicht 100%ig sicher, das ich das wirklich verstanden hab.
Erstmal mein Problem: ich hab nen ESC/POS Drucker. Dieser wird über /dev/usb/lp0 angesprochen. Witziger weise kann CUPS mit dem Drucker nicht arbeiten, bzw druckaufträge werden nicht weiter geleitet.
Ok, aber ich kann den drucker wie oben direkt ansprechen, soll mich also nicht weiter stören. Allerdings habe ich jetzt das problem, das die zugriffsrechte 660 für root:lp sind. Der benutzer der den drucker ansprechen will, muss also man sich rootrechte verschaffen, was a) scheiße ist und b) suboptimal da sudo sich nicht aus php heraus ausführen lässt.
Nachdem ich die rechte auf 666 geändert hatte, konnte auch www-data den drucker ansprechen. Das ganze würd ich jetzt gern dauerhaft ändern.
im udev Wiki hab ich das so verstanden, das ich eine datei in /etc/udev/rules.d/ anlegen kann. Allerdings versteh ich grad nicht, warum eine hohe nummer oder ohne nummer. Wo ist der unterscheid bei einer hohen nummer (was ist eine hohe nummer? 50-99? 100-999? 1000-xxxx?) und wenn ich gar keine nummer im dateinamen angebe? Da find ich die Wiki grad recht schwammig.
Und dann ist jetzt die frage, ob meine syntax soweit passt...
1 2 3 4 5 6 7 | sada@notebook:~$ sudo lsusb [sudo] password for sada: Bus 001 Device 002: ID 04f2:b044 Chicony Electronics Co., Ltd Acer CrystalEye Webcam Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 002: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
Der Drucker ist das Winbond Electronics Corp. Virtual Com Port, wird wie gesagt über /dev/usb/lp0 angesprochen.
Ich hatte mir gedacht /etc/udev/rules.d/printer.rules anzulegen und dort folgendes reinzuschreiben:
1 2 | ## Gerät Anschluss Hersteller ID Geräte ID Zugriffsrechte KERNEL=="lp0", SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5011", MODE=="0666" |
Aber wie gesagt, ich bin mir nicht sicher ob ich die Syntax dazu richtig verstanden habe.
Passt das so?
Gruß
Sada
EDIT:
Und wenn wir grad schonmal dabei sind... Ich habe grad festgestellt das ich das Cash-Draw interface zu dem drucker nicht finde, bzw grad nicht weiß, wie ich es anspreche.
ich habs mit
1 | echo -en '1' > /dev/usb/lp0 |
versucht, aber wie ihr euch denken könnt, wird einfach nur die Zahl 1 ausgedruckt.
In einem Blog hab ich gelesen das es über /dev/ttyUSB0 bzw 1 2 etc angesprochen wird. Aber ttyUSB taucht in meinem /dev verzeichnis nicht auf ☹ ^^
Hat jemand ne idee??
EDIT LÖSUNG: Ja die oben genannte zeile mit den regeln hab ich richtig verstanden, hab's gestern noch in einer Virutellen Maschine getestet.
Wollt halt nix am Live System machen, nicht das ich mir den Kassenrechner zerf*** und die kiste nachher nicht mehr bootet ^^
Teil 2 meines problems mach ich nen extra thread auf, da es ja nicht wirklich was mit Drucker zu tun hat ☺