Tablet finalmente dominado. (diário de desenvolvimento)

.
Depois de mais de 1 ano de trabalho escravo, finalmente consegui dominar a coisa.
O que é isso?
Isso é um Tablet de U$68,00. Como eu havia dito a 1 ano atrás, o Brasil esta indo para o saco, não compensa mais desenvolver plaquinhas com ARM.
No inicio de 2011, percebi que o melhor seria adequar um tablet para meus projetos de automação.
Para isso deveria conseguir fazer ele se comunicar com o mundo externo, para ler tensões, enviar e receber comandos para o exterior etc.
Ao final, o tablet acabaria se tornando uma interface humana (IHM) sofisticada.
Mas as coisas nao são tão faceis assim. O tablet vem com a P**** do Android instalado em cima do Linux. Fazer uma IHM para uma maquina sofisticada, rodando Android não é legal. Android demora muito pra inicializar, tem aquele monte de icones que nao serão usados, trava pacas e principalmente, nenhum cliente vai querer uma IHM dedicada para sua maquina com isso.
Eu até que instalei todo o ambiente de desenvolvimento para o Android (Eclipse + SDK Android). Até que aprendi coisa legais pacas mas...., não dá. A P**** do Android nao foi feito pra isso (automaçao de maquinas ou processos).
O que fazer então?
Oras, arrancar o Android e usar o tablet como uma placa convencional de ARM. Mas e o Linux?
Outro drama. É horrivel trabalhar com desenvolvimento de Linux em ambiente Windows.
Maquina Virtual + Linux + Ambiente de desenvolvimento Linux + aquelas linhas de comandos que só alienígenas entendem. Tortura pura.
Graças ao Lucas Zampar (o Mestre dos Mestres), consegui chegar até ai.
Descobri que precisava fazer um troço chamado Rooting no tablet, para ter acesso aos diretorios e poder instalar e desistalar qualquer coisa.
Meses depois consegui desinstalar o Android do tablet. Claro que tablet nao faz nada depois do boot do Linux mas a partir desse boot , eu colocaria minha aplicação. Não foi tão facil assim.
Tirar o Android significa também tirar todas as chamadas do Linux para ele, sem deixar o Linux reclamar.
Alguns meses depois, eureka. Ao ligar o tablet, entra o boot do Linux e após, meu "Olá Mundo" aparece na tela.
Mas como fazer tudo isso, sem ter o codigo fonte do Kernel do Linux?
Onde conseguir o kernel original e drivers desse tablet?
Descobre-se coisas interessantes quando se vai atras disso.
Primeiro passo: descobrir quem é o fabricante do ARM usado no tablet. Não perca tempo tentando contactar o fabricante do tablet e nem perca tempo com kernel achado em forum da internet, que dizem ser o kernel do tablet.
O ARM usado no meu tablet:
http://www.telechips.com/eng/Product/mobile_pro08.asp
O kernel fornecido gratuitamente por esse fabricante:
https://www.telechips.com/technical_sup ... .asp?idx=2
Descoberta numero 1: Chineses não desenvolvem tablets. Eles pegam o projeto pronto (hardware e software) fornecido pelo fabricante do ARM. Tipo Aplication Note. É isso que eles fazem.
O kernel fornecido pelo fabricante é lindo. Vem com todos os drivers da placa e dá entender a sequencia de chamadas de inicialização do hardware interno e como ele deixa tudo prontinho para funcionar.
Depois da inicializaçao do Linux, aparece a chamada para a inicialização da P**** do android.
Até eu chegar a esse ponto, já se passou 1 ano.
Depois de ser torturado e amaldiçoado pelas linhas de comandos do Linux, acordei um dia e disse: " vão pra P*t* que los pariu, quem inventou essa P**** de linha de comando.
Por que não criam icones ou e teclas de atalho para essas linhas de comando? Vão se fudeire. Pra compilar, montar e linkar um projeto no Keil, basta clicar num icone. Por que não fazem isso nos ambientes de desenvolvimento do Linux?
Não me respondam, nao quero saber.
Depois de mais de 1 ano de trabalho escravo, finalmente consegui dominar a coisa.

O que é isso?
Isso é um Tablet de U$68,00. Como eu havia dito a 1 ano atrás, o Brasil esta indo para o saco, não compensa mais desenvolver plaquinhas com ARM.
No inicio de 2011, percebi que o melhor seria adequar um tablet para meus projetos de automação.
Para isso deveria conseguir fazer ele se comunicar com o mundo externo, para ler tensões, enviar e receber comandos para o exterior etc.
Ao final, o tablet acabaria se tornando uma interface humana (IHM) sofisticada.
Mas as coisas nao são tão faceis assim. O tablet vem com a P**** do Android instalado em cima do Linux. Fazer uma IHM para uma maquina sofisticada, rodando Android não é legal. Android demora muito pra inicializar, tem aquele monte de icones que nao serão usados, trava pacas e principalmente, nenhum cliente vai querer uma IHM dedicada para sua maquina com isso.
Eu até que instalei todo o ambiente de desenvolvimento para o Android (Eclipse + SDK Android). Até que aprendi coisa legais pacas mas...., não dá. A P**** do Android nao foi feito pra isso (automaçao de maquinas ou processos).
O que fazer então?
Oras, arrancar o Android e usar o tablet como uma placa convencional de ARM. Mas e o Linux?
Outro drama. É horrivel trabalhar com desenvolvimento de Linux em ambiente Windows.
Maquina Virtual + Linux + Ambiente de desenvolvimento Linux + aquelas linhas de comandos que só alienígenas entendem. Tortura pura.
Graças ao Lucas Zampar (o Mestre dos Mestres), consegui chegar até ai.
Descobri que precisava fazer um troço chamado Rooting no tablet, para ter acesso aos diretorios e poder instalar e desistalar qualquer coisa.
Meses depois consegui desinstalar o Android do tablet. Claro que tablet nao faz nada depois do boot do Linux mas a partir desse boot , eu colocaria minha aplicação. Não foi tão facil assim.
Tirar o Android significa também tirar todas as chamadas do Linux para ele, sem deixar o Linux reclamar.
Alguns meses depois, eureka. Ao ligar o tablet, entra o boot do Linux e após, meu "Olá Mundo" aparece na tela.
Mas como fazer tudo isso, sem ter o codigo fonte do Kernel do Linux?
Onde conseguir o kernel original e drivers desse tablet?
Descobre-se coisas interessantes quando se vai atras disso.
Primeiro passo: descobrir quem é o fabricante do ARM usado no tablet. Não perca tempo tentando contactar o fabricante do tablet e nem perca tempo com kernel achado em forum da internet, que dizem ser o kernel do tablet.
O ARM usado no meu tablet:
http://www.telechips.com/eng/Product/mobile_pro08.asp
O kernel fornecido gratuitamente por esse fabricante:
https://www.telechips.com/technical_sup ... .asp?idx=2
Descoberta numero 1: Chineses não desenvolvem tablets. Eles pegam o projeto pronto (hardware e software) fornecido pelo fabricante do ARM. Tipo Aplication Note. É isso que eles fazem.
O kernel fornecido pelo fabricante é lindo. Vem com todos os drivers da placa e dá entender a sequencia de chamadas de inicialização do hardware interno e como ele deixa tudo prontinho para funcionar.
Depois da inicializaçao do Linux, aparece a chamada para a inicialização da P**** do android.
Até eu chegar a esse ponto, já se passou 1 ano.
Depois de ser torturado e amaldiçoado pelas linhas de comandos do Linux, acordei um dia e disse: " vão pra P*t* que los pariu, quem inventou essa P**** de linha de comando.
Por que não criam icones ou e teclas de atalho para essas linhas de comando? Vão se fudeire. Pra compilar, montar e linkar um projeto no Keil, basta clicar num icone. Por que não fazem isso nos ambientes de desenvolvimento do Linux?
Não me respondam, nao quero saber.