terça-feira, 13 de agosto de 2013

Configurando a impressora Bematech MP-4200 TH no Linux (Ubuntu)

Esses dias precisei configurar uma impressora termica no linux e devo dizer que foi um belississimo de um parto.

A configuração da impressora termica MP-4200 TH acaba sendo mais simples do que se parece, mas se você for depender de documentação existente na internet ou do suporte técnico da Bematech, vai ficar na mão (como eu fiquei).

Sem mais delongas, a configuração foi feita em um Ubuntu 12.10 e acredito ser compatível com versões 12.04 até 13.04, se você testar em outra versão ou distribuição me avisa que eu atualizo aqui.

Após a instalação do driver e toda configuração padrão da impressora seja pela interface web do cups ou pelo gerenciador de impressoras do Ubuntu, a impressora já estará praticamente pronta pra funcionar, o problema todo só ocorre por causa de um modulo que é carregado automaticamente e por falta de permissão no dispositivo da impressora.

Para corrigir esse problema, você pode dar um `chmod` manualmente no dispositivo da impressora e corrigir o erro temporariamente (até desconectar a impressora ou reiniciar o computador).

Para tornar a correção permanente, é preciso editar dois arquivos, primeiro, o arquivo `/etc/udev/69-bema.rules`, esse arquivo é criado automaticamente pela instalação do driver, porém, ele esta errado/desatualizado, por isso, troque todo o conteudo do arquivo por:

#MP4000TH
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0b1b", ATTR{idProduct}=="0001", MODE="0777"
#MP4200TH
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0b1b", ATTR{idProduct}=="0003", MODE="0777"

Em seguida, edite o arquivo `/etc/modprobe.d/blacklist.conf` e adicione a seguinte linha:

cdc_acm

Agora é só `reboot` e já era!

59 comentários:

  1. Ai bloqueia o CDC_ACM, se tiver um modem 3G, ele não usa mais.

    ResponderExcluir
  2. Prefiro um chmod 777 em um script do boot,
    mais confiável!

    ResponderExcluir
    Respostas
    1. e qual é o script do boot? =]

      Excluir
  3. "Prefiro um chmod 777 em um script do boot,
    mais confiável!"

    JAMAIS utilize chmod 777! Seu sistema ficará nada confiável. É melhor utilizar um 666 ou 755.

    ResponderExcluir
    Respostas
    1. André, a única diferença entre 777 e 666 é a permissão de execução.

      Quanto a questão de segurança, nesse caso é apenas o dispositivo da impressora que está com permissão completa, então, no máximo (desconsiderando bugs do driver), qualquer usuário vai ter acesso a impressora (e essa é exatamente a ideia).

      Excluir
  4. Rafael,

    parabéns por ter encontrado a solução para corrigir a instalação da impressora Bematech MP-4200 TH no Ubuntu, e obrigado por compartilhá-la conosco. Escreví para a Bematech apontando o teu blog e pedindo a eles que façam a correção nos arquivos deles, ou que ao menos documentem essa diferença.

    Além do módulo cdc_acm, a diferença parece estar na syntaxe do arquivo de regra UDEV (no lugar de "BUS" --> "SUBSYSTEM" e no lugar de "SYSFS"-->"ATTR"): não se dizer se funcionaria numa distribuição Linux como RH ou Mandriva.

    Enfin, obrigado!

    Fernando

    ResponderExcluir
    Respostas
    1. Sim, funcionou perfeitamente no Fedora e acredito que funcionará também no Red Hat e CentOS.

      Excluir
    2. Guilherme, estou trabalhando em um CentOS 6.5 e não to conseguindo, consegue me ajudar? meu email é felipe at felipeoliva.eti.br

      Excluir
    3. CentOS 6.5 funcionando perfeitamente sem alteração alguma. Existe alguma incompatibilidade com a versão 64bits, na 32bits foi perfeito.

      Excluir
  5. cara.. estou com uma impressora dessas para instalar.. mais num tem nada que eu faça que ela funcione.. estou usando o linux mint 13 x86.. fiz tudo conforme o tutorial mais ainda assim nada.. se puder me dar uma ajuda cara.. vlw.. rafael.meneses@ueg.br

    ResponderExcluir
  6. como logro dar `chmod` manualmente no dispositivo da impressora e corrigir o erro temporariamente?.. disculpen mi ignorancia.. soy nuevo en linux.. saludos desde paraguay..

    ResponderExcluir
  7. Caros, estou com essa impressora para instalar e configurar no meu server ubuntu. Porém, ela não reconhece a impressora na USB de jeito algum. Não tenho porta serial no server e por isso, só posso instalá-la na USB. Será que alguém conseguiria me ajudar? Agradeço desde já.

    ResponderExcluir
    Respostas
    1. Este comentário foi removido pelo autor.

      Excluir
  8. Consegui fazer a impressora funcionar sem problemas mas eu precisaria compartilhar ela na rede com computadores Windows, como prossigo?

    ResponderExcluir
  9. Pessoal alguem sabe onde encontrar driver para Red Hat ? ou algum drivers similar para uso ? Por incrivel que pareca no site da Bematech nao tem, tem somente para Suse, Debian, Ubuntu e Mandriva !! incrivel nao ? se puderem ajudar agradeco !

    ResponderExcluir
  10. Olá pessoal.

    Fiz o teste tanto em Ubuntu 10.04 32 bits e Ubuntu 12.04 32 bits e funcionou perfeitamente.

    Gostaria que o papel cortasse totalmente, ele corta e fica um pequeno filete no meio. No meu caso isto esta atrapalhando minha aplicação.
    Alguém já conseguiu resolver isto.

    Já mexi em todas as configurações e nada.

    Abraço a todos.

    ResponderExcluir
    Respostas
    1. Edson, posso estar enganado, mas acho que essa é uma caracteristica da guilhotina da impressora.

      Esse tipo de impressora é feito pra que alguem destaque o papel ao invés de cortar completamente e ele acabe caindo no chão.

      Excluir
  11. Rafael,

    Gostaria de saber sobre algum procedimento para configurar via IP. Pode me ajudar?

    Obrigada

    ResponderExcluir
  12. Olá pessoal,

    Estou tentando fazer a MP-4200 TH funcionar no Ubuntu 12.04 e 14.04 ambos 64 bits, mas sem sucesso vocês saberiam dizer o que pode estar dando errado?

    OBS: na 12.04 consegui instalar e aparece na porta usbbema e na 14.04 nem aparece impressora para instalar.

    ResponderExcluir
  13. Alguem aí ja conseguiu instalar impressora MP-4200 TH no ubuntu 12.04?

    ResponderExcluir
  14. Estou num Ubuntu Gnome 14.04 64Bits. Uso o CUPS padrão do sistema (1.7.x).
    Assim que liguei a impressora na porta usb, o 'lsusb' se quer mostrava o que havia ali, a linha da porta estava em branco.
    Instalei o driver, mudei os arquivos, como Rafael sugeriu e tudo bem, ela apareceu no CUPS para instalação automática, como sugerido por nosso valoroso Rafael tudo correu bem, até eu mandar o CUPS mandar uma página teste, depois meu pequeno ERP mandar um comprovante: filter failure...
    Ainda não consegui chegar no final da saga...
    E agora Rafael?
    Galerinha amiga do Ubuntu?
    Bematech? (se nem do site deles eles tomam caonta...)
    Alguém...?

    ResponderExcluir
    Respostas
    1. Erick, enquanto a impressora não aparecer no comando lsusb nem adianta configurar nada.

      Verifique se no dmesg ele exibe alguma coisa quando vc conecta ou desconecta a impressora. Se não aparecer, então é problema com a USB (seja no cabo ou na porta), ou a impressora está desligada, mas vou considerar que vc ligou a impressora antes de testar :P

      Excluir
    2. Eu tô com um problema parecido. Tentei fazer a configuração pela primeira vez e deu certo em partes, porque não percebi que não foi criado o `/etc/udev/69-bema.rules`, mas tentei imprimir a página de testes e deu certo. Fiquei até feliz mas ao reiniciar a máquina nada funcionou mais e nem com reinstalação não deu certo.
      Aqui o que fiz:
      Primeiro que o lsusb mostra a porta em branco http://s29.postimg.org/hmrmxs8br/lsusb.png, acho que não é nada muito ruim porque dando um lsusb -v ele me diz algo mais http://s4.postimg.org/ellqbuqnx/lsusb_v.png e no dmesg ele parece reconhecer tud direito http://s21.postimg.org/u7qmyi3h3/dmesg.png
      A instalação também parece não dar nenhum problema http://s24.postimg.org/47x04fs1x/instalacao.png mas depois de eu fazer a instalação via CUPS http://s29.postimg.org/hg9cgy9t3/addprinter.png ela não consegue imprimir a página de teste que eu tinha conseguido da primeira vez http://s30.postimg.org/5u3xo5429/print.png

      Excluir
    3. Leandro , conseguiste resolver. Estou com o mesmo problema, a impressora é listada vis lsusb mas não consigo imprimir nela.

      Excluir
  15. Já a instalei, Rafael.
    O problema é que quando mando imprimir recebo o famigerado 'filter failure'.
    Vou investir um tempo juto ao Oráculo Google para ver se ele me indica alguma solução.
    Mas fico grato se você puder me indicar o caminho das pedras.
    Aliás Grato já estou desde o momento em que li sua postagem.
    Gratíssimo!

    ResponderExcluir
    Respostas
    1. Olá!

      estou apanhando de mão fechada com esse "Filter Failure".


      ====
      meu ambiente:


      [root@localhost2 ~]# uname -a
      Linux localhost2.localdomain 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux



      [root@localhost2 ~]# rpm -q cups
      cups-1.6.3-22.el7.x86_64

      ========
      impressora Bematech MP4200TH drivers...
      baixado do link:
      http://arquivospartners.bematech.com.br/downloads/2014/06/MP4200TH_CUPS_driver_x86.zip


      [root@localhost2 releasebema]# ll
      total 108
      -rwxr--r--. 1 root users 228 Jan 13 2010 69-bema.rules
      -rwxr--r--. 1 root users 650 Dec 9 2009 create-targz.sh
      -rwxr--r--. 1 root users 1616 Mar 17 2010 install.sh
      -rwxr--r--. 1 root users 2698 Dec 31 1969 lcithermal-spooldrv.spec
      -rw-r--r--. 1 root users 2603 May 20 2010 MP4000_58mm.ppd.gz
      -rw-r--r--. 1 root users 2610 May 20 2010 MP4000_80mm.ppd.gz
      -rw-r--r--. 1 root users 2645 May 20 2010 MP4200_58mm.ppd.gz
      -rw-r--r--. 1 root users 2653 May 20 2010 MP4200_80mm.ppd.gz
      -rwxr-xr-x. 1 root users 19264 May 20 2010 rastertobema
      -rw-r--r--. 1 root users 2372 Dec 28 2009 setup.txt
      -rw-r--r--. 1 root users 8786 May 20 2010 setup.txt.bak~
      -rwxr--r--. 1 root users 348 Feb 25 2010 uninstall.sh
      -rwxr-xr-x. 1 root users 36585 May 20 2010 usbbema


      ===============
      algumas informacoes uteis:

      [root@localhost2 releasebema]# lpstat -a
      mp4200th accepting requests since Fri 25 Dec 2015 10:38:17 AM AST


      [root@localhost2 releasebema]# lpinfo -v
      network ipp
      network ipps
      network https
      network socket
      network http
      network lpd



      [root@localhost2 releasebema]# lsusb
      Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
      Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

      =====================

      informação WEB cups server
      https://192.168.0.23:631/printers/mp4200th?which_jobs=all


      Showing 2 of 2 jobs.
      ▲ ID ▲ Name User Size Pages State Control

      mp4200th-9 Unknown Withheld 1k Unknown pending since
      Sex 25 Dez 2015 10:37:29 AST
      "Filter failed"


      mp4200th-8 Unknown Withheld 1k Unknown canceled at
      Sex 25 Dez 2015 10:37:41 AST
      "Unable to open serial port: Permission denied"



      ================

      detalhes adicionais: /var/log/cups/error_log
      **** tem até DLL ://
      pscript5.dll




      ....
      D [25/Dec/2015:11:02:44 -0400] [CGI] cgiSetVariable: MAX_JOBS="500"
      D [25/Dec/2015:11:02:44 -0400] [CGI] cgiSetVariable: MAX_LOG_SIZE="0"
      D [25/Dec/2015:11:02:44 -0400] [CGI] /usr/share/cups/drivers/pscript5.dll: Arquivo ou diretório não encontrado
      D [25/Dec/2015:11:02:44 -0400] cupsdAcceptClient: skipping getpeercon()
      D [25/Dec/2015:11:02:44 -0400] [Client 18] Accepted from localhost (Domain)
      ....


      Antecipadamente muito grato a todos pela leitura e ajuda!!!


      tomasjose2011
      at
      gmail dot com


      25 de dezembro de 2015 13:07

      Excluir
    2. Boa tarde!

      Erro meu.

      Estava testando em VMware.
      =====

      Mudei para maquina real... antiguinha que não aceita linux versão x86_64.

      Tive que instalar linux versão i386, e nesse caso foi CentOS6.7 i386
      net install a partir de /centos/6.7/os/i386 de mirror

      ===========

      Funcionou tudo certinho!!!

      bash) lpr filename

      vai que vai!!!

      Obrigado pela atenção de todos.



      Excluir
  16. No Xubuntu 14.04 64bit não aparece a impressora no CUPS, provavelmente eles mudaram algumas coisa.
    lsusb: Bus 005 Device 002: ID 0b1b:0003
    dmesg: [ 2.935989] usb 5-1: Product: MP-4200 TH Miniprinter

    Mas nada, não se instala... Só uma nota, a Bema cria o file 69-bema.rules, em

    /etc/udev/rules.d/

    não em

    /etc/udev/

    O link para o download do drivers no site da Bematech agora é

    http://www.bematech.com.br/administrador/files/equipamento/suporte/17/1394146645-Impressora_MP-4200TH_Driver_01_Linux_CUPS_x86.zip.

    Não existe o driver para 64bit mas ele se instala sem erros.

    F.

    ResponderExcluir
  17. Alguém conseguiu fazer funcionar em ubuntu 64bits?

    ResponderExcluir
  18. Depois de perder alguns dias consegui fazer funcionar no Ubuntu 14.04 64.

    Segue passos para configuração:

    1 - Instalar os seguintes drivers para a arquitetura 32 bits:
    libusb-0.1.so.4
    libcupsimage.so.2

    2 - Instalar o driver da Bematech

    3 - Editar o arquivo /etc/udev/rules.d/69-bema.rules e adicionar o seguinte conteúdo no mesmo:
    #MP4000TH
    SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0b1b", ATTR{idProduct}=="0001", MODE="0777"
    #MP4200TH
    SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="0b1b", ATTR{idProduct}=="0003", MODE="0777"

    4 - Reiniciar a maquina para recriar o arquivo de configuração com as permissões adicionadas acima.

    ResponderExcluir
    Respostas
    1. Poderia me ajudar a configurar no Ubuntu 14.04 64 bits ?

      Sua impressora aparece descrita no comando 'lsusb' ? A minha aparece no comando 'usb-devices', porém, não aparece nem no 'lsusb' e nem no 'lpinfo -v'.

      Como está o seu TTY ?
      /dev/ttyprintk
      /dev/ttyACM0

      Estou tentando configurar no meu notebook Ubuntu 14.04 64 bits, para depois tentar configurar no Raspbian (Raspberry PI 2).

      Excluir
    2. Consegui fazer funcionar no Raspberry PI 2.

      Atualizei o firmeware da impressora de 1.2 para 1.6, aí eu consigo dar um # cat teste.txt | /dev/ttyACM0. Como minha aplicação é em PHP, funciona perfeitamente.

      Excluir
  19. Driver x86 no Linux (Centos 6.6) x86_64:

    # /usr/lib/cups/filter/rastertobema
    /usr/lib/cups/filter/rastertobema: error while loading shared libraries: libcups.so.2: cannot open shared object file: No such file or directory

    Ao instalar o driver 32bits, em um sistema 64bits, faltarão as bibliotecas do cups compatíveis com o driver:
    # ldd /usr/lib/cups/filter/rastertobema
    linux-gate.so.1 => (0x00e71000)
    libcups.so.2 => not found
    libcupsimage.so.2 => not found
    libpthread.so.0 => /lib/libpthread.so.0 (0x00ad5000)
    libc.so.6 => /lib/libc.so.6 (0x00867000)
    libm.so.6 => /lib/libm.so.6 (0x00628000)
    /lib/ld-linux.so.2 (0x00845000)

    Instale as bibliotecas do cups para arquitetura x86:
    # yum install cups-libs.i686

    Verificando as dependências do driver:
    # ldd /usr/lib/cups/filter/rastertobema
    linux-gate.so.1 => (0x0036c000)
    libcups.so.2 => /usr/lib/libcups.so.2 (0x009d3000)
    libcupsimage.so.2 => /usr/lib/libcupsimage.so.2 (0x00239000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x005dd000)
    libc.so.6 => /lib/libc.so.6 (0x0036d000)
    libm.so.6 => /lib/libm.so.6 (0x00678000)
    libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x0089b000)
    libkrb5.so.3 => /lib/libkrb5.so.3 (0x00dec000)
    libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x00d11000)
    libcom_err.so.2 => /lib/libcom_err.so.2 (0x00bff000)
    libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x00253000)
    libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0x001bb000)
    libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0x001c8000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x00cdb000)
    libz.so.1 => /lib/libz.so.1 (0x001d9000)
    libtiff.so.3 => /usr/lib/libtiff.so.3 (0x002fe000)
    libpng12.so.0 => /usr/lib/libpng12.so.0 (0x001ed000)
    libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x00504000)
    /lib/ld-linux.so.2 (0x00845000)
    libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x00ad2000)
    libdl.so.2 => /lib/libdl.so.2 (0x00215000)
    libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x0070a000)
    libresolv.so.2 => /lib/libresolv.so.2 (0x009ad000)
    libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x008e8000)
    libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x0055b000)
    libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x00763000)
    librt.so.1 => /lib/librt.so.1 (0x0021a000)
    libfreebl3.so => /lib/libfreebl3.so (0x00223000)
    libselinux.so.1 => /lib/libselinux.so.1 (0x005f8000)
    libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00b75000)

    Agora o driver irá funcionar:
    # /usr/lib/cups/filter/rastertobema
    ERROR: rastertobema (1.3.0) job-id user title copies options [file]

    ResponderExcluir
  20. Vocês conseguem imprimir código barra usando CUPS na MP4200? Estou portando um app do windows para linux e esbarrei nessa necessidade. O App do windows usa a dll mp2032, mas só encontrei a equivalente .so para 32 bits, estava precisando da mesma para 64 bits. Obrigado!

    ResponderExcluir
  21. http://partners.bematech.com.br/bemacast/Lists/Postagens/Post.aspx?ID=6175

    ResponderExcluir
  22. No archlinux (e possivelmente qualquer linux =p):
    1) Instalar o driver da bematech (http://www.bematech.com.br/equipamentos/produto/mp-4200-th)
    2) Instalar libusb-0.1.so.4 32 bits, no caso do arch o pacote é libusb-compat, se o sistema for 64bits usar a versão do AUR (https://aur.archlinux.org/packages/lib32-libusb-compat/)
    3) Alterar regra do udev (essa do post)
    4) Caso o sistema seja 64bits: instalar libcups.so.2 e libcupsimage.so.2 32bits, no archlinux eles estão disponíveis no pacote lib32-libcups

    no meu não precisou colocar o cdc_acm no blacklist

    explicação mais completa:
    http://www.somatorio.org/2015/08/11/instalando-e-configurando-a-impressora-bematech-mp-4200-th-no-linux/

    ResponderExcluir
  23. CentOS 6.7, estou conseguindo realizar as impressões do sistema normalmente, mas em minha aplicação em Java não está sendo possível imprimir, preciso direcionar a impressão diretamente a impressora, mas não vai, já tentei direcionar diretamente a porta da imp, sem sucesso. Alguém já passou por isso?

    ResponderExcluir
  24. Vida cristâ:
    testei aqui no arch um
    echo -e "teste\nteste2" > /dev/ttyACM0

    e ela imprimiu...
    só precisa ver o endereço onde está ela (/dev/ttyACMx, /dev/serial/by-id//usb-Bematech_MP-4200_TH_Miniprinter-if00, etc), como eu não precisei desabilitar o cdc_adm rolou direto, não sei se ele estiver desabilitado (inclusive, se eu não me engano ele vai estar em /dev/bus/usb/001/003)

    ah, não esquece que ela armazena tudo o que enviar pra ela num buffer e só imprime no final do bloco... então dá uma lida no manual de esc/pos dela
    http://www.bematech.com.br/administrador/files/equipamento/suporte/17/1394308953-Impressora_MP-4200TH_Manual_01_Manual_de_Programacao.pdf

    ResponderExcluir
  25. estou com um problema.. tentando instalar a bematech no raspiberypi 2... imprime normalmente com o comando no shell.. echo teste >/dev/ttyACM0
    mas não consigo fazer funcionar no cups...

    ResponderExcluir
    Respostas
    1. Estou com o mesmo problema, consegue imprimir pelo echo teste >/dev/ttyACM0 no raspberry, mas no CUPS ele não aparece na lista para instalar

      Excluir
  26. Eu instalei tudo certo, pelo teste de impressao vai tudo ok, porem quando vou imprimir uma planilha do libreoffice calc ele nao respeita o tamanho do papel que a impressora usa, ele insiste em imprimir como se fosse um A4, alguem ja passou por isso?

    ResponderExcluir
  27. Deu certo no meu ubuntu 14 64 bits
    Gratidão

    ResponderExcluir
  28. estou imprimindo via php
    quem quiser a solução é só perguntar

    ResponderExcluir
    Respostas
    1. Bom dia Oliveiros, poderia compartilhar como conseguiu imprimir? Você está em ambiente Linux :

      Excluir
    2. Olá Amigo, também gostaria de saber se pode compartilhar como imprimir em php, Grato Rodrigo mesquita.

      Excluir
    3. Olá!
      no meu caso utilizo sistema php+mysql
      eu realizo uma consulta no mysql, exporto para pdf e imprimo com o comando lpr do linux

      Excluir
    4. Olá Oliveiros, obrigado por responder, vê meu caso, quero imprimir tipo no clique de um botão. é possível? como vc vez para instalar a impressora no ubuntu ?

      Excluir
  29. Consegui utilizar a impressão pelo cups seguindo s passos daqui num Debian, mas a impressão pelo cups dá muito pouco recurso de monitoramento (tá acabando papel? a tampa da impressora está aberta?, etc).

    Alguem tentou utilizar a libmp2032 para monitorar a impressora diretamente? Eu estou com um comportamento altamente esquisito com ela, quando chamo o ConfiguraModeloImpressora passando o modelo (número 7 no caso da 4200) o retorno sempre é -2, que indicaria segundo o manual "Parâmetro Inválido".. O mais curioso é que todos os demais valores (mesmo eu conseguindo perfeitamente imprimir e mandar comandos "ESC" diretamente pra ela via device). O mais curioso é que todos os outros números de modelos (que corresponderiam a outras impressoras) não retornam -2 na chamada ao "configurar" (mas evidentemente não funciona mais nada depois).

    ResponderExcluir
    Respostas
    1. Bom, fiz 2 descobertas depois de postar aqui:

      1) Esse retorno -2 pode ser ignorado, depois dele é possível iniciar a conexão, verificar status e imprimir normalmente... apenas esta chamada está com problemas
      2) A chamada ao IniciaPorta requer como parâmetro um link para o device, no código de exemplo eles sugerem linkar para ttyS49:

      ln -sf /dev/ttyACM0 /dev/ttyS49

      Seguindo esses 2 pontos e justando permissões do /dev/ttyACM0 consegui prosseguir e chamar a lib normalmente.

      Não consegui linkar estaticamente a lib pq não faço ideia do que usar no #include mas chamando dinamicamente tudo funcionou ok...

      Excluir
  30. Olá amigos, sobre impressão você conseguiu imprimir pelo ubuntu ?
    Estou fazendo um projeto na faculdade e estou usando um raspberry pi 3 e uma bematech 2500 th, porem não consigo fazer ela imprimir, você poderia me da um norte nisso aí?

    obrigado

    ResponderExcluir
  31. Rodrigo, sim.
    Coloca o botão com o link para o arquivo que faz a consulta no banco de dados, gera o pdf e imprime. Tudo num só arquivo
    coloca target_blank

    ResponderExcluir
  32. Aqui eu coloquei no bd a opção de imprimir automaticamente.
    Faz a consulta no bd, se imprimir for = a sim, manda pra um arquivo onde é impresso automaticamente em 2 vias, do contrário, não imprime, aí fica a opção de imprimir manualmente ao clique de um botão

    ResponderExcluir
  33. sudo apt-get install libusb-0.1-4:i386

    sudo ln -s /lib/i386-linux-gnu/libusb-0.1.so.4 /usr/lib/libusb-0.1.so.4

    ResponderExcluir
    Respostas
    1. OBS: Usando ubuntu 16.04 64bit

      Excluir
  34. alguem ainda tem esse driver do link do blog pra me passar?

    ResponderExcluir
  35. encontrei o drive
    não funciona no slackware 14
    aff!

    ResponderExcluir
  36. Olá!
    o drive disponível no site da bematech funciona. No slackware editar o arquivo install.sh e apagar a as palavras sudo.
    Para imprimir em paisagem tem que especificar diretamente no comando lpr: system("lpr -#1 -o landscape -o fit-to-page /var/www/htdocs/mixvendas/venda/venda3.pdf");

    ResponderExcluir