Problema com driver de impressora

Iniciado por Denommus, 09 de Fevereiro de 2012, 19:35

tópico anterior - próximo tópico

Denommus

Desenvolvi um driver para CUPS (com um arquivo .drv, devidamente compilado num .ppd e um filtro em C, devidamente compilado num binário), porém o Linux não reconhece a impressora como uma impressora. Ela não aparece na lista de impressoras a serem adicionadas nem nada disso.

O Linux reconhece a impressora como um dispositivo USB conectado, então desconfio que meu PPD esteja pegando o nome do modelo errado (a impressora é um protótipo, não existe em nível industrial, ainda).

Existe alguma forma de descobrir o modelo da impressora através da linha de comando? O manual da mesma não é muito claro sobre isso.

Existe a possibilidade de ser outra coisa atrapalhando o reconhecimento do driver?

Esse é o resultado do comando lsusb -v. Tirei o nome da empresa fabricante e o modelo da impressora porque é um modelo novo, ainda não lançado

Bus 001 Device 009: ID 0404:0312 **** Corp. ***** Printer Receipt
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          255 Vendor Specific Class
  bDeviceSubClass       255 Vendor Specific Subclass
  bDeviceProtocol       255 Vendor Specific Protocol
  bMaxPacketSize0         8
  idVendor           0x0404 **** Corp.
  idProduct          0x0312 ***** Printer Receipt
  bcdDevice           35.29
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              7
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               1


Obrigado.

irtigor

- O olhe o /var/log/messages.log. Pode ter alguma coisa interessante lá.
- Você devia entrar em contato com o fabricante. Esse canal não é o ideal.

Denommus

#2
Contatei o fabricante, e percebi que o problema não é esse.

Me parece ser problema de permissão. Quando tento adicionar a impressora pelo administrador do CUPS (localhost:631/admin), aparecem os seguintes erros no log:
E [10/Feb/2012:08:07:41 -0400] Unable to bind socket for address 127.0.0.1:631 - Address already in use.
E [10/Feb/2012:08:07:41 -0400] Unable to bind broadcast socket - Address already in use.
E [10/Feb/2012:08:57:09 -0400] Unable to bind socket for address 127.0.0.1:631 - Address already in use.
E [10/Feb/2012:08:57:09 -0400] Unable to bind broadcast socket - Address already in use.
E [10/Feb/2012:08:57:19 -0400] Returning HTTP Forbidden for CUPS-Get-Devices (no URI) from localhost
E [10/Feb/2012:08:57:19 -0400] [CGI] CUPS-Get-Devices request failed with status 401: Esquecido
E [10/Feb/2012:08:57:23 -0400] Returning HTTP Forbidden for CUPS-Get-Devices (no URI) from localhost


Apesar de aparecer "esquecido", em inglês é "forbidden" (que significa "proibido"). Que configuração preciso mudar para isso?



EDIT: Perdão pela perda de tempo, mas descobri que o problema é bem diferente do que eu imaginava. O CUPS tem uma documentação um tanto confusa, e só agora eu entendi que quem determina as impressoras disponíveis no sistema são os backends, e não os ppds.

Podem trancar o tópico.