BeagleBone – Montando e Acessando uma Imagem Android
Olá pessoal, neste post vou mostrar para vocês como montar uma imagem android para a Beaglebone. E além disso, mostrarei como acessar sua interface usando o VNC e como fazer com que o ADB reconheça a placa, para que você possa programar e debugar diretamente nela. Para isso será necessário um cartão de memória de no mínimo 2GB e também uma rede com protocolo DHCP(IP automático). Todo os passos que serão comentados aqui foram feitos usando o Ubuntu 12.4.
O primeiro passo é baixar a imagem pré montada no seguinte link (http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_ICS_4_0_3_DevKit_3_0_1/index_FDS.html) baixe a imagem para a Beaglebone na sessão “pre-built images”. Essa página também tem várias coisas úteis como documentação, ferramentas de debug e outros.Após baixar a imagem, o que deve ser feito é particionar o seu cartão SD em 3 partições no formato fat32. Para isso você pode usar o programa de sua preferência eu utilizei o Gparted. Se você não tem nenhum programa para particionar instalado é só dar o seguinte comando no terminal:
Se você sabe como particionar o cartão pode ir para o próximo parágrafo, se não sabe particionar é só seguir os seguintes passos. Depois coloque seu cartão SD no leitor de sua máquina, e ai é só escrever “sudo gparted” no terminal e apertar enter para utilizar o programa. No gparted, a direita em cima selecione o cartão que irá ser particionado, muito cuidado para não selecionar o cartão errado ou até mesmo seu HD. Na parte que fica embaixo de onde você selecionou o seu cartão, é onde você cria as partições, clique o botão direito do mouse para excluir a partição atual e crie 3 novas do mesmo tamanho e no formato fat32. Depois clique no símbolo verde para aplicar alterações. Veja a imagem abaixo.
Agora você deve descompactar a imagem, para isso é só clicar como o botão direito e depois clicar em extrair aqui. Pelo terminal vá até o diretório da imagem extraída e dê o seguinte comando:
Para ver o nome do cartão de memória é só dar o comando “dmesg” no terminal, normalmente o cartão é o último dispositivo que o dmesg mostra informações e geralmente tem o nome de “sdb”. Agora é só colocar o cartão na Beaglebone e testar para ver se sua imagem está montada corretamente.
ACESSANDO ANDROID ATRAVÉS DO VNC
Agora mostrarei como usar a interface da placa através do VNC. Quem não tem o VNC instalado no linux, deve instalá-lo usando seguinte comando:
Após instalar o VNC em sua máquina você deve acessar a placa via terminal, conectá-la a uma rede DHCP para pegar o IP dela, pois é através dele que o VNC irá acessar a Beaglebone. Para quem não sabe como acessá-la via terminal é só olhar meu post anterior “BeagleBone – Introdução e Primeiros Passos”. Quando estiver no terminal da placa use o comando “netcfg” para pegar o seu endereço IP.
lo UP 127.0.0.1/8 0x00000049 00:00:00:00:00:00
sit0 DOWN 0.0.0.0/0 0x00000080 00:00:00:00:00:00
eth0 UP 200.131.216.83/24 0x00001043 50:56:63:c8:b1:4a
O primeiro valor que estiver no campo “eth0 UP” será o ip, nesse caso o ip é “200.131.216.83/24”. O próximo passo é iniciar o servidor VNC android da placa, o android para Beaglebone já vem com um servidor VNC então é preciso só inicia-lo ,para isso use o seguinte comando “androidvncserver”.
[ 1014.135772] input: qwerty as /devices/virtual/input/input0
01/01/2000 00:33:07 Listening for VNC connections on TCP port 5901
01/01/2000 00:33:07 Listening for HTTP connections on TCP port 5801
01/01/2000 00:33:07 URL http://localhost:5801
Após iniciar o servidor VNC da placa, abra um novo terminal em seu linux e dê o seguinte comando para iniciar o cliente VNC.
No campo VNC Server coloque o IP da BeagleBone seguido de número “5901” que é o número da porta de acesso do VNC. Então ficaria assim:
Depois só connectar, ai será possível usar o android da placa através da interface gráfica.
CONFIGURANDO O ADB
O ADB (Android Debug Bridge) como o nome já diz serve para debugar as aplicações. Então você precisa que ele esteja conectado a a BeagleBone para programar diretamente nela.Para fazer isso o que você precisará fazer primeiro é habilitar o “usb debugging” através do VNC, essa opção está em configurações na parte de desenvolvimento. Depois disso você deve criar um arquivo de permissoes no diretório: “etc/udev/rules.d” , com o nome “51-android.rules” com as seguintes linhas:
SUBSYSTEM==”usb”, SYSFS{idVendor}==”18d1″, MODE=”0666″
SUBSYSTEM==”usb”, SYSFS{idVendor}==”0451″, MODE=”0666″
Salve este arquivo e dê os seguintes comandos:
sudo udevadm control --reload-rules
Agora abra um novo terminal no seu linux e vá ao diretório onde está o ADB, “~/android-sdks/platform-tools” e dar os seguintes comandos”:
adb kill-server
sudo ./adb start-server
adb devices
Se após você da o comando “adb devices” a Beaglebone não parecer na lista dispositivos, desabilite e habilite novamente o “usb debugging”.
List of devices attached
0123456789ABCDEF device
Inicie sua IDE para android (eu uso o motodev) e olhe se ela reconheceu o dispositivo se o dispositivo não aparecer na lista de dispositivos desabilite e habilite novamente o “USB debugging”.
Faça um programa só para testar e mande executar, se ele aparecer em seu VNC obviamente está tudo ok!!!