Calibrando o Touchscreen pelo Kernel do celular ZTE-V821 Android
Dica publicada em Linux / Kernel
Calibrando o Touchscreen pelo Kernel do celular ZTE-V821 Android
Olá a todos.
Como todos sabem, no Android o que roda por baixo gerenciando os dispositivos, é o nosso bom e velho conhecido: o Kernel do Linux.
Gostaria de compartilhar com todos as dificuldades que tive em calibrar o touchscreen do meu celular ZTE v821 dual chip Android 2.2.
Quando comprei, achei muito estranho o Touch que parecia não estar de acordo o toque com a área reconhecida, então instalei um 'applet' chamado 'touch test' que me mostrou que de fato não estava bem calibrado; na verdade, nada calibrado.
Bom, testei vários calibradores. Inclusive o que vem com o celular e nada. Na verdade, só piorou.
O que eu fiz?
Continuando a explicação:
O arquivo de teste em tempo real é "/sys/module/tpd_setting/parameters/tpd_calmat"
Se você der um 'cat' nele, verá que aparecerá uma sequência de 8 números separados por vírgula, esta é a configuração atual.
No arquivo "/sys/module/tpd_setting/parameters/tpd_calmat/tpd_def_calmat" tem o valor padrão de fábrica, que diga-se de passagem, são valores muito bons, pelo menos para mim.
Para testar o valor padão digite:
cat /sys/module/tpd_setting/parameters/tpd_calmat/tpd_def_calmat > /sys/module/tpd_setting/parameters/tpd_calmat
Não achei documentação sobre os arquivos na internet, e ao que parece, o Kernel reconhece o touchscreen como um touchpad; o que eu descobri sobre os 8 números depois de muito, mas muito mesmo testar é o seguinte:
Os 2 primeiros referem-se à área em 'x' do touch. O terceiro é o 'offset', ele serve para levar a área total do touch para cima ou para baixo.
O 4 e o 5 referem-e à área do 'y' do touch. O sexto é o 'offset', ele serve para levar a área total do touch para esquerda ou direita.
O 7 e o 8, eu não sei como denominar, mas ele retorce o quadrado transformando ele em um losango, no meu caso não precisei mexer.
Mais uma observação: a área em 'x' e 'y' precisa ser um múltiplo de 320x240 que é a resolução do celular, ou seja, suponha:
1508,-50,- 98000,-37,1131,-60000,0,0
A área de 'x' é: 1508 - (-50) = 1558, ou seja, fazendo regra de 3 simples (1558 * 240)/320= 1168,5 ~ 1168
A área de 'y' é: 1131 - (-37) = 1167, pelo resultado acima o quadrado da área está 1 menor em 'y' pela proporção, o que é aceitável.
Tudo ok até aqui? Aprendeu bastante coisa?
Falta somente salvar as configurações. Depois que você achou os valores que lhe interessa, execute:
cat /sys/module/tpd_setting/parameters/tpd_calmat > /data/misc/touchpanel/calibration
Pronto. Da próxima vez que iniciar o seu celular, ele vai carregar as configurações padrão.
Boa sorte!
Como todos sabem, no Android o que roda por baixo gerenciando os dispositivos, é o nosso bom e velho conhecido: o Kernel do Linux.
Gostaria de compartilhar com todos as dificuldades que tive em calibrar o touchscreen do meu celular ZTE v821 dual chip Android 2.2.
Quando comprei, achei muito estranho o Touch que parecia não estar de acordo o toque com a área reconhecida, então instalei um 'applet' chamado 'touch test' que me mostrou que de fato não estava bem calibrado; na verdade, nada calibrado.
Bom, testei vários calibradores. Inclusive o que vem com o celular e nada. Na verdade, só piorou.
O que eu fiz?
- instalei um software chamado 'Universal Androot', fiz o download, passei para o chip e mandei instalar.
- depois executei o dito cujo, marquei a opção "Soft Root..." depois cliquei em 'go root'. Se der certo, aparecerá a mensagem: "Woot! Your Device is rooted", algumas vezes falha.
- Precisa-se ter certeza de que o celular esteja conectado via Wireless.
- Instalei o 'SSHDroid'(no Market) e o executei. Apareceu uma mensagem em inglês pedindo permissão (Allow) para a aplicação acessar como root. Depois de rodar a aplicação ele vai informar o endereço IP.
- no console no Linux ou via putty no Windows, acesse seu celular com root@ENDERECO_IP_DO_CELULAR, a senha padrão do SSHDroid é: admin. Pode ser mudado pelo menu do celular.
- você se logou no seu celular, parabéns. Senão reveja os passo anteriores o que deu errado.
- deixe aberto no celular o Touch test para que você possa calibrá-lo.
Continuando a explicação:
O arquivo de teste em tempo real é "/sys/module/tpd_setting/parameters/tpd_calmat"
Se você der um 'cat' nele, verá que aparecerá uma sequência de 8 números separados por vírgula, esta é a configuração atual.
No arquivo "/sys/module/tpd_setting/parameters/tpd_calmat/tpd_def_calmat" tem o valor padrão de fábrica, que diga-se de passagem, são valores muito bons, pelo menos para mim.
Para testar o valor padão digite:
cat /sys/module/tpd_setting/parameters/tpd_calmat/tpd_def_calmat > /sys/module/tpd_setting/parameters/tpd_calmat
Não achei documentação sobre os arquivos na internet, e ao que parece, o Kernel reconhece o touchscreen como um touchpad; o que eu descobri sobre os 8 números depois de muito, mas muito mesmo testar é o seguinte:
Os 2 primeiros referem-se à área em 'x' do touch. O terceiro é o 'offset', ele serve para levar a área total do touch para cima ou para baixo.
O 4 e o 5 referem-e à área do 'y' do touch. O sexto é o 'offset', ele serve para levar a área total do touch para esquerda ou direita.
O 7 e o 8, eu não sei como denominar, mas ele retorce o quadrado transformando ele em um losango, no meu caso não precisei mexer.
Mais uma observação: a área em 'x' e 'y' precisa ser um múltiplo de 320x240 que é a resolução do celular, ou seja, suponha:
1508,-50,- 98000,-37,1131,-60000,0,0
A área de 'x' é: 1508 - (-50) = 1558, ou seja, fazendo regra de 3 simples (1558 * 240)/320= 1168,5 ~ 1168
A área de 'y' é: 1131 - (-37) = 1167, pelo resultado acima o quadrado da área está 1 menor em 'y' pela proporção, o que é aceitável.
Tudo ok até aqui? Aprendeu bastante coisa?
Falta somente salvar as configurações. Depois que você achou os valores que lhe interessa, execute:
cat /sys/module/tpd_setting/parameters/tpd_calmat > /data/misc/touchpanel/calibration
Pronto. Da próxima vez que iniciar o seu celular, ele vai carregar as configurações padrão.
Boa sorte!
E Agora?