Instalando o Ubuntu no i.MX53 Quick Start Board

- por Sergio Prado

Categorias: i.MX53 Quick Start Board, Linux Tags: ,

O kit de desenvolvimento i.MX53 Quick Start Board é baseado no SOC (system on a chip) i.MX53 da Freescale, um ARM Cortex-A8 que roda a até 1,2GHz, e cujo foco são basicamente aplicações multimedia que exigem performance e baixo consumo (entretenimento automotivo, PDAs, netbooks, tablets, media players, etc).

O i.MX53 tem dois níveis de cache (L1 de 32K e L2 de 256K), e tem integrado um coprocessador NEON, trazendo instruções SIMD muito úteis em aplicações multimedia, além de uma unidade de ponto flutuante (VFP). Além disso, este SOC integra diversos aceleradores de hardware, incluindo dois aceleradores gráficos, um para 2D e outro para 3D. Não é à toa que ele consegue codificar vídeos à 720p e decodificar à 1080p!

Sem contar a infinidade de periféricos que ele consegue interfacear, incluindo discos rígidos (PATA e SATA), USB host/device, display LCD/VGA, cartão SD/MMC, I2C, I2S, SPI, UART, JTAG, GPIO, e todas estas letrinhas mágicas que você já conhece.

Existe até uma plataforma de referência para tablets chamada SABRE que é baseada no i.MX53.

Já o kit de desenvolvimento tem um i.MX53 rodando à 1GHz, e com 1GB de RAM DDR3 para você consumir à vontade. Tem entradas USB, Ethernet, SATA, cartão SD/MMC e UART, além das saídas de áudio e vídeo, e de um conector de expansão.

É um kit bastante interessante. Você pode comprar diretamente da Freescale ou de um de seus distribuidores. Basta acessar o site da Freescale e clicar em Buy. O preço também é atrativo. No momento em que escrevo este artigo, o kit custa $149 (FOB).

E não podemos deixar de comparar este kit com a Beagleboard-xM. Os kits tem preços parecidos, são voltados para aplicações multimedia, e baseados em um ARM Cortex-A8 rodando à 1GHz. Porém a Beagleboard-xM tem um hype maior, principalmente porque o pessoal da Texas desenvolve um trabalho muito bom junto à comunidade open source. De qualquer forma, quanto mais concorrência, melhor!

Você pode ler mais sobre este kit no site da Freescale, que também mantém um forum da comunidade que trabalha com a linha i.MX em http://imxcommunity.org/ e uma wiki em http://www.imxdev.org/.

POR QUE INSTALAR O UBUNTU?

Primeiro porque é muito fácil. Você verá que basta baixar o pacote de instalação da distribuição e usar alguma ferramenta para gravá-la em um dispositivo de armazenamento (HD, pendrive, cartão SD, etc).

Pode ser também seu primeiro contato com uma distribuição embarcada. E usar uma distribuição traz algumas vantagens, como um gerenciador de pacotes que possibilita instalar qualquer pacote disponibilizado nos repositórios da distribuição. Muito mais simples e rápido do que cross-compilar aplicações e bibliotecas para montar sua distribuição manualmente.

É lógico que existem algumas desvantagens no uso de um sistema operacional completo no seu projeto com Linux embarcado. Um sistema operacional completo como o Ubuntu é muito “inchado”, e pode trazer diversos componentes que você nunca irá usar, consumindo muito espaço em disco (ou cartão SD no nosso caso). O tempo de boot também costuma ser outro problema, que pode ir de 1 a 10 minutos, dependendo do seu hardware e da distribuição. Outra questão é a performance da distribuição no seu hardware. Leve estes pontos em consideração ao decidir se irá usar uma distribuição pronta ou criar sua própria distribuição quando for usar Linux em um produto embarcado.

De qualquer forma, o uso de uma distribuição completa pode ser uma boa solução em alguns casos, pela simplicidade e conveniência que ela traz. E o processo de gravação da imagem do Ubuntu é bem simples. No nosso caso, como o kit inicia pelo cartão SD, basta gravar o Ubuntu no cartão SD. Vamos então estudar três métodos para fazer isso.

RELEASE FREESCALE

Para instalar o release do Ubuntu liberado pela Freescale, basta entrar no site do kit de desenvolvimento e baixar o pacote de instalação MX53_QSB_UBUNTU_SD_DEMO_IMAGE.

Depois de baixar os mais de 1.3GB do pacote, você irá descobrir que eles usam uma ferramenta Windows para gravar o Ubuntu no cartão SD!

A aplicação e a documentação que vem juntos me parecem bem simples. Mas como eu não sei o que é Windows desde a versão 3.11, não conseguirei testar este procedimento…:(

Mas não se preocupem que temos outras opções…

RELEASE UBUNTU

O próprio projeto do Ubuntu tem um release para ARM, que pode ser acessado aqui. Hoje ele suporta quatro plataformas diferentes. Além do i.MX53 da Freescale, ele suporta a linha OMAP da Texas, tem um porte para o Netbook AC100 da Toshiba, que usa um Tegra 2, e um porte para ARM server.

O release disponível para o i.MX53 é a versão 11.10 (Oneiric Ocelot). As instruções de instalação estão aqui.

Basicamente, você precisa baixar a imagem do site do Ubuntu:

$ wget http://cdimage.ubuntu.com/releases/oneiric/release/ubuntu-11.10-preinstalled-desktop-armel+mx5.img.gz

E depois gravar no cartão SD:

$ zcat ubuntu-11.10-preinstalled-desktop-armel+mx5.img.gz | sudo dd of=/dev/sdx bs=4M

CUIDADO! Não se esqueça de usar no parâmetro “of=/dev/sdx” o nome do arquivo de dispositivo do cartão SD identificado na sua máquina. O uso errado deste parâmetro pode apagar uma partição do seu HD.

O processo de gravação pode levar alguns minutos. Quando terminar, basta colocar no kit e reiniciá-lo. O primeiro boot pode demorar um pouco. Em determinado momento, ele irá exibir algumas janelas para você configurar o sistema operacional.

RELEASE LINARO

A Linaro é uma organização sem fins lucrativos cujo objetivo é consolidar toda a infraestrutura ARM para Linux (ferramentas, kernel Linux, distribuições, etc).

Na prática, eles possuem versões otimizadas do GCC para ARM, trabalham forte para melhorar a implementação de plataformas ARM no kernel Linux, e liberam distribuições customizadas do Ubuntu e do Android para diversas plataformas de hardware, incluindo a Beagleboard, i.MX5, i.MX6, Pandaboard, Origen, etc. Esta é a listagem completa das plataformas ARM que eles suportam:

Enquanto que o release oficial do Ubuntu para o i.MX53 ainda esta na versão 11.10, a Linaro já disponibiliza a última versão (12.04 Precise Pangolin).

Para instalar, basta seguir o procedimento no site da Linaro.

O primeiro passo é instalar as ferramentas de criação de imagens da Linaro:

$ sudo add-apt-repository ppa:linaro-maintainers/tools
$ sudo apt-get update
$ sudo apt-get install linaro-image-tools
$ sudo apt-get install qemu-user-static

Depois é só baixar as imagens do Ubuntu e instalar no cartão SD:

$ wget http://snapshots.linaro.org/precise/hwpacks/lt-mx5/107/hwpack_linaro-lt-mx5_20120613-107_armhf_supported.tar.gz
$ wget http://snapshots.linaro.org/precise/images/ubuntu-desktop/219/linaro-precise-ubuntu-desktop-20120613-219.tar.gz
$ linaro-media-create --mmc /dev/sdx --dev mx53loco --hwpack hwpack_linaro-lt-mx5_20120613-107_armhf_supported.tar.gz --binary linaro-precise-ubuntu-desktop-20120613-219.tar.gz

CUIDADO! Não se esqueça de usar no parâmetro “–mmc /dev/sdx” o nome do arquivo de dispositivo do cartão SD identificado na sua máquina. O uso errado deste parâmetro pode apagar uma partição do seu HD.

Depois é só colocar o cartão SD no kit e reiniciar.

A instalação de um SO completo como o Ubuntu em uma plataforma embarcada é realmente simples. E pode ser a solução quando precisamos de algo mais completo e menos trabalhoso que construir uma distribuição completa do zero.

Um abraço,

Sergio Prado

  • Muito interessante esse kit. Estava procurando algo semelhante ao raspberry Pi para uma plataforma embarcada porém sem as dificuldades de importação. Como foi sua experiência para a entrada desse kit no Brasil? Grato.

    • Olá Fernando,

      Você pode ver com um dos representantes da Freescale no Brasil (AVNET, Arrow, Future, Karimex, ITech, Silitec). Pode ser que eles tenham pronta-entrega. Ou então comprar direto do site da Freescale. Costuma sair mais barato.

      Se tiver algum problema me avise que te coloco em contato com alguem da Freescale.

      Um abraço!

      • Lucas

        Boa tarde Sério Prado, fiz o procedimento, mas não iniciou o sistema, algumas dúvidas, o 2º comando, que inicia com o zcat, o tenho que clonar para o dispositivo raiz (ex: sdc) ou a partição (ex: sdc1), ou isso é a imagem completa do disco inteiro contendo uboot?

        Abraços

        • Olá Lucas,

          Você deve apontar para o dispositivo mesmo. Ex: /dev/sdc.

          Um abraço.

          • Lucas Doná

            Consegui fazer :-), mas… que lentidão que ficou, até fiz o upgrade pro 12.04, com unity ou gnome não rola. Até que usando o ambiente fluxbox ficou aceitável. Valeu pela ajuda, abração.

  • Marco

    poderia me colocar em contato com algum representante da freescale, gostaria de saber o preço.. meu email e marco@bsd.com.br

    • Mario_gf

      folgado…

  • cleber

    Olá, estava no site da freescale e fiquei na dúvida.. O part number do seu kit é o MCIMX53-START ?

  • David Lewin

    Sergio: you convinced me to get one )) But the LCD is way to expensive ((. Do you know what are the LCD you can plug into this QSB ? (the mini2440 is not compatible neither)

  • Lucas silva

    Olá Sergio, descobri seu blog recentemente, pois vou fazer um curso de Linux Device e estou pesquisando algumas coisas e gostei muito do seu blog, todos os artigos descritos de forma bem clara! Parabéns!

    • Obrigado Lucas!

      Continue acompanhando!

      Um abraço.

  • Marcus Zanon

    Prezado Sergio, gostaria de saber se com esta placa consigo desenvolver em linguagem C, visando uma melhor performance. Uma das funções que preciso é converter um bitmap em jpeg no menor tempo possivel. Caso seja utilizado Linux,
    você recomenda algum pacote para fazer esta conversão? Obrigado

    • Olá Marcus,

      Sim, sem dúvida. Esta placa é perfeita para aplicações multimedia.

      Um abraço.

  • Luis Almeida

    Caro Sérgio,

    Magnifico blog, muitos parabéns.

    Pretendo aprender a configurar, criar e adaptar o meu próprio ambiente de desenvolvimento para sistemas embebidos.
    Como o Sérgio tem um vasto conhecimento de sistemas embebidos será que me pode aconselhar qual será a melhor opção ? (o preço não interessa)
    Beaglebone, i.MX53 da Freescale, Wandboard (Solo/Dual), CubieBoard.

    Muito Obrigado.

    • Olá Luis,

      As opções são muitas mesmo. No momento, pelo custo/benefício, me atrai bastante a nova Beaglebone (deve sair nas próximas semanas), a Wandboard Dual e a oDroid-x2.

  • Antonio Caser

    Olá Sérgio,

    eu tenho um tablet com processador Freescale i.MX53, será que posso instalar o Ubuntu nele?

    Quero apagar tudo do tablet e instalar somente o Ubuntu, começar do zero, tem como?

    Um forte abraço.

    • Olá Antonio, como vai?

      À principio sim. Que tablet é esse?

      • Antonio Caser

        É um Positivo com placa-mãe Elija TFE03, processador 1.0GHz Freescale i.MX53 ARM Cortex-A8.

        Abraços.

        • Independente do hardware que pretende utilizar, o primeiro passo para instalar um sistema operacionar é desbloquear o hardware.

          Isso envolve descobrir uma forma de acessar o bootloader do equipamento para atualizar o sistema.

          A não ser que seja um hardware aberto e documentado, não é um processo trivial.

          Um abraço.

          • Antonio Caser

            Sérgio,

            explique melhor esse processo de “desbloquear o hardware”.

            Obrigado.

          • Se a plataforma não for aberta, você vai precisar de um mecanismo para escrever na flash do dispositivo.

            Existem diversas formas de escrever na flash (JTAG, monitor de boot da CPU, etc), mas sem uma documentação do hardware fica dificil usar estes mecanismos.

            Então normalmente a forma mais fácil é descobrir uma forma de acessar o bootloader para escrever na flash. Este é o processo que chamei de “desbloquear o hardware”.

            É um processo que envolve diversas técnicas de hardware e software, e muitas tentativas e erros.

          • Antonio Caser

            Sergio,

            obrigado pela atenção prestada.

            Como disse acima, eu tenho esse tablet da Leadership LeaderPad Pro 7070, com um excelente hardware, e eu quero instalar o Linux nele.

            Ondo posso obter as informações necessárias para isso?

            Um forte abraço.

          • Você deve encontrar mais informações em forums especializados. Exemplo:

            http://www.portalandroid.org/comunidade/viewtopic.php?f=64&t=16077

          • Antonio Caser

            Sérgio,

            me desculpe, mas esse fórum que você indicou tem mais dúvidas do que respostas, não fala sobre instalar Ubuntu no Tablet.

            Pensei que você fizesse isso.

            Esse procedimento descrito aqui não pode ser usado?

            Abraços.

          • Antonio Caser

            Sérgio,

            aproveitando o ensejo, vai mais essa:

            Onde ficam os arquivos de idioma (language) do Android 4.0?

            Abraços.

          • O Android não possui o conceito de arquivos de idioma. Cada aplicação é responsável por prover recursos de localização para o sistema, incluindo a tradução de mensagens para os diferentes idiomas suportados pela aplicação.

          • Antonio Caser

            Não estou falando em aplicações, mas sim o Sistema Operacional Android, porque tenho uma versão para o Tablet Nvidia Tegra2 Smb_a9701 que não tem o idioma português brasil, nem o Morelocale2 ou outros Apps não conseguem alterar esse idioma, gostaria de acrescentar o pt_BR.

            Com certeza fica em alguma pasta ou “enraizado” em algum arquivo do sistema, queria saber onde?

            Abraços.

          • Neste caso você esta se referindo à configuração de locale do sistema operacional.

            Os locales suportados são definidos em tempo de compilação (vide arquivo abaixo do CyanogenMod):

            https://github.com/CyanogenMod/android_build/blob/cm-10.2/target/product/languages_full.mk

            Se você quiser incluir no ROM o suporte à um novo idioma não suportado, precisaria de acesso aos fontes para recompilá-lo. Uma opção é verificar se o próprio Cyanogenmod tem suporte ao seu dispositivo.

            Outra opção é adicionar um novo locale via aplicação, como por exemplo esta abaixo:

            https://play.google.com/store/apps/details?id=com.bruce.setlocale

            Esta aplicação salva os locales em um arquivo de Shared Preferences no diretório /data do sistema.

          • Antonio Caser

            Olá Sérgio,

            instalei o app “Set Locale and Language.apk” que também não funcionou.

            Tem alguma outra ideia?

            Um grande abraço.

          • Nenhuma idéia a não ser as já enviadas na mensagem anterior.

            Um abraço.

      • Antonio Caser

        Sérgio, aproveitando sua boa vontade, me indique um curso de android e Java pela internet, bom, completo e barato.

        Obrigado.

        • Olá Antonio,

          Infelizmente não conheço nenhum treinamento com estas caracteristicas. Já ouvi bons comentários sobre a Globalcode, mas os cursos são presenciais.

  • Felipe Sousa

    Sérgio eu possuo um tablet com processador Freescale i.MX53, Positivo YPY 10FTA, dá pra instalar o ubuntu nele sem problemas?

    • Olá Felipe,

      Se a Positivo distribuir uma versão do Ubuntu para ele, a resposta é sim.

      Caso contrário, você precisará criar uma imagem do Ubuntu para o tablet. Talvez você possa aproveitar a imagem do Ubuntu para o i.MX53 QSB, mas o hardware do tablet é provavelmente diferente, então você precisará pelo menos de uma imagem do kernel para ele.

      Infelizmente não é um processo simples como baixar a imagem e instalar.

      Um abraço.

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.