Quem compra algum modelo de impressora fiscal Bematech que vem com USB (ex: MP3000) e tenta usar no Linux já deve ter percebido que não consegue fazer o software dela funcionar, apesar da mesma ser reconhecida normalmente pelo SO.
Pois é: realmente a aplicação fornecida pelo fabricante (bematech.out) não funciona se a impressora for ligada via USB no Linux.
O problema se dá pela seguinte razão: a impressora ao ser plugada no Linux via USB emula uma porta paralela e o software fornecido só trabalha com portas seriais.
Ao plugar a mesma num Ubuntu é criado automaticamente um /dev/usblp0. Configurando o software da impressora para mapear a porta usando esse device, ao tentarmos rodar o mesmo ele informa que houve problema com a porta serial. Foi percebido após alguns debugs que o software usa ioctl (que só funciona com portas seriais), e isso acaba causando o erro.
Em contato com o suporte da fabricante, a informação é de que realmente a impressora não funciona no Linux se plugada na porta USB, mas existe um projeto para desenvolver um software compatível que não tem ainda nem previsão de início, quanto mais de release.
E por enquanto o jeito mesmo é usar a boa e velha porta serial…
PS: se você desenvolver um software para isso, por favor depois poste aqui o link para os sources. 😉