Pequeno Review da WandBoard Quad


Em junho de 2013, tive a oportunidade de adquirir uma placa de desenvolvimento ARM, chamada Wandboard. A Wandboard possui três modelos, cujas diferenças variam desde o número de cores do processador até a possibilidade de se utilizar a porta SATA.

Eu comprei um Wandboard Quad que possui a seguinte especificação:

Processador : i.MX6q , quad-core, 1GHz, Cortex-A9
Memória : 2Gb DDR3
Video : Vivante GC 2000 + Vivante GC 355 + Vivante GC 320
Sata : Compatível com SATA2 (300Mbps)
Wireless : G/N
Bluetooth : Sim
USB: 1 porta USB 2.0
LAN: Gigabit
Preço: 129 dólares

Foto da WandBoardq Quad, com seu dissipador.
Foto da WandBoardq Quad, com seu dissipador.

A Wandboard é composta de 2 placas, sendo o carrier board (uma placa-mãe) e um módulo EDM, que é inserido na placa-mãe, como se fosse uma placa de PC comum.

A carrier board possui os conectores de rede, serial (para o acesso ao console), leitor de cartão microSD, HDMI, audio e rede.

O módulo EDM é uma placa onde o processador está soldado. A memória, o chip wifi e bluetooth e outro leitor de cartão microSD (utilizado para o boot) estão localizados nesse módulo.

Graças a esse design, é possível trocar a carrier board por outra e continuar a utilizar o módulo EDM. Inclusive há possibilidade de manter a carrier board e trocar o módulo EDM por outro compatível.

No próprio site da Wandboard há uma pequena nota descrevendo a carrier board EDM1-Fairy, que é compatível com o módulo EDM da wandboard.
A placa funciona com uma fonte de 5V 2A, apesar que eu prefiro um fonte com 3A, pois é difícil achar fontes baratas e que entreguem o prometido. Não há conector de força para o HD, sendo necessário uma fonte de 12V-5V para HD.

De forma geral, o hardware é estável e atualmente quase todo o hardware está funcionando no kernel mainline do Linux (atualmente 3.12). Basicamente, apenas o bluetooth ainda está com problemas e o módulo wifi apresenta um bug que obriga o usuário ligar e desligar a placa da tomada para fazê-lo funcionar corretamente. Não há suporte para aceleração de vídeo no kernel Mainline. E eu duvido que um dia venha a ter…

Há outro kernel específico para a wandboard, o kernel 3.0.35.4.1.0 da própria Wandboard. Apesar de antigo, tudo funciona nele, inclusive com suporte á aceleração de vídeo.

E chegamos ao primeiro e grande problema da Wandboard ( e de algumas outras placas ARM) : aceleração de vídeo.

Ela pode ser dividida em 2 tipos: aceleração VPU e aceleração GPU. Se você quer assitir a vídeos 720p e 1080p, você precisa de aceleração VPU. Se quer jogar, então você precisa de aceleração GPU.

O que ocorre com a Wandboard e outras placas, é que os drivers de vídeo possuem componentes cujo códifo fonte é fechado ( não open-source) e por isso dependem da boa vontade do fabricante em prover drivers atuais. No caso da Wandboard, os drivers que a Freescale libera, geralmente só podem ser utilizados em conjunto com versões específicas do XORG e do kernel, o que impede seu uso com distribuições mais atuais.

Há um driver open-source em desenvolvimento, chamdo etna_viv, mas o desenvolvedor precisa de ajuda de membros da comunidade para continuar o desenvolvimento. A Wandboard Quad utiliza o chip GC2000, que ainda não compatível com driver open-source.

O segundo problema que a Wandboard e outras placas ARM baseadas no processador i.MX6 da Freescale apresentam, é um bug no controlador de rede, a nível de hardware, que impede que a rede gigabit tenha o desempenho de uma rede gigabit. Na minha experiência, utilizando Samba 4.0 e FTP, eu nunca obtive velocidades maiores do que 40MB/s (MB/s = MegaBytes por segundo), ou 320Mb/s ( Mb/s = Megabit por segundo).

Em teoria, uma taxa de transferência de 40MB/s é rápido o suficiente para stream de vídeos ou downloads. Sim, é suficiente. Mas e se houver 3 ou 4 streams de vídeos a 1080p, mais alguns downloads em alta velocidade ( em meu bairro tem Live TIM com 50Mbits /s) e talvez uma cópia de um arquivo com alguns gigabytes ? Essa situação não é irreal, pois em minha casa, a Wandboard atua como servidor de arquivos para 3 computadores, todos conectados através de um switch gigabit.

Atualmente, eu uso a placa como um NAS (Network Attached Storage). Ela está conectada a um HD de 1Tb Seagate, onde o rootfs está armazenado. A atual configuração do sistema é:

1. Kernel 3.0.35.4.1.0, pois foi o que apresentou melhor performance de rede
2. Transmission (via webgui), para fazer download de torrents
3. Sabnzbdplus, para fazer downloads via nntp (newsgroups)
4. Amule, para aquelas raras vezes em que a rede ed2k ainda tem algum arquivo útil
5. Webmin, para gerenciar tudo via interface gráfica
6. PyLoad, para fazer downloads de forma rápida e centralizada
7. SickBeard, para buscar filmes e séries que eu assisto e assim gerenciar automaticamente os downloads das séries via sabnzbdplus
8. Samba 4.0 , para ter acesso acesso aos arquivos via rede do Windows.

Todos esses programas rodam em background e com altíssima performance.