A algum tempo fiz um post falando como instalar o ubuntu na pandaboard, agora irei falar sobre o android, além disso também irei ensinar a instalar o kinect no android na panda.
A pandaboard é um kit de desenvolvimento ARM, ideal para desenvolvedores de sistemas embarcados devido a seus vários dispositivos de I/O, que vão desde portas USB a SLOT de expansão LCD, além disso ela conta com o um processador OMAP dual core. Ela tem seu boot através de cartão SD o qual podemos configura-lo com vários sistemas operacionais,algo que ensinamos em nosso post anterior no caso como dar bot com o ubuntu é neste ensinaremos como configurar um cartão com Android.
Criando um cartão de boot Android
Para que um cartão SD de boot na panda e necessário que contenha os arquivos de bootload, a kernel do SO e o próprio So, no caso de Android ainda é necessário um virtualização do cartão sd do dispositivo e um a partição userdata. E algumas situações e necessário gerar todos estes arquivos, mas felizmente a Linaro já nos oferece os arquivos de sua versão Android para download.
Então vamos começar, primeiramente nescessitamos instalar os pacotes da linaro, para isto faça os seguintes comandos:
[code]>$ sudo add-apt-repository ppa:linaro-maintainers/tools[/code]
[code]>$ sudo apt-get update[/code]
[code]>$ sudo apt-get install linaro-image-tools[/code]
Após isto é necessário fazer download dos arquivos no site da linaro, então vá na nesta pagina e http://releases.linaro.org/ e entre na versão mais novas, na entre nas abas, android, panda (no meu caso pegamos a versão 4.2.2, que estava na aba 13.05, nosso link final foi http://releases.linaro.org/13.05/android/panda) La baixe os seguintes arquivos, boot.tar.bz2, userdata.tar.bz2, system.tar.bz2, eles contêm respectivamente os arquivos de boot do android, do usuário e do sistema.
Agora precisamos iremos instalar os arquivos no cartão, então coloque o cartão no pc e user o seguinte comando para para verificar aonde ele está:
[code]>$ dmesg[/code]
Ele ira de as saídas de debug de I/O sistema entre esta as dos dados de entrada do cartão, procure por umas saída /dev/<algo> que provavelmente deverá ser /dev/sda/ ou /dev/mmk0, este e o endereço de seu cartão SD.
Agora vamos instalar o ardroid no cartão, va na pasta aonde vc fez download do arquivos e faça o seguinte comando:
[code]>$ linaro-android-media-create –mmc /dev/sdc –dev panda –boot boot.tar.bz2 –system system.tar.bz2 –userdata userdata.tar.bz2[/code]
Você deverá perceber que o sistema ira montar várias novas partições, são as partições criadas para montar o android no cartão.
Agora vamos instalar os dados gráficos do linaro, para isso baixe o install-binaries-4.0.4.sh de permissão total a ele e o execute, com os seguintes comandos:
[code]>$ wget <a href="http://people.linaro.org/~vishalbhoj/install-binaries-4.0.4.sh">http://people.linaro.org/~vishalbhoj/install-binaries-4.0.4.sh</a>[/code]
[code]>$ chmod 777 install-binaries-4.0.4.sh[/code]
[code]>$ ./install-binaries-4.0.4.sh[/code]
Pronto agora temos o Android configurando no cartão SD, você já pode liga-lo na Panda caso queria, agora vamos ensinar a instalar os pacotes para o kinect nele.
Instando o kinect na Panda
Para o funcionamento do kinect necessitamos de um computador Linux como host, este devera ter os pacotes do OpenNI e o drive do kinect instalado, então inicialmente vamos ensiar a instalar-los.
Primeiros vamos criar uma pasta para trabalhos no home:
[code]>$ $HOME[/code]
[code]>$ mkdir work[/code]
La iremos fazer download dos pacotes de OpenNI, e nele faremos a instalação com pacote mais novo co OpenNI com ausilo do git, para isso precisamos de um pacote git especifico então faça:
[code]</pre>
>$apt-get install git ai32-libs
<pre>[/code]
Agora podemoss começar a instalação do OpenNi:
[code]>$ cd work[/code]
[code]>$ wget http://dl.google.com/android/ndk/android-ndk-r7c-linux-x86.tar.bz2[/code]
[code]>$ tar -jxvf android-ndk-r7c-linux-x86.tar.bz2[/code]
[code]>$ cd android-ndk-r7c[/code]
[code]>$ export PATH=$PATH:$PWD[/code]
[code]>$ cd sources[/code]
[code]>$ git clone https://github.com/OpenNI/OpenNI.git[/code]
[code]>$ cd OpenNI/Platform/Android/jni[/code]
[code]>$ndk-build[/code]
Pronto agora já baixamos e compilamos os OPenNI, está na hora de instalarmos o drive do kinect, ele será instalando no inicio da pasta que criamos para trabalharmos, e sera compiladas com auxilio do OpenNi, isto se dará com os seguintes comandos:
[code]>$ export NDK_MODULE_PATH=$HOME/work/android-ndkr7c/sources/OpenNI/Platform/Android/jni[/code]
[code]>$ cd $HOME[/code]
[code]>$ cd work[/code]
[code]>$git clone https://github.com/ph4m/SensorKinect.git[/code]
[code]>$ cd SensorKinect[/code]
[code]>$git checkout faf4994fceba82e6fbd3dad16f79e4399be0c184[/code]
[code]>$ cd Platform/Android/jni[/code]
[code]>$ndk-build[/code]
Pronto nosso computador host já conta dos programas e necessários, agora vamos passar os dados para a arquivos necessários para a panda, eles serão um conjuntos de bibliotecas e alguns arquivos xml, todos estes arquivos já estão contidos no seu computador host após compilação dos OpenNi e do drive do kinect, nestes endereços:
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libOpenNI.jni.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libnimCodecs.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libnimRecorder.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libXnFormats.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnCore.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDDK.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDeviceFile.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDeviceSensorV2.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnFormats.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libOpenNI.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libusb.so
No caso de alguns deste arquivos não estarem nos locais indicados ou também para facilitar a procura também podemos cosigui-los pelo seguinte link http://www.hirotakaster.com/download/kinect/bin.tar.gz.
Agora copie todos estes arquivos para a pasta /system/lib, do cartão no qual instalamos o Android, após isto também precisaremos copiar alguns arquivos para a pastas /userdata/ni, do arquivo cartão do android, caso ela exista crie-a (com o comando mkdir) os são:
-GlobalDefaultsKinect.ini
– SamplesConfig.xml
– licenses.xml
-modules.xml
E podem ser conseguidos pelo seguinte link http://www.hirotakaster.com/download/kinect/data.ni.tar.gz;
Pronto, temos o tudo nescessario para rodar o kinect na panda, vamos colocar novamente o cartão nela de ligar-la, porem ainda necessitamos conecta-la com o computador host. Isto pode ser feito pelo adb através de cabo USB-MSUB, porem para conseguirmos utilizar o adb em nosso computador host precisamos da platorma sdk do android instalado nele, podemos ter ela pelo link http://developer.android.com/sdk/index.html ou nos através do arquivos do eclipse.
Após istos vamos configurar o adb para reconher a panda, então conecta-a ao computador pelo cabo USB-MSB, e faça os seguintes comando:
vamos na pasta ~/android-sdks/platform-tools criar o servidor de coneção com o dispositivo:
[code]>$ adb kill-server[/code]
[code]>$ sudo ./adb start-server[/code]
[code]>$ adb devices[/code]
Caso este ultimo comando aperece a panda como depositivo podemos fazer entre em contando com ela pelo seguinte comando:
[code]>$ adb shell[/code]
Agora em nossa tela teremos uma shell do android instalando na panda, concte o kinect a ela e vamos entra na pasta “ni” aonde colocar os dados xml, e de o seguinte comando:
[code]>$ Sample-SimpleRead[/code]
Pronto! se tudo tiver dados certo o teremos de saída na tela agora são as saídas do kinect.
Logo deveremos disponibilizar post com uma manipulação destes dados para criação de apks com uso do kinect.