scanner / impressora Lexmark S305

2

Comprei um scanner / impressora Lexmar Impact S305. Havia o pequeno pinguim e a palavra "Linux" entre os sistemas suportados na caixa. O problema é que os drivers oficiais são apenas para distribuições baseadas em Debian e baseadas em RPM. Eu não encontrei motoristas não oficiais.

Existe um instalador gráfico. Ele falha em ganhar minha distro (Arch Linux), no entanto instalei-o na máquina virtual com o Mint Debian e a impressora trabalha lá. Eu extraí alguns arquivos (assim, ppd, bin) do instalador também.

Minha pergunta.

O que preciso para configurar minha impressora? Parece que o ppd sozinho não é suficiente.

Atualização 08-03-2011

Eu extraí scripts do arquivo deb. Existem 3 arquivos: control, postinst (17k) e prerm (4,2k).

# ./postinst 
Executing postin scripts ...
./postinst: line 73: [: ==: unary operator expected
sudo: unknown user: /usr/local/lexmark/legacy/bin/.scripts/demon
sudo: unable to initialize policy plugin

Eu entro em um novo shell.

sh-4.2# exit
exit
cp: cannot stat '/usr/local/lexmark/legacy/etc/lxS800.ppd': No such file or directory
cp: cannot stat '/usr/local/lexmark/legacy/etc/lxS800.ppd': No such file or directory

E é o fim.

Atualização 13-03-2011

O conteúdo da linha 70-82:

#run device monitor
#TODO: investigate other ways to run daemon
#/bin/sh ${script}
if [ $username == "root" ]; then
    #/bin/sh /usr/local/lexmark/legacy/bin/.scripts/demon
    /bin/sh $script
else
    sudo -u $username /usr/local/lexmark/legacy/bin/.scripts/demon
    if [ $? -ne 0 ]; then
        #/bin/sh /usr/local/lexmark/legacy/bin/.scripts/demon
        /bin/sh $script
    fi
fi;
    
por Michas 07.03.2011 / 17:58

2 respostas

1

Ajudaria se você postasse todos os scripts envolvidos, mas eu arriscaria um palpite. Esses são scripts bash, mas eles são executados por /bin/sh , que é traço e não bash em seu sistema. Altere qualquer linha #!/bin/sh na parte superior dos scripts para #!/bin/bash e altere as chamadas explícitas de /bin/sh para /bin/bash também.

A origem imediata do erro na linha 73 é que $username não está definido, portanto, o comando [ vê os operandos == e root (mais o% final]). Este é um erro de sintaxe. É impossível saber porque a variável não está definida sem ver mais do script.

(Cuidado que o pequeno extrato dos scripts que você incluiu no seu post mostra que o autor não tem muita experiência em escrever scripts shell unix. Pelo que vi em outro lugar, isso geralmente se aplica para o resto do driver.Os drivers de código aberto fornecidos nas distribuições do Linux tendem a ter uma qualidade muito melhor do que os drivers fornecidos pelo fabricante.Infelizmente, parece que você não tem escolha com esse modelo.

    
por 13.03.2011 / 23:37
0

Dê uma olhada no (s) arquivo (s) DEB e navegue até o diretório DEBIAN. Lá você descobrirá o que o dpkg faria ao instalar o pacote e tentaria replicar essas etapas manualmente. Eles são scripts de shell .

    
por 07.03.2011 / 19:50