sexta-feira, 27 de setembro de 2013

ODROID-X2 e ODROID-XU

    É difícil hoje no cenário hobbyista de embarcados alguém não conhecer a hardkernel, empresa sul-coreana responsável pelos produtos “ODROID U” e “ODROID X”, e seus sucessores “ODROID U2″ e “ODROID X2″, todos de grande sucesso comercial não só pelo seu preço como pela ótima configuração de hardware que permite o uso até como pequenos desktops.

    A empresa ataca novamente agora sendo a primeira a lançar comercialmente um dispositivo de desenvolvimento que tem o já controverso octacore da Samsung (Exynos 5410), o primeiro SoC do mercado implementando a estratégia big.LITTLE da ARM – quatro velozes processadores Cortex-A15 funcionando em conjunção com outros quatro processadores Cortex-A7, mais lentos mas muito mais eficientes em utilização de energia. É inclusive curioso perceber que um integrador não tão ligado ao mercado corporativo esteja na frente das inovações – será uma mudança de direção do mercado?

    ODROID-XU é o nome do dispositivo e vem em duas versões: a simples – chamada simplesmente deODROID-XU, e disponível pelo preço-base de US$ 169 (que aumenta em pelo menos US$ 30 com o frete e é razoável comprar pelo menos uma eMMC de 16 GB pra usá-lo, o que sai mais US$ 39,90), e o mais sofisticado ODROID XU+E, que se diferencia por ter ferramenta de análise de energia integrada com quatro sensores de corrente e voltagem. Para os interessados na análise de desempenho e consumo do dispositivo sob diversas condições de stress, a versão XU+E é essencial (e não há jeito de atualizar um XU para se tornar XU+E, é preciso comprar novo dispositivo).


    Dado que os produtos ODROID já são amplamente conhecidos, nada mais justo que apresentar o ODROID-XU comparando-o a uma versão anterior de grande sucesso. Para isso foi escolhido seu antecessor ODROID-X2.
ODROID-X2 e ODROID-XU
ODROID-X2 (esquerda) e ODROID-XU (direita)


    O X2 (que diga-se de passagem, ainda está à venda por US$ 135) tem o Exynos 4412, um SoC competente, com quatro cores Cortex-A9 de 1.7 GHz, 2 GB de RAM DDR2 e GPU Mali400 quad. O ODROID-XU tem o SoC Exynos 5410 com quatro cores Cortex-A7 de 1.2GHz (LITTLE) e quatro cores Cortex-A15 de 1.6 GHz, 2GB de RAM LPDDR3 e GPU PowerVR SGX544MP3.


    Enquanto seu antecessor tem 6 conectores USB 2.0 e uma MicroUSB para adb/mass storage, o ODROID-XU tem 4 conectores USB 2.0, um conector Host USB 3.0 e um conector USB 3.0 OTG tipo A-B. Esse conector talvez seja o mais insólito do XU, pois é (ainda) pouco conhecido.
Alguns conectores do ODROID-XU
USB OTG 3.0, MicroUSB A-B, MicroSD e MicroHDMI

    O XU pode bootar tanto pelo cartão MicroSD quanto por uma memória NAND “eMMC” opcional, sendo isso configurável por dip switches na placa.

    O XU possui várias características herdadas do seu antecessor X2. Se conecta ao vídeo por uma interface MicroHDMI, jogando a porta MIPI LCD para a parte inferior da placa; tem uma porta serial (conector Molex5268-04, que aceita um conversor USB CP2104) e vem com ethernet 10/100. O áudio pode sair pelo MicroHDMI ou pelo conector de 3,5mm e como uma diferença a se notar, não há conector para microfone. Como o XU tem USB 3.0 que tem alta velocidade, você pode utilizar esta saída para um adaptador de gigabit ethernet ou SATA3, ambos vendidos pela hardkernel.

    Uma novidade é o dispositivo vir envolto em um case de plástico que era algo que faltava ao X2 (na foto, em um case de acrílico comprado separadamente). O dispositivo também se diferencia por vir com cooler, diferente do dissipador anterior. Ambos os dispositivos têm um led para “ligado” e outro para indicar o estado de boot/operação.

    Enquanto o ODROID-X2 tem 50 GPIOs, o ODROID-XU vem com 30 (com a pinagem descrita na página de uso inicial, tendo 15 pinos digitais de uso geral e um analógico de 12 bits). Se você planeja usar o dispositivo para microeletrônica, fique atento que ele trabalha com níveis lógicos de 1.8 Volts, diferente dos 5V de um Arduino ou dos 3.3V de outros dispositivos ARM.

    Por fim, o conector de energia usado é de 5V/4A e já vem incluído.


    Com seu foco no mercado hobbyista, o que mais interessa à hardkernel é ter o hardware pronto primeiro com mínimo software para depois expandi-lo, tanto em funcionalidade quanto em documentação e suporte. Sendo assim, o BSP do ODROID-XU consiste do Android 4.2.2 com aceleração de hardware funcionando e, no momento de redação deste artigo, também já existe um BSP do Ubuntu 13.04 com kernel 3.4, com modo gráfico mas ainda sem aceleração de hardware. Uma curiosidade interessante sobre a hardkernel é que um de seus desenvolvedores é um brasileiro – Mauro Ribeiro – e você o verá frequentemente anunciando releases e ajudando usuários nos fóruns.

    O boot é feito em quatro etapas explicadas na página de uso inicial – cuja referência pode ser meio difícil de achar, e que tem também a valiosa informação de como configurar os dip switches de boot. Este modo de boot utiliza o software U-boot e caso se deseje modificar para uso próprio, é preciso utilizar fontes diferentes para cada etapa; a primeira etapa é um blob fechado provido pela Samsung e a segunda etapa, uma vez compilada, precisa ser enviada à hardkernel para que ela assine com sua chave privada para torná-la bootável.

    Toda a documentação restante, os softwares e o processo de suporte da hardkernel são feitos pelos fóruns da empresa. Navegando pelos fóruns específicos do XU você poderá encontrar tópicos anunciando novos BSP (Android, Ubuntu, Fedora e outros que vão aparecendo com o amadurecimento da plataforma e também contribuições de seus usuários) e documentações, assim como muita discussão geral sobre o dispositivo. Quando houver instruções detalhadas sobre uso dos GPIO do ODROID-XU, por exemplo, elas aparecerão em um tópico fixo promovido pelos administradores, assim como o post contendo novas versões do kernel.

    O kernel Linux usado tanto pelo Android quanto o Ubuntu atualmente liberado para o XU é o 3.4.5 e como tal ainda não tem o modo de Global Task Scheduling, também conhecido como MP, que permite usar os 8 cores simultaneamente (e tratá-los separadamente, ao invés de em pares). Ao fazer o clássico cat /proc/cpuinfo você verá somente 4 cores, cujo processamento pode estar ocorrendo em um Cortex-A7 ou Cortex-A15 no momento – algo somente visível atualmente pelas ferramentas de análise do ODROID XU+E.

    A gravação de BSP para uso inicial do dispositivo pode ser um pouco complicada para novatos. Em especial, o método de gravação do Android terá variações caso seja feito na eMMC ou em um cartão MicroSD (isso não ocorre com o Ubuntu). Caso se compre a eMMC, ela já vem gravada com o Android pronto para bootar; a compra da eMMC inclui um adaptador para conectá-la ao computador como se fosse um MicroSD, conforme se vê na foto.
eMMC
A eMMC sendo removida e conectada ao gravador de eMMC (incluso na compra dela)

    Embora no caso de uso do Ubuntu a aceleração por hardware ainda não esteja funcionando, é esperado que isso esteja pronto em poucas semanas com a receita para isso disponível nos fóruns, em novas versões da BSP — como ocorreu com os outros modelos de ODROID.

ODROID-XU com Ubuntu
ODROID-XU sendo usado como desktop comum rodando Ubuntu 13.04, com interface XFCE (visto que o Unity não funciona devido à falta do OpenGL)


    O ODROID-XU é um dispositivo acessível e poderoso, e sendo representante de uma tecnologia tão promissora como a big.LITTLE, é uma ferramenta valiosa para uso educacional. Seu poder de processamento e sistemas operacionais disponíveis também o torna mais que adequado para exploração do uso como desktop, media center ou ainda central de jogos. Para a redação deste artigo, preparamos um pequeno benchmark – que não leva em conta a GPU – em relação a outros dispositivos ARM e um PC. Usamos o Unixbench 5.1.3, baseado na suíte de benchmarks da revista Byte. A tabela está ordenada do menos veloz ao mais veloz, com o PC (um Athlon quad-core de 3 GHz) representando 100%.

Dispositivo
Distribuição
SoC (CPUs)
MHz
Placar
%
CuBox
Ubuntu 12.10 (com memória reservada para Vídeo RAM)
Marvell Armada 510 (1x Cortex-A9)
800
88.7
03.57
Raspberry Pi
Debian GNU/Linux 7.1 (Raspbian)
Broadcom BCM2835 (1xARM1176JZF-S)
700
100.8
04.05
Beaglebone Black
Ubuntu 13.04
TI Sitara AM3359 (1 x Cortex-A8)
1000
133.1
05.35
Cubieboard
Linaro 12.11 / Ubuntu 12.04
Allwinner A10 (1 x Cortex-A8)
1000
166.1
06.68
CuBox
Ubuntu 12.10 (sem vídeo RAM)
Marvell Armada 510 (1x Cortex-A9)
800
168.7
06.79
PCDuino
Linaro 12.11 / Ubuntu 12.04
Allwinner A10 (1 x Cortex-A8)
1000
188.2
07.57
UG802
Ubuntu 12.10
RK3066 (2 x Cortex-A9)
1200
413.8
16.64
Nexus 4
Ubuntu Touch 13.10
Qualcomm Snapdragon S4 Pro APQ8064 (4 x Krait-200)
1700
436.2
17.54
Chromebook
Ubuntu 13.04
Exynos 5250 (2 x Cortex-A15)
1700
558.1
22.45
ESBC-3200
Linaro 12.03 / Ubuntu 11.10
i.MX6 Quad (4 x Cortex-A9)
1000
594.8
23.92
Nexus 7 (v.2012)
Ubuntu 13.04
Nvidia Tegra 3 (4 x Cortex-A9)
1300
624.3
25.11
Tronsmart T428*
Ubuntu 12.04
RK3188 (4 x Cortex-A9)
1600
675.0
27.15
GK802*
Ubuntu 12.04 ARMEL
i.MX6 Quad (4 x Cortex-A9)
1000
688.7
27.70
ODROID X2
Linaro 12.11 / Ubuntu 12.04
Exynos 4412 (4 x Cortex-A9)
1700
706.0
28.40
ODROID XU
Ubuntu 13.04
Exynos 5410 (4 x Cortex-A15 + 4 x Cortex-A7)
1600 & 1200
909.5
36.58
PC Comum
Ubuntu 13.04
AMD Athlon II X4
3000
2486.3
100.00



Fonte:  Embarcados

0 comentários:

Postar um comentário

Subscribe to RSS Feed Follow me on Twitter!