Debian ARM e Brother DCP195C com CUPS

5

Eu quero ter acesso à minha impressora DCP 195C (Brother) pela LAN. Para isso, comprei um pi de framboesa e instalei o CUPS nele. CUPS corre bem e tudo o resto está funcionando bem também. Meu problema é que eu não posso instalar os drivers que o irmão entrega (eles são apenas para x86 e x64) no meu pi. Existe uma opção que eu perdi para instalar o driver no meu pi?

    
por Sven Niehus 10.07.2014 / 18:13

2 respostas

3

Curto: Você tem que extrair o arquivo ppd do driver linux

longo:

PRIMEIRO

  • Visite o site do Goto Brothers Driver e pesquise por DCP195: link
  • Faça o download da versão deb do Linux de " Controlador de impressora CUPSwrapper (pacote deb) "
  • Abra o deb-File com uma ferramenta de compactação e siga o caminho até "dcp195ccupswrapper-1.1.3-1.i386 / opt / brother / Printers / dcp195c / cupswrapper"
  • Extraia o arquivo "brother_dcp195c_printer_en.ppd"

SEGUNDO

  • Abra a interface da Web cups via https://192.168.1.2:631/admin [substitua o ip pelo pi]
  • Clique em "Adicionar impressora" Selecione "Brother DCP-195C (Brother DCP-195C)" e pressione "continuar"
  • Edite as informações futuras, se necessário, marque "compartilhar impressora" e pressione "continuar"
  • Em "Ou fornecer um arquivo PPD", navegue até o arquivo extraído "brother_dcp195c_printer_en.ppd" file e envie-o Siga o próximo etapas ... concluídas

Depois disso, a impressora estava disponível, mas com um erro: "Arquivo" / usr / lib / cups / filter / brlpdwrapperdcp195c "não disponível" Porque eu instalei o driver no meu Ubuntu Laptop eu poderia simplesmente copiar o arquivo do meu laptop em / usr / lib / cups / filter / para o pi

Depois disso, meu laptop pode encontrar a impressora

    
por 01.08.2014 / 13:37
2

Você pode obter o driver i386 trabalhando no Raspberry Pi por emulação, mesmo que ele tenha um conjunto de instruções diferente. É muito lento e leva alguns minutos até a impressão chegar, mas funciona.

Encontrei a dica nesta postagem do fórum: link

Passo 1: Instale o driver conforme instruído na documentação da Brother

Você deve ter um diretório como /opt/brother/Printers/dcp195c/lpd com o filtro binário brdcp195cfilter . Esse binário é chamado pelo script filterdcp195c ao lado dele no mesmo diretório.

Eu acredito que eles oferecem um script de instalação agora, mas eu fiz isso sem. Há instruções em algum lugar que precisam ser pré-instaladas.

Etapa 2: Obter a emulação i386 em funcionamento

Isso segue as etapas do link

No final da etapa 2, você deve ser capaz de executar binários i386 como binários regulares. Em ps ax , eles mostrarão

Instalar o Qemu

Instale os pacotes qemu , binfmt-support e qemu-user-static .

Execute update-binfmts --display para ver quais formatos binários são suportados. Eles devem ser ativados automaticamente em Raspbian e Debian.

Instalar bibliotecas de suporte x86

Em Raspbian, adicione uma linha como esta ao seu /etc/apt/sources.list :

## Debian i386
deb [arch=i386] http://http.debian.net/debian stable main contrib non-free

Outro repositório da Debian também fará.

O repositório Raspbian não tem binários x86, então adicione uma linha [arch=armhf] às linhas existentes começando com deb . As linhas que começam com deb-src podem ser mantidas como estão.

Diga ao Raspbian que você quer um sistema multiarch com pacotes i386, e obtenha o i386 libc. Para que a etapa update funcione, você precisará importar e confiar nas chaves GPG do Debian para o gerenciamento de pacotes.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386

Neste ponto, você deve ser capaz de executar o binário brdcp195cfilter que vem com o driver:

$ ./brdcp195cfilter 
ERROR: ld.so: object '/usr/lib/arm-linux-gnueabihf/libarmmem.so' from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
Error: invalid option !!

Se você vir essa saída, funcionou. A linha Error: invalid option !! é brdcp195cfilter reclamando que você deveria ter passado argumentos.

Opcional: remova a mensagem de erro ld.so

O Raspbian usa /etc/ld.so.preload para pré-carregar a biblioteca libarmmem em todos os processos. A biblioteca substitui algumas rotinas de memória caras por rotinas mais rápidas escritas no assembly ARM, mas não é estritamente necessário executar o Raspbian.

É seguro ignorar o aviso, mas também é seguro remover ou comentar essa linha de /etc/ld.so.preload . O aviso será exibido nos logs de erros do CUPS, se não estiver desativado.

Etapa 3: faça isso funcionar com o CUPS

Você deve ter uma instalação do CUPS seguindo as instruções do site da Brother.

Conexão USB lenta

No meu Raspberry, o log dmesg estava alternando rapidamente entre essas linhas em algum momento:

[58981.586842] usblp0: removed
[59222.794260] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 8 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0222

O que eu consertei foi ir para localhost:631 (a interface web do CUPS) e modificar a impressora na seção "Impressoras" para que use o dispositivo USB reconhecido pelo CUPS em vez do dispositivo usb://dev/usb/lp0 .

Deixe a impressora receber dados a uma velocidade normal

brdcp195cfilter é uma etapa no processo de impressão que recebe um enorme bitmap de entrada e o converte em algo que depois é canalizado para o dispositivo de impressora. Eu medi um tamanho de entrada de ~ 90MB para uma simples mensagem "Hello world" no topo da página.

A emulação no Raspberry não é rápida o suficiente para acompanhar a alimentação da impressora com dados. A impressão funciona, mas ouvi barulhos insalubres dos motores da impressora sendo ativos enquanto aguardava dados.

Para corrigir isso, instale o utilitário sponge do pacote moreutils e edite filterdcp195c para que a saída de $BRCONV $BRCONV_OP (a.k.a. brdcp195cfilter ) seja canalizada com sponge . Deve haver três linhas dentro dos casos "PostScript", "PDF" e "*" no final do arquivo, terminando em ... | $BRCONV $BRCONV_OP | sponge .

O que isto faz é engolir toda a saída do processo do conversor de longa duração e enviá-lo apenas para a impressora de uma só vez quando o conversor é feito. Dessa forma, demora mais até que a impressão comece, mas a impressora está recebendo seus dados em um ritmo normal.

( sponge armazena os dados que ele armazena em um diretório temporário, então você não está limitado pela RAM do Raspberry Pi)

    
por 13.01.2016 / 00:01