Mira, una regla udev puede servir:

Pon un archivo en /etc/udev/rules.d/ puede llamarse 99-usbodoo.rules que
tenga algo como esto:

SUBSYSTEM=="usb", ATTR{idVendor}=="067b", ATTR{idProduct}=="2303",
MODE="666"

Reinicias udev, desconectas y reconectas la impresora... y ves sí funciona.

El 13/10/15 a las 13:48, Alcides Rivera escribió:
> Necesito realizar la impresión de un ticket de cocina utilizando ODOO 8
> en el módulo TPV a través de pos_restaurant sin embargo solo dispongo de
> una impresora serial y el sistema utiliza USB para dicha impresión lo
> que he hecho es adquirir un convertidor SERIAL a USB pero tengo el
> siguiente inconveniente al intentar acceder a la impresora he simulado
> en el siguiente script de python el acceso a la impresora:
> 
> import usb
> 
> class FindUsbClass(object):
>     def __init__(self, usb_class):
>         self._class = usb_class
>     def __call__(self, device):
>         # first, let's check the device
>         if device.bDeviceClass == self._class:
>             return True
>         # transverse all devices and look through their interfaces to
>         # find a matching class
>         for cfg in device:
>             intf = usb.util.find_descriptor(cfg,
> bInterfaceClass=self._class)
> 
>             if intf is not None:
>                 return True
> 
>         return False
> 
> printers = usb.core.find(find_all=True, custom_match=FindUsbClass(0))
> 
> for printer in printers:
>     if hex(printer.idVendor) == '0x67b':
>         print hex(printer.idVendor)
>         print hex(printer.idProduct)
>         print usb.util.get_string(printer, 256, printer.iManufacturer)
> 
> Pero al intentar ejecutar con el usuario openerp da el sigueinte error:
> 
> 0x67b
> 0x2303
> Traceback (most recent call last):
>   File "prueba.py", line 26, in <module>
>     print usb.util.get_string(printer, 256, printer.iManufacturer)
>   File "/home/openerp/.local/lib/python2.7/site-packages/usb/util.py",
> line 271, in get_string
>     langid
>   File
> "/home/openerp/.local/lib/python2.7/site-packages/usb/control.py", line
> 173, in get_descriptor
>     data_or_wLength = desc_size)
>   File "/home/openerp/.local/lib/python2.7/site-packages/usb/core.py",
> line 955, in ctrl_transfer
>     self._ctx.managed_open()
>   File "/home/openerp/.local/lib/python2.7/site-packages/usb/core.py",
> line 105, in managed_open
>     self.handle = self.backend.open_device(self.dev)
>   File
> "/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
> line 722, in open_device
>     return _DeviceHandle(dev)
>   File
> "/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
> line 600, in __init__
>     _check(_lib.libusb_open(self.devid, byref(self.handle)))
>   File
> "/home/openerp/.local/lib/python2.7/site-packages/usb/backend/libusb1.py",
> line 552, in _check
>     raise USBError(_strerror(ret), ret, _libusb_errno[ret])
> usb.core.USBError: [Errno 13] Access denied (insufficient permissions)
> 
> He agregado al usuario "openerp" a los grupos: "dialout", "tty", "lp",
> "lpadmin".
> 
> Pero sigo sin poder ejecutar con éxito. Al ejecutar con sudo python
> prueba.py se realiza correctamente es decir el script funciona, pero no
> puedo ejecutar con "sudo" desde ODOO.
> 
> Su ayuda por favor,
> 
> Saludos
> 
> -- 
> Ing. Alcides Rivera
> *JEFE DE SISTEMAS, DESARROLLO Y TECNOLOGÍA
> *
> *VIRTUALSAMI CIA. LTDA.*
> *Dirección:* Carlos Elías Almeida 7-29 y Gabriela Mistral
>                 Tras el Centro Comercial Laguna Mall,
>                 Barrio Pilanquí del IESS, Ibarrra - Imbabura - Ecuador
> *Teléfonos:* 065002485, 062953199, 0991463145
> *Correos Electrónicos:* alci...@virtualsami.com.ec
> <mailto:alci...@virtualsami.com.ec>,
>                                 alcides.river...@gmail.com
> <mailto:alcides.river...@gmail.com>
> *Sitio Web:* http://www.virtualsami.com.ec
> 
> 
> _______________________________________________
> Lista de Correo Asociacion@listas.asle.ec
> Visite http://listas.asle.ec/mailman/listinfo/asociacion
> para modificar las opciones de suscripción (suscribirse, retirarse, etc).
> 
> Participa en las listas y próximo foro, como socio de ASLE 
> http://www.asle.ec/portal2/node/7
> 
> Visita el canal IRC #asle en irc.freenode.org para consultas en tiempo real.
> 
> Todo mensaje que sea enviado a esta lista es público (especialmente los que 
> contengan una nota de confidencialidad) y cualquiera puede hacer el uso que 
> desee de él.
> 
_______________________________________________
Lista de Correo Asociacion@listas.asle.ec
Visite http://listas.asle.ec/mailman/listinfo/asociacion
para modificar las opciones de suscripción (suscribirse, retirarse, etc).

Participa en las listas y próximo foro, como socio de ASLE 
http://www.asle.ec/portal2/node/7

Visita el canal IRC #asle en irc.freenode.org para consultas en tiempo real.

Todo mensaje que sea enviado a esta lista es público (especialmente los que 
contengan una nota de confidencialidad) y cualquiera puede hacer el uso que 
desee de él.

Responder a