Instalando o Ubuntu no i.MX53 Quick Start Board

- por Sergio Prado

Categorias: i.mx53, Linux embarcado Tags: ,

O kit de desen­volvi­mento i.MX53 Quick Start Board é baseado no SOC (sys­tem on a chip) i.MX53 da Freescale, um ARM Cortex-A8 que roda a até 1,2GHz, e cujo foco são basi­ca­mente apli­cações mul­ti­me­dia que exigem per­for­mance e baixo con­sumo (entreten­i­mento auto­mo­tivo, PDAs, net­books, tablets, media play­ers, etc).

O i.MX53 tem dois níveis de cache (L1 de 32K e L2 de 256K), e tem inte­grado um coproces­sador NEON, trazendo instruções SIMD muito úteis em apli­cações mul­ti­me­dia, além de uma unidade de ponto flu­tu­ante (VFP). Além disso, este SOC inte­gra diver­sos acel­er­adores de hard­ware, incluindo dois acel­er­adores grá­fi­cos, um para 2D e outro para 3D. Não é à toa que ele con­segue cod­i­ficar vídeos à 720p e decod­i­ficar à 1080p!

Sem con­tar a infinidade de per­iféri­cos que ele con­segue inter­facear, incluindo dis­cos rígi­dos (PATA e SATA), USB host/device, dis­play LCD/VGA, cartão SD/MMC, I2C, I2S, SPI, UART, JTAG, GPIO, e todas estas letrin­has mág­i­cas que você já conhece.

imx53 block diagram Instalando o Ubuntu no i.MX53 Quick Start Board

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

SABRE Instalando o Ubuntu no i.MX53 Quick Start Board

Já o kit de desen­volvi­mento tem um i.MX53 rodando à 1GHz, e com 1GB de RAM DDR3 para você con­sumir à von­tade. Tem entradas USB, Eth­er­net, SATA, cartão SD/MMC e UART, além das saí­das de áudio e vídeo, e de um conec­tor de expansão.

imx53 Instalando o Ubuntu no i.MX53 Quick Start Board

É um kit bas­tante inter­es­sante. Você pode com­prar dire­ta­mente da Freescale ou de um de seus dis­tribuidores. Basta aces­sar o site da Freescale e clicar em Buy. O preço tam­bém é atra­tivo. No momento em que escrevo este artigo, o kit custa $149 (FOB).

E não podemos deixar de com­parar este kit com a Beagleboard-xM. Os kits tem preços pare­ci­dos, são volta­dos para apli­cações mul­ti­me­dia, e basea­dos em um ARM Cortex-A8 rodando à 1GHz. Porém a Beagleboard-xM tem um hype maior, prin­ci­pal­mente porque o pes­soal da Texas desen­volve um tra­balho muito bom junto à comu­nidade open source. De qual­quer forma, quanto mais con­cor­rên­cia, melhor!

Você pode ler mais sobre este kit no site da Freescale, que tam­bém man­tém um forum da comu­nidade que tra­balha 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 insta­lação da dis­tribuição e usar alguma fer­ra­menta para gravá-la em um dis­pos­i­tivo de armazena­mento (HD, pen­drive, cartão SD, etc).

Pode ser tam­bém seu primeiro con­tato com uma dis­tribuição embar­cada. E usar uma dis­tribuição traz algu­mas van­ta­gens, como um geren­ci­ador de pacotes que pos­si­bilita insta­lar qual­quer pacote disponi­bi­lizado nos repositórios da dis­tribuição. Muito mais sim­ples e rápido do que cross-compilar apli­cações e bib­liote­cas para mon­tar sua dis­tribuição manualmente.

É lógico que exis­tem algu­mas desvan­ta­gens no uso de um sis­tema opera­cional com­pleto no seu pro­jeto com Linux embar­cado. Um sis­tema opera­cional com­pleto como o Ubuntu é muito “inchado”, e pode trazer diver­sos com­po­nentes que você nunca irá usar, con­sumindo muito espaço em disco (ou cartão SD no nosso caso). O tempo de boot tam­bém cos­tuma ser outro prob­lema, que pode ir de 1 a 10 min­u­tos, depen­dendo do seu hard­ware e da dis­tribuição. Outra questão é a per­for­mance da dis­tribuição no seu hard­ware. Leve estes pon­tos em con­sid­er­ação ao decidir se irá usar uma dis­tribuição pronta ou criar sua própria dis­tribuição quando for usar Linux em um pro­duto embarcado.

De qual­quer forma, o uso de uma dis­tribuição com­pleta pode ser uma boa solução em alguns casos, pela sim­pli­ci­dade e con­veniên­cia que ela traz. E o processo de gravação da imagem do Ubuntu é bem sim­ples. No nosso caso, como o kit ini­cia pelo cartão SD, basta gravar o Ubuntu no cartão SD. Vamos então estu­dar três méto­dos para fazer isso.

RELEASE FREESCALE

Para insta­lar o release do Ubuntu lib­er­ado pela Freescale, basta entrar no site do kit de desen­volvi­mento e baixar o pacote de insta­lação MX53_QSB_UBUNTU_SD_DEMO_IMAGE.

Depois de baixar os mais de 1.3GB do pacote, você irá desco­brir que eles usam uma fer­ra­menta Win­dows para gravar o Ubuntu no cartão SD!

A apli­cação e a doc­u­men­tação que vem jun­tos me pare­cem bem sim­ples. Mas como eu não sei o que é Win­dows desde a ver­são 3.11, não con­seguirei tes­tar este procedimento…:(

Mas não se pre­ocu­pem que temos out­ras opções…

RELEASE UBUNTU

O próprio pro­jeto do Ubuntu tem um release para ARM, que pode ser aces­sado aqui. Hoje ele suporta qua­tro platafor­mas difer­entes. Além do i.MX53 da Freescale, ele suporta a linha OMAP da Texas, tem um porte para o Net­book AC100 da Toshiba, que usa um Tegra 2, e um porte para ARM server.

O release disponível para o i.MX53 é a ver­são 11.10 (Oneiric Ocelot). As instruções de insta­lação estão aqui.

Basi­ca­mente, você pre­cisa 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 dis­pos­i­tivo do cartão SD iden­ti­fi­cado na sua máquina. O uso errado deste parâmetro pode apa­gar uma par­tição do seu HD.

O processo de gravação pode levar alguns min­u­tos. Quando ter­mi­nar, basta colo­car no kit e reiniciá-lo. O primeiro boot pode demorar um pouco. Em deter­mi­nado momento, ele irá exibir algu­mas janelas para você con­fig­u­rar o sis­tema operacional.

imx53 ubuntu1 Instalando o Ubuntu no i.MX53 Quick Start Board

RELEASE LINARO

A Linaro é uma orga­ni­za­ção sem fins lucra­tivos cujo obje­tivo é con­sol­i­dar toda a infraestru­tura ARM para Linux (fer­ra­men­tas, ker­nel Linux, dis­tribuições, etc).

Na prática, eles pos­suem ver­sões otimizadas do GCC para ARM, tra­bal­ham forte para mel­ho­rar a imple­men­tação de platafor­mas ARM no ker­nel Linux, e lib­eram dis­tribuições cus­tomizadas do Ubuntu e do Android para diver­sas platafor­mas de hard­ware, incluindo a Bea­gle­board, i.MX5, i.MX6, Pand­aboard, Ori­gen, etc. Esta é a listagem com­pleta das platafor­mas ARM que eles suportam:

linaro boards Instalando o Ubuntu no i.MX53 Quick Start Board

Enquanto que o release ofi­cial do Ubuntu para o i.MX53 ainda esta na ver­são 11.10, a Linaro já disponi­bi­liza a última ver­são (12.04 Pre­cise Pangolin).

Para insta­lar, basta seguir o pro­ced­i­mento no site da Linaro.

O primeiro passo é insta­lar as fer­ra­men­tas de cri­ação de ima­gens 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 ima­gens do Ubuntu e insta­lar 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 dis­pos­i­tivo do cartão SD iden­ti­fi­cado na sua máquina. O uso errado deste parâmetro pode apa­gar uma par­tição do seu HD.

Depois é só colo­car o cartão SD no kit e reiniciar.

ubuntu linaro Instalando o Ubuntu no i.MX53 Quick Start Board

A insta­lação de um SO com­pleto como o Ubuntu em uma plataforma embar­cada é real­mente sim­ples. E pode ser a solução quando pre­cisamos de algo mais com­pleto e menos tra­bal­hoso que con­struir uma dis­tribuição com­pleta do zero.

Um abraço,

Ser­gio Prado

  • http://desconstruindo.eng.br/ Fer­nando França

    Muito inter­es­sante esse kit. Estava procu­rando algo semel­hante ao rasp­berry Pi para uma plataforma embar­cada porém sem as difi­cul­dades de impor­tação. Como foi sua exper­iên­cia para a entrada desse kit no Brasil? Grato.

    • http://sergioprado.org/ Ser­gio Prado

      Olá Fer­nando,

      Você pode ver com um dos rep­re­sen­tantes da Freescale no Brasil (AVNET, Arrow, Future, Karimex, ITech, Silitec). Pode ser que eles ten­ham pronta-entrega. Ou então com­prar direto do site da Freescale. Cos­tuma sair mais barato.

      Se tiver algum prob­lema me avise que te coloco em con­tato com alguem da Freescale.

      Um abraço!

      • Lucas

        Boa tarde Sério Prado, fiz o pro­ced­i­mento, mas não ini­ciou o sis­tema, algu­mas dúvi­das, o 2º comando, que ini­cia com o zcat, o tenho que clonar para o dis­pos­i­tivo raiz (ex: sdc) ou a par­tição (ex: sdc1), ou isso é a imagem com­pleta do disco inteiro con­tendo uboot?

        Abraços

        • http://sergioprado.org/ Ser­gio Prado

          Olá Lucas,

          Você deve apon­tar para o dis­pos­i­tivo mesmo. Ex: /dev/sdc.

          Um abraço.

          • Lucas Doná

            Con­segui 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 ambi­ente fluxbox ficou aceitável. Valeu pela ajuda, abração.

  • Marco

    pode­ria me colo­car em con­tato com algum rep­re­sen­tante da freescale, gostaria de saber o preço.. meu email e marco@bsd.com.br

    • Mario_gf

      fol­gado…

  • cle­ber

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

    • http://sergioprado.org/ Ser­gio Prado

      Olá Cle­ber, é esse mesmo.

  • David Lewin

    Ser­gio: you con­vinced me to get one )) But the LCD is way to expen­sive ((. Do you know what are the LCD you can plug into this QSB ? (the mini2440 is not com­pat­i­ble neither)

    • http://sergioprado.org/ Ser­gio Prado

      Hi David,

      Yes, you are right. The LCD dis­play is very expen­sive. I do not know of any other plug’n play dis­play that you could use with this kit. Maybe you can ask to the imx com­mu­nity at https://community.freescale.com/community/imx.

      Best regards.

  • Lucas silva

    Olá Ser­gio, desco­bri seu blog recen­te­mente, pois vou fazer um curso de Linux Device e estou pesquisando algu­mas coisas e gostei muito do seu blog, todos os arti­gos descritos de forma bem clara! Parabéns!

    • http://sergioprado.org/ Ser­gio Prado

      Obri­gado Lucas!

      Con­tinue acompanhando!

      Um abraço.

  • Mar­cus Zanon

    Prezado Ser­gio, gostaria de saber se com esta placa con­sigo desen­volver em lin­guagem C, visando uma mel­hor per­for­mance. Uma das funções que pre­ciso é con­verter um bitmap em jpeg no menor tempo pos­sivel. Caso seja uti­lizado Linux,
    você recomenda algum pacote para fazer esta con­ver­são? Obrigado

    • http://sergioprado.org/ Ser­gio Prado

      Olá Mar­cus,

      Sim, sem dúvida. Esta placa é per­feita para apli­cações multimedia.

      Um abraço.

  • Luis Almeida

    Caro Sér­gio,

    Mag­nifico blog, muitos parabéns.

    Pre­tendo apren­der a con­fig­u­rar, criar e adap­tar o meu próprio ambi­ente de desen­volvi­mento para sis­temas embe­bidos.
    Como o Sér­gio tem um vasto con­hec­i­mento de sis­temas embe­bidos será que me pode acon­sel­har qual será a mel­hor opção ? (o preço não inter­essa)
    Bea­gle­bone, i.MX53 da Freescale, Wand­board (Solo/Dual), CubieBoard.

    Muito Obri­gado.

    • http://sergioprado.org/ Ser­gio Prado

      Olá Luis,

      As opções são muitas mesmo. No momento, pelo custo/benefício, me atrai bas­tante a nova Bea­gle­bone (deve sair nas próx­i­mas sem­anas), a Wand­board Dual e a oDroid-x2.

  • Anto­nio Caser

    Olá Sér­gio,

    eu tenho um tablet com proces­sador Freescale i.MX53, será que posso insta­lar o Ubuntu nele?

    Quero apa­gar tudo do tablet e insta­lar somente o Ubuntu, começar do zero, tem como?

    Um forte abraço.

    • http://sergioprado.org/ Ser­gio Prado

      Olá Anto­nio, como vai?

      À prin­ci­pio sim. Que tablet é esse?

      • Anto­nio Caser

        É um Pos­i­tivo com placa-mãe Elija TFE03, proces­sador 1.0GHz Freescale i.MX53 ARM Cortex-A8.

        Abraços.

        • http://sergioprado.org/ Ser­gio Prado

          Inde­pen­dente do hard­ware que pre­tende uti­lizar, o primeiro passo para insta­lar um sis­tema opera­cionar é des­blo­quear o hardware.

          Isso envolve desco­brir uma forma de aces­sar o boot­loader do equipa­mento para atu­alizar o sistema.

          A não ser que seja um hard­ware aberto e doc­u­men­tado, não é um processo trivial.

          Um abraço.

          • Anto­nio Caser

            Sér­gio,

            explique mel­hor esse processo de “des­blo­quear o hardware”.

            Obri­gado.

          • http://sergioprado.org/ Ser­gio Prado

            Se a plataforma não for aberta, você vai pre­cisar de um mecan­ismo para escr­ever na flash do dispositivo.

            Exis­tem diver­sas for­mas de escr­ever na flash (JTAG, mon­i­tor de boot da CPU, etc), mas sem uma doc­u­men­tação do hard­ware fica difi­cil usar estes mecanismos.

            Então nor­mal­mente a forma mais fácil é desco­brir uma forma de aces­sar o boot­loader para escr­ever na flash. Este é o processo que chamei de “des­blo­quear o hardware”.

            É um processo que envolve diver­sas téc­ni­cas de hard­ware e soft­ware, e muitas ten­ta­ti­vas e erros.

          • Anto­nio Caser

            Ser­gio,

            obri­gado pela atenção prestada.

            Como disse acima, eu tenho esse tablet da Lead­er­ship Lead­er­Pad Pro 7070, com um exce­lente hard­ware, e eu quero insta­lar o Linux nele.

            Ondo posso obter as infor­mações necessárias para isso?

            Um forte abraço.

          • http://sergioprado.org/ Ser­gio Prado

            Você deve encon­trar mais infor­mações em forums espe­cial­iza­dos. Exemplo:

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

          • Anto­nio Caser

            Sér­gio,

            me des­culpe, mas esse fórum que você indi­cou tem mais dúvi­das do que respostas, não fala sobre insta­lar Ubuntu no Tablet.

            Pen­sei que você fizesse isso.

            Esse pro­ced­i­mento descrito aqui não pode ser usado?

            Abraços.

          • Anto­nio Caser

            Sér­gio,

            aprovei­tando o ensejo, vai mais essa:

            Onde ficam os arquivos de idioma (lan­guage) do Android 4.0?

            Abraços.

          • http://sergioprado.org/ Ser­gio Prado

            O Android não pos­sui o con­ceito de arquivos de idioma. Cada apli­cação é respon­sável por prover recur­sos de local­iza­ção para o sis­tema, incluindo a tradução de men­sagens para os difer­entes idiomas supor­ta­dos pela aplicação.

          • Anto­nio Caser

            Não estou falando em apli­cações, mas sim o Sis­tema Opera­cional Android, porque tenho uma ver­são para o Tablet Nvidia Tegra2 Smb_a9701 que não tem o idioma por­tuguês brasil, nem o Morelocale2 ou out­ros Apps não con­seguem alterar esse idioma, gostaria de acres­cen­tar o pt_BR.

            Com certeza fica em alguma pasta ou “enraizado” em algum arquivo do sis­tema, que­ria saber onde?

            Abraços.

          • http://sergioprado.org/ Ser­gio Prado

            Neste caso você esta se referindo à con­fig­u­ração de locale do sis­tema operacional.

            Os locales supor­ta­dos são definidos em tempo de com­pi­laçã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 supor­tado, pre­cis­aria de acesso aos fontes para recompilá-lo. Uma opção é ver­i­ficar se o próprio Cyanogen­mod tem suporte ao seu dispositivo.

            Outra opção é adi­cionar um novo locale via apli­cação, como por exem­plo esta abaixo:

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

            Esta apli­cação salva os locales em um arquivo de Shared Pref­er­ences no diretório /data do sistema.

          • Anto­nio Caser

            Olá Sér­gio,

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

            Tem alguma outra ideia?

            Um grande abraço.

          • http://sergioprado.org/ Ser­gio Prado

            Nen­huma idéia a não ser as já envi­adas na men­sagem anterior.

            Um abraço.

      • Anto­nio Caser

        Sér­gio, aprovei­tando sua boa von­tade, me indique um curso de android e Java pela inter­net, bom, com­pleto e barato.

        Obri­gado.

        • http://sergioprado.org/ Ser­gio Prado

          Olá Anto­nio,

          Infe­liz­mente não con­heço nen­hum treina­mento com estas car­ac­ter­is­ti­cas. Já ouvi bons comen­tários sobre a Glob­al­code, mas os cur­sos são presenciais.

  • Felipe Sousa

    Sér­gio eu pos­suo um tablet com proces­sador Freescale i.MX53, Pos­i­tivo YPY 10FTA, dá pra insta­lar o ubuntu nele sem problemas?

    • http://sergioprado.org/ Ser­gio Prado

      Olá Felipe,

      Se a Pos­i­tivo dis­tribuir uma ver­são do Ubuntu para ele, a resposta é sim.

      Caso con­trário, você pre­cis­ará criar uma imagem do Ubuntu para o tablet. Talvez você possa aproveitar a imagem do Ubuntu para o i.MX53 QSB, mas o hard­ware do tablet é provavel­mente difer­ente, então você pre­cis­ará pelo menos de uma imagem do ker­nel para ele.

      Infe­liz­mente não é um processo sim­ples 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.