Pages

Friday, June 02, 2006

Erro ao acessar o /dev/wacom

Esse post podia se chamar: "Erro ao executar programas gráficos no emulador de terminal do Ubuntu Dapper", mas o título ficou grande demais ...

Quando eu atualizei o Ubuntu Breezy para o Ubuntu Dapper, eu obtia o seguinte erro todas as vezes que chamava um aplicativo gráfico no terminal:
X Error: BadDevice, invalid or uninitialized input device 168
Major opcode: 148
Minor opcode: 3
Resource id: 0x0
Failed to open device
O que me impressiona nesse caso não é o erro, mas as mais variadas soluções dadas para esse problema, algumas envolvendo até recompilação de pacotes.

Bem, olhando o erro temos logo no começo: "X Error", ou seja, o erro é do servidor X, logo, se isto está ocorrendo no momento, o log /var/log/Xorg.0.log certamente tem alguma coisa coisa a respeito.

Dando um cat no arquivo de log referido, temos algo parecido com:
(EE) xf86OpenSerial: Cannot open device /dev/wacom
No such file or directory.
Error opening /dev/wacom : No such file or directory
Não é preciso ser um especialista em linux ou em mensagens de erro para identificar o problema. Basta um pouquinho de inglês. Não existe um /dev/wacom, logo ele não pode ser acessado e o erro exibido inicialmente é devido a não existência desse dispositivo.

Por que isso aparece ? Ainda não descobri, mas descobri que eu não preciso disso e talvez você também não precise, afinal se está usando o Ubuntu até agora e não teve erro algum não acessando um dispositivo que não existe é por que no mínimo o dispotivo é opcional. Ou seja, é possível viver sem ele.

Se continuar daqui, antes de qualquer coisa: FAÇA UM BACKUP DO ARQUIVO /etc/X11/xorg.conf

Para eliminar o erro, edite, como root, o arquivo /etc/X11/xorg.conf e comente todas as linhas referentes ao dispositivo (comentar siginifica adicionar um # na linha referida). No meu caso, foram as linhas (já comentadas), note que pode existir pequenas variações de sistema para sistema e que os blocos não precisam estar nessa ordem.
# Section "InputDevice"
#      Driver "wacom"
#      Identifier "stylus"
#      Option "Device" "/dev/wacom"
#      Option "Type" "stylus"
#      Option "ForceDevice" "ISDV4"
# EndSection
#
# Section "InputDevice"
#      Driver "wacom"
#      Identifier "eraser"
#      Option "Device" "/dev/wacom"
#      Option "Type" "eraser"
#      Option "ForceDevice" "ISDV4"
# EndSection
#
#Section "InputDevice"
#      Driver "wacom"
#      Identifier "cursor"
#      Option "Device" "/dev/wacom"
#      Option "Type" "cursor"
#      Option "ForceDevice" "ISDV4"
# EndSection
e as linhas
InputDevice "stylus" "SendCoreEvents"
InputDevice "cursor" "SendCoreEvents"
InputDevice "eraser" "SendCoreEvents"
Que estão dentro do "ServerLayout"
Section "ServerLayout"
      Identifier "Default Layout"
      Screen "Default Screen"
      InputDevice "Generic Keyboard"
      InputDevice "Configured Mouse"
#      InputDevice "stylus" "SendCoreEvents"
#      InputDevice "cursor" "SendCoreEvents"
#      InputDevice "eraser" "SendCoreEvents"
EndSection
Reinicie o X, abra o terminal e verifique que não existem mais mensagens de erro ao executar um programa gráfico a partir de um emulador de terminal.

Um comentário é merecido em relação as várias soluções encontradas pela web. Muita gente relacionou o problema com o aplicativo que estava sendo chamado no terminal, outros relacionaram o problema com o sudo, todas as soluções que encontrei são verdades e mentiras ao mesmo tempo.
São verdades por que as que funcionam , bem, resolve, são mentiras por que "resolver" não é o verbo correto e sim "contornar". Uma das soluções consistia exatamente em contornar o "ServerLayout" com uma opção embutida no código fonte. Assim, quando o aplicativo for compilado ele não vai "olhar" para o servidor X, mas assumir um default embutido no binário.

Existe uma coisa importante a ser dita: Caso você tenha um dispositivo /dev/wacom é bem provável que queira usar esse recurso, nesse caso essa solução é inútil.
Outra coisa importante é que ao usar sudo dpkg-reconfigure -phigh xserver-xorg ele deve recriar as entradas /dev/wacom, então caso os erros apareçam novamente depois de uma atualização, basta repitir o processo.

Caso algo de errado, restaure a cópia de segurança que você fez e reinicie o servidor X, ou então digite sudo dpkg-reconfigure -phigh xserver-xorg (isso restaura a configuração original, como se tivesse acabado de instalar o sistema) e reinicie o servidor X.

Se alguém tiver alguma outra solução para esse problema, eu ficaria feliz e agradecido em receber um e-mail/comentário com ela ou com um link para ela.

[update]
Hoje, 8 de Agosto de 2006, o Leandro Melo de Sousa enviou uma pergunta para a lista Ubuntu-br sobre uma mesa digitalizadora, eu não sei a resposta do problema dele, mas o fato é que ele forneceu a seguinte referência https://help.ubuntu.com/community/Wacom. Nesse link existe um material ensinando como instalar uma mesa digitaliadora Wacom.
Voltando a esse post, existem duas repostas bem definidas aqui: a primeira é que eu não tenho uma mesa digitalizadora wacom, a segunda é que eu não tenho os drives que fazem tudo isso funcionar instalado no meu computador, o que em outras palavras, justifica plenamente as mensagens de erro obtidas e demonstradas neste post.
[/update]

Technorati Tags:

1 comment:

  1. Anonymous24/6/06 02:06

    Quero lhe agradecer por este post. Buscei no Google por uma soluçao facil, mas nao achei nada em ingles. Ja que falo portugues (um pouco), seu blog me ajudou muito. Valeu!

    @@ron
    --desculpe a falta dos acentos :)

    ReplyDelete