Objetivo
Mas qual a finalidade de se usar a porta diretamente? Esse foi exatamente o motivo pelo qual essa opção foi desabilitada. Os drivers de impressão junto com o CUPS já estão suficientemente muito bons e dão conta de instalar e configurar impressoras apenas conectando-as.
Mas caso você tenha necessidade de escrever diretamente na impressora, seja por falta do driver ou se você é programador e quer usar a impressora a partir de sua aplicação, aqui é o lugar.
Impressora na porta paralela
Essa é a parte fácil. Caso você tenha uma impressora que se conecte na porta paralela,
como a Epson LX 300 (+/II), apenas abra um terminal e siga as instruções:
$ sudo su
# echo ola, mundo > /dev/lp0
Escrever como usuário comum
Note que precisamos logar como root (super usuário) para escrever diretamente na impressora. Mas podemos melhorar isso adicionando nosso usuário no grupo lp. Para isso suponha que o nome do usuário seja mad3linux. Abra um terminal e:
$ sudo su
Verifique em quais grupos você está:
# groups mad3linux
Para adicionar um usuário em um grupo, é necessário adicionar em todos os grupos anteriores e ao novo grupo. Para isso use os grupos listados no comando acima e faça:
# usermod -a -G mad3linux,adm,cdrom,sudo,sambashare,lpadmin,lp mad3linux
Neste exemplo eu mostrei alguns prováveis grupos ao qual um usuário administrador
faz parte. Note no final o grupo lp e depois o nome do usuário. A sintaxe genérica seria:
# usermod -a -G grupo1,grupo2,grupo3 usuario
Após isso já é possível imprimir diretamente com seu usuário. Saia do usuário root e tente imprimir novamente:
# exit
$ echo ola, mundo > /dev/lp0
Impressora na porta USB
Para habilitar a porta usb primeiro temos que modificar o arquivo /etc/modules. Este arquivo contém os nomes dos módulos do kernel que deverão ser carregados ao iniciar.
Você verá que o módulo lp já está habilitado. Agora basta adicionar mais uma linha com o módulo usblp. Ao final o arquivo deve estar dessa maneira:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
lp
usblp
É provável que seja necessário reiniciar já que os módulos são carregados no boot. Conecte uma impressora na porta USB e faça o teste para ver se aparece a porta:
$ ls /dev/usb/lp0
Esse comando retorna o caminho passado como parâmetro indicando que existe.
Adicione o grupo usblp
Para escrever diretamente temos que fazer o mesmo procedimento acima. Certifique-se antes se o grupo usblp existe. Para isso num terminal digite:
$ cat /etc/group | cut -d: -f1 | grep lp
Aparecerá todos os grupos que tenham lp. Caso o grupo usblp não apareça, adicione-o.
$ sudo su
# groupadd usblp
Depois adicione seu usuário ao grupo.
# usermod -a -G mad3linux,adm,cdrom,sudo,sambashare,lpadmin,lp,usblp mad3linux
Pronto. Já deve ser possível executar o comando abaixo:
$ echo ola, mundo > /dev/usb/lp0
Usando Java para escrever na impressora
Veja um exemplo simples de como escrever diretamente na impressora.
Projeto no Github - MAD3 printing
Você pode aplicar a mesma ideia em impressoras de etiquetas, por exemplo a Zebra TPL 2844. Ela utiliza uma série de comandos para criar texto puro, códigos de barra, QR codes, etc.
Faça testes, crie um driver, compartilhe e seja livre.