Mini2440 — Instalando o Android

- por Sergio Prado

Categorias: Android, Mini2440 Tags: , , ,

No último post sobre o kit Friendl­yARM mini2440, insta­lamos o U-boot e a dis­tribuição Emde­bian. Se você ainda não leu e quiser der uma olhada, clique aqui.

Agora vamos (final­mente) rodar o sis­tema opera­cional Android nele.

Depois de muitas ten­ta­ti­vas, não con­segui rodá-lo a par­tir da flash. Em algum ponto do processo de ini­cial­iza­ção, o script de boot trava e a inter­face grá­fica não sobe. Depois de muita pesquisa, cheguei à con­clusão de que o provável cau­sador é a “baixa” quan­ti­dade de RAM (64M), pois o Android fun­cio­nou sem prob­le­mas con­fig­u­rando uma par­tição de SWAP no cartão SD.

O nosso tra­balho aqui então será sim­ples: for­matar e copiar os arquivos para um cartão SD (1G no mín­imo) e con­fig­u­rar o u-boot para ini­ciar o Android por este cartão SD. Para isso, você vai pre­cisar do U-boot insta­l­ado na NAND. Se ainda não o tiver, exe­cute os pro­ced­i­men­tos descritos neste post.

Como sem­pre, uti­lizare­mos uma máquina Linux para a exe­cução dos pro­ced­i­men­tos de insta­lação. Para facil­i­tar o tra­balho de todos, criei um pacote com os arquivos necessários para a insta­lação. Este arquivo pode ser baix­ado aqui.

CONFIGURANDO O CARTÃO SD

O cartão SD dev­erá ser de no mín­imo 1G. Vamos criar 3 partições:

  • Par­tição 1 -> SWAP512M — Memória Swap
  • Par­tição 2 -> EXT220M — Kernel
  • Par­tição 3 -> EXT3 — Restante — Rootfs

Você pode usar qual­quer fer­ra­menta de par­ti­ciona­mento de disco, como “fdisk”, “cfdisk” ou “sfdisk”. Eu usei o “gparted” que tem uma inter­face grá­fica sim­ples. Nosso cartão SD ficou assim:

android sd partition(1) Mini2440   Instalando o Android

Depois de for­matado, é necessário copiar os arquivos para o cartão SD. Baixe e descom­pacte o arquivo que disponi­bi­lizei neste link. Copie os arquivos da pasta “Partition2” para a par­tição 2 do cartão SD. Copie tam­bém os arquivos da pasta “Partition3” para a par­tição 3 do cartão SD.

CONFIGURANDO O U-BOOT

Para con­fig­u­rar o U-boot para car­regar o Android do cartão SD, pre­cisamos alterar as var­iáveis de ambi­ente “bootargs” e “bootcmd”, con­forme abaixo:

MINI2440 # setenv bootargs 'console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstype=ext3 mini2440=0tb rootdelay=3 init=/linuxrc'
MINI2440 # setenv bootcmd 'mmcinit ; ext2load mmc 0:2 0x31000000 uImage ; bootm 0x31000000'
MINI2440 # saveenv

A var­iável “bootargs” armazena os parâmet­ros que serão pas­sa­dos ao ker­nel. O detalhe aqui é o parâmetro “mini2440”, onde você deve usar o valor “0tb” para dis­plays de 3.5″, e “1tb” para dis­plays de 7″.

Na var­iável “bootcmd” temos os coman­dos usa­dos pelo U-boot para ini­ciar o Android pelo cartão SD. Primeiro ini­ci­amos o dri­ver para a leitura do cartão SD com o comando “mmcinit”. Aqui o U-boot mostra o quanto ele é flex­ivel. Com o comando “ext2load mmc 0:2 0x31000000 uIm­age” con­seguimos ler da segunda par­tição do cartão SD um sis­tema de arquivos ext2 e car­regar o arquivo uIm­age para a RAM no endereço 0x31000000. E então ini­ci­amos o Android pela RAM com o comando “bootm 0x31000000”.

E NÃO É QUE FUNCIONA?

O primeiro boot é um pouco demor­ado, então tenha paciên­cia. Mas fun­ciona! Veja abaixo algu­mas ima­gens do Android rodando no mini2440:

android mini1 Mini2440   Instalando o Android       android mini2 Mini2440   Instalando o Android

Con­fesso que esper­ava uma per­for­mance mel­hor. Não tive prob­le­mas de trava­men­tos, mas a exe­cução do Android ficou um pouco lenta. A imagem pre­cis­aria ser mais otimizada para ser embar­cada em um pro­duto final, mas já pode servir de base para estu­dar­mos o sis­tema operacional.

No próx­imo post vamos apren­der a usar o Buil­d­root para con­struir do zero um tool­chain e uma dis­tribuição Linux cus­tomizada para o mini2440. Até lá!

Um abraço,

Ser­gio Prado

  • Edi­son

    Sér­gio,
    muito legal. Valeu pelo tutor pois tenho um destes a mais de um
    ano e não o uso ade­quada­mente dev­ido a equação: tempo e tuto­ri­ais mais obje­tivos.
    Estes últi­mos tuto­ri­ais sobre ele com certeza vou exe­cu­tar passo a passo para brin­car
    com ele.
    Quanto ao próx­imo tuto­r­ial você vai com­pi­lar a “tool chain” ou vai vai configura-lá ?
    Deixo como sug­estão, se for com­pi­lar, o fazer no Linux(64 bits) ou no FreeBSD.
    Um grande abraço e nova­mente valeu pelo tutor.

    • http://sergioprado.org ser­gio­prado

      Olá Edi­son,

      Vou com­pi­lar mesmo (em Linux), usando o Buil­d­root para gerar o tool­chain e o rootfs.

      Um abraço!

  • Marcelo

      Parabéns pelo post Ser­gio!
      Eu estou faz um tempo estu­dando toda essa parte de embar­ca­dos com um sis­tema opera­cional. Então a parte de boot é a parte q eu sem­pre tive prob­le­mas por não enten­der dire­ito! O próx­imo post com o buil­d­root + tool­chain será outra coisa que eu estou muito inter­es­sado e ansioso pra ver!

      Abraços e con­tinue com os posts!

  • Rui

    Tam­bém tenho esta placa e estou ansioso pelo próx­imo post sobre a com­pi­lação do tool­chain.
     
    Abraço

  • Matheus

    Sér­gio, parabéns pelo post! Muito bom!
    Gostaria de saber se a sua porta eth­er­net fun­cio­nou sem prob­le­mas… estou tendo prob­lema para con­fig­u­rar o dhcp para a minha eth0. Não con­sigo nave­gar na inter­net com o meu kit. Você lem­bra se pre­cisou fazer algo espe­cial?
     
    Abração!
    Matheus

    • http://sergioprado.org ser­gio­prado

      Olá Matheus,

      MInha eth0 fun­cio­nou sem prob­le­mas. Con­segui inclu­sive fazer algu­mas pesquisas no google pela mini2440. Você esta con­seguindo aces­sar a con­sole? Qual o retorno do comando “ifconfig” ?

      Um abraço!

  • Bruno

    Parabéns pelo post
    Com­prei a pouco tempo um mini2440 igual ao seu com 256Mb de NAND
    Agora estou ten­tando insta­lar o android
    Real­izei o mesmo pro­ced­i­mento descrito em seu post e recebo a seguinte msg quando tento ini­ciar pelo cartão SD:

    unable to open an ini­tial con­sole
    e a par­tir daí mais nada
    Con­seguiria me aju­dar nisso?
    Abraço

    • http://sergioprado.org ser­gio­prado

      Olá Bruno,

      Posso te aju­dar sim. Você con­segue me man­dar por email toda a saída da sua con­sole, desde o boot do kernel?

      Abraços!

  • Matheus

    Oi Ser­gio
     
    Obri­gado pela resposta… Minha eth0 não fun­cio­nou por default mas, após algu­mas pesquisas con­segui fazê-la fun­cionar com os seguintes coman­dos no shell do Android:
    netcfg eth0 dhcp
    set­prop service.adb.tcp.port 5555
    set­prop net.dns1 dns_ip (por exem­plo 8.8.8.8)
     
    Pode ser que seja util para alguem…
     
    Abração!
    Matheus
     
     

  • Tom

    Sér­gio, não con­segui realizar o boot pelo mem­ory card, ver­i­fiquei que quando ativo o mem­o­rycard recebo o seguinte erro:
    mmc_block_read: err SDIDSTA=0x00000024
     
    Tem idéia do que pode ser isso, já pesqui­sei muito mais ainda não con­segui achar o motivo.

    • http://sergioprado.org ser­gio­prado

      Olá Tom,

      Esse erro acon­tece na exe­cução do “mmcinit” no uboot? Você já testou com outro cartão? Se ambas as respostas forem afir­ma­ti­vas, me parece ser algo rela­cionado ao hard­ware da con­tro­ladora do seu kit mini2440.

      Abraços!

  • Luis Spe­cian

    Olá Sér­gio, você tem os fontes para a com­pi­lação do ker­nel? eu estou com uma dev board baseada em s3c2440 mas o lcd é difer­ente, cheguei a bootar com as ima­gens que você disponi­bi­li­zou, mas o video não fun­ciona. Grato desde já pela atenção.

    • http://sergioprado.org ser­gio­prado

      Olá Luis,

      Você pode baixar os fontes do ker­nel dire­ta­mente do link abaixo:

      http://www.friendlyarm.net/dl.php?file=android-kernel_20090825.tgz

      Eu pre­ci­sei alterar o con­fig para habil­i­tar o JFFS2 e tam­bém alterar o mapea­mento da flash no dri­ver da MTD. Se pre­cisar destas alter­ações me avise que te envio.

      Abraços!

  • Tom

    Depois que escrevi aqui no seu blog resolvi usar a cabeça, instalei um linux no kit e ten­tei mon­tar o cartão, mas assim que coloco o mesmo recebo um monte de erros na con­sole. Emb­ora eu acred­i­tasse na inte­gri­dade do cartão acabei por tes­tar outro, que fun­cio­nou de primeira. Em pesquisa na inter­net li alguns posts rela­tando a pos­sível incom­pat­i­bil­i­dade de alguns cartões com o mini2440. Fica a dica pro pes­soal, se encon­trarem prob­le­mas com o SD Card testem outro que deve resolver o prob­lema. Detalhe o cartão que não fun­ciona é Kingston e o que fun­ciona é Sandisk.

  • sudhy

    Hi… i am doin android tablet pc as my mas­ters project and i devel­oped appli­ca­tions in android and brought mini2440 and was wor­ried about the board sup­port for android … read­ing ur posts made me that it can be ported and u hav given a gud idea for my proj  sup­port and thanks for your posts…

    • http://sergioprado.org ser­gio­prado

      Hi Sudhy,

      Thanks for read­ing! And please let me know if you have any questions.

      Best regards,

      Ser­gio Prado

  • Rodolfo

    Bom dia Ser­gio,
    Olha o erro que me retorna, será que a imagem ker­nel está cor­romp­ida?:
    U-Boot 1.3.2-mini2440 (Feb 24 2010 — 13:04:49)

    I2C:   ready
    DRAM:  64 MB
    Flash:  2 MB
    NAND:  Bad block table not found for chip 0
    Bad block table not found for chip 0
    256 MiB
    *** Warn­ing — bad CRC or NAND, using default environment

    USB:   S3C2410 USB Deviced
    In:    ser­ial
    Out:   ser­ial
    Err:   ser­ial
    MAC: 08:08:11:18:12:27
    Hit any key to stop auto­boot:  0
    MINI2440 # setenv bootargs ‘console=ttySAC0,115200 root=/dev/mmcblk0p3 rootf­styp
    e=ext3 mini2440=1tb rootdelay=3 init=/linuxrc’
    MINI2440 # setenv bootcmd ‘mmcinit \; ext2load mmc 0:2 0x31000000 uIm­age \; boot
    m 0x31000000
    MINI2440 # saveenv
    Sav­ing Envi­ron­ment to NAND
    Eras­ing Nand…MINI2440 # bootm 0x31000000
    Wrong Image For­mat for bootm com­mand
    ERROR: can’t get ker­nel image!
    MINI2440 #

    • http://sergioprado.org ser­gio­prado

      Olá Rodolfo,

      Ou a imagem esta cor­romp­ida, ou o ker­nel não foi gravado cor­re­ta­mente na memória SD.

      Abraços!

  • Eduardo

    Sér­gio parabéns pelo blog, exce­lente qual­i­dade.
    Para que fun­cionasse aqui tive que alterar:
    setenv bootcmd ‘mmcinit \; ext2load mmc 0:2 0x31000000 uIm­age \; bootm 0x31000000’
    Para: setenv bootcmd ‘mmcinit; ext2load mmc 0:2 0x31000000 uIm­age; bootm 0x31000000;‘
    Ou seja retirei a barra caso con­trário o comando não era executado.

    • http://sergioprado.org ser­gio­prado

      Olá Eduardo,

      O “safado” do HTML bagunçou o comando do U-Boot…:)

      Post cor­rigido. Valeu pela dica!

      Abraços!

  • Chris­t­ian Gutierrez

    Hi Ser­gio, I’m from Colom­bia, your work is great, and post too :D. I write in eng­lish because i don’t know Por­tuguese, but if you speak span­ish, that would be great. I acquired a mini2440 recently, and i would like to install Android, but i got the men­tioned Warn­ing: unable to open an ini­tial con­sole. I think that this is for /dev don’t has the con­sole file, so if i write:
    $ mknod dev/console c 5 1
    and boot again i get:
     
    can’t open /dev/tty2: No such file or direc­tor
    can’t open /dev/tty3: No such file or direc­tor
    can’t open /dev/tty4: No such file or direc­tor
    repeat­edly.
    I can paste that files from my emde­bian filesys­tem that works great, but i never get graph­ics. Any help would be great.
    I think that your work is great, i’m tray­ing to learn. :P

    • http://sergioprado.org ser­gio­prado

      Hi Chris­t­ian,

      Have you exe­cuted all the steps in this article?

  • Chris­t­ian Gutierrez

    Hi Ser­gio, thanks for your reply. I did every step, i don’t know if my mini2440 has a dif­fer­ence with yours. My mini2440 has 256MB and a LCD T35, i don’t know if your is N35.
    Among other things, Rodolfo can solve his prob­lem with the com­mand bel­low:
    MINI2440# dynenv set 40000

    • http://sergioprado.org ser­gio­prado

      Hi Chris­t­ian,

      Please send me an email with the boot mes­sages so I can try to help you on your problem.

      Best regards

  • Matheus

    Olá Sér­gio, tudo bem?
     
    Tenho uma outra placa de desen­volvi­mento aqui com um OMAP 3530 e gostaria de ten­tar por­tar o Android para ela. Você tem alguma dica (site ou blog) para me pas­sar? Gostaria de saber alguns macetes sobre o processo “Buil­dar o Android para ARM” -> Criar um SD card -> Con­fig­u­rar o boot­loader para minha placa -> lev­an­tar o sis­tema.
     
    Obri­gado!
    Matheus

  • http://sergioprado.org ser­gio­prado

    Olá Matheus!

    Não pre­ci­sei fazer isso com a mini2440. O pes­soal já disponi­bi­liza uma dis­tribuição Android pronta para usar. Você vai pre­cisar de um ker­nel com os patches do Android mais o rootfs. Acho que o link abaixo tem todas as instruções necessárias:

    http://elinux.org/Android_on_OMAP

    Um abraço!

  • Matheus

    Jóia, obri­gado Sér­gio!
     
    Ape­nas para con­star, alguns links que tem infor­mações / códi­gos inter­es­santes para quem se inter­es­sar em por­tar o Android para um device com OMAP:
     
    http://code.google.com/p/rowboat/
    http://source.android.com/source/download.html
    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_4_00/latest/index_FDS.html
     
    Abraços!

  • Vitor Christo

    O Ser­gio, o meu da o mesmo erro do Bruno “unable to open an ini­tial con­sole” 
    voce resolveu para ele ?
    Obri­gado
    Vitor

  • http://sergioprado.org ser­gio­prado

    Olá Vitor,

    Não tive mais nen­hum feed­back do Bruno. Seu dis­play tam­bém é de 7 polegadas?

    Um abraço.

  • Vitor Christo

    Oi, Sér­gio,
    meu dis­play é um Sony X35, ele fun­ciona per­feita­mente com o Qtopia (ima­gens que vieram no cd) mas durante o boot do SD, a ultima msg que dá é “unable to open an ini­tial con­sole” eu com­pilei o Ker­nel com o con­fig para o X35, mas por uma razão que eu descon­heço não da boot com o zImage-X35.

    • http://sergioprado.org ser­gio­prado

      Olá Vitor,

      Real­mente não sei o que possa estar acon­te­cendo. O rootfs foi mon­tado cor­re­ta­mente? Me envie os para­met­ros de boot do Linux con­fig­u­ra­dos no u-boot e as men­sagens de boot do ker­nel por email para ver se con­sigo te ajudar.

      Um abraço.

  • krish

    hi ser­gio.. great blog.. and im gonna try it this week itself.. hope it works.. :)
    i have a few doubts.. please assist me..
    what ver­sion of android is used in here? 1.6?? where did you find the source to build this ker­nel and rootfs??
    i need to port android 2.3 gin­ger­bread to mini2440(thats my project in col­lege).. where should i start?? which ker­nel should i use and where can i get it?? what about the rootfs?? how to make it?? 
     
    i would be very very grate­ful to you if you could clear my doubts… thanks in advance… :) 

    • http://sergioprado.org ser­gio­prado

      Hi krish,

      I am using Android 1.6. I’ve down­loaded the image from http://www.friendlyarm.net/downloads, but the project page is here http://gitorious.org/android-mini2440.

      From what I know, because of low RAM, you can­not run Gin­ger­bread on mini2440. In that case, I would choose Bea­gle­board or mini6410 as a devel­op­ment plataform.

      Best regards.

  • krish

    oh right RAM prob­lem.. :) any­way thanks a lot for the response bro. :).
     
    i man­aged to do most of the process but now stuck with the fol­low­ing error–
    ——–
     
     Free­ing init mem­ory: 116K

    open file errer!

    xres = 240, yres = 320



    ———–


    any idea ???

    • http://sergioprado.org ser­gio­prado

      Hi krish,

      Well, no idea. Are you able to get the con­sole? Or it stops boot­ing the kernel?

  • krish

    i stum­bled upon a new issue… below is my log..
     
    U-Boot 1.3.2-mini2440 (Feb 24 2010 — 13:04:49)

    I2C:   ready
    DRAM:  64 MB
    Flash:  2 MB
    NAND:  1024 MiB
    Found Envi­ron­ment off­set in OOB..
    USB:   S3C2410 USB Deviced
    In:    ser­ial
    Out:   ser­ial
    Err:   ser­ial
    MAC: 08:08:11:18:12:27
    Hit any key to stop auto­boot:  0
    mmc: Prob­ing for SDHC
    mmc: SD 2.0 or later card found
    try­ing to detect SD Card…
    Man­u­fac­turer:       0x03, OEMSD
    Prod­uct name:       “SD02G”, revi­sion 8.0
    Ser­ial num­ber:      1906349918
    Man­u­fac­tur­ing date: 4/2010
    CRC:                0x43, b0 = 1
    READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3453
    size = 2329935872
    SD Card detected RCA: 0xaaaa type: SD

    2051244 bytes read
    ## Boot­ing ker­nel from Legacy Image at 31000000 …
       Image Name:   Linux-2.6.27
       Cre­ated:      2010-01-08   8:44:01 UTC
       Image Type:   ARM Linux Ker­nel Image (uncom­pressed)
       Data Size:    2051180 Bytes =  2 MB
       Load Address: 30008000
       Entry Point:  30008000
       Ver­i­fy­ing Check­sum … OK
       Load­ing Ker­nel Image … OK
    OK

    Start­ing kernel …

    Uncom­press­ing Linux.….….….….….….….….….….….….….….….….….….….….….….….….….….….….….….….….…… done, boot­ing the ker­nel.
    Linux ver­sion 2.6.27 (sven@storage) (gcc ver­sion 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #2 PREEMPT Fri Jan 8 16:43:57 CST 2010
    CPU: ARM920T [41129200] revi­sion 0 (ARMv4T), cr=c0007177
    Machine: Mini2440 devel­op­ment board
    Mem­ory pol­icy: ECC dis­abled, Data cache write­back
    CPU S3C2440A (id 0x32440001)
    MM: CPU does not sup­port super­sec­tion map­ping for 0x55000000000 at 0xf0d00000
    S3C244X: core 405.000 MHz, mem­ory 101.250 MHz, periph­eral 50.625 MHz
    S3C24XX Clocks, © 2004 Simtec Elec­tron­ics
    CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, asso­cia­tiv­ity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, asso­cia­tiv­ity 64, 32 byte lines, 8 sets
    Built 1 zonelists in Zone order, mobil­ity group­ing on.  Total pages: 16256
    Ker­nel com­mand line: console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstype=ext3 mini2440=0tb rootdelay=3 init = /linuxrc
    irq: clear­ing pend­ing sta­tus 02000000
    irq: clear­ing sub­pend­ing sta­tus 00000002
    PID hash table entries: 256 (order: 8, 1024 bytes)
    timer tcon=00500000, tcnt a4ca, tcfg 00000200,00000000, usec 00001e57
    Con­sole: colour dummy device 80x30
    con­sole [ttySAC0] enabled
    Den­try cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Mem­ory: 64MB = 64MB total
    Mem­ory: 60108KB avail­able (3944K code, 671K data, 116K init)
    SLUB: Genslabs=12, HWalign=32, Order=0–3, MinObjects=0, CPUs=1, Nodes=1
    Cal­i­brat­ing delay loop… 201.93 BogoMIPS (lpj=504832)
    Mount-cache hash table entries: 512
    CPU: Test­ing write buffer coherency: ok
    net_namespace: 288 bytes
    NET: Reg­is­tered pro­to­col fam­ily 16
    S3C2440: Ini­tial­is­ing archi­tec­ture
    S3C2440: IRQ Sup­port
    S3C24XX DMA Dri­ver, © 2003–2004,2006 Simtec Elec­tron­ics
    DMA chan­nel 0 at c4800000, irq 33
    DMA chan­nel 1 at c4800040, irq 34
    DMA chan­nel 2 at c4800080, irq 35
    DMA chan­nel 3 at c48000c0, irq 36
    S3C244X: Clock Sup­port, DVS off
    SCSI sub­sys­tem ini­tial­ized
    usb­core: reg­is­tered new inter­face dri­ver usbfs
    usb­core: reg­is­tered new inter­face dri­ver hub
    usb­core: reg­is­tered new device dri­ver usb
    NET: Reg­is­tered pro­to­col fam­ily 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP estab­lished hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables con­fig­ured (estab­lished 2048 bind 2048)
    TCP reno reg­is­tered
    NET: Reg­is­tered pro­to­col fam­ily 1
    NetWinder Float­ing Point Emu­la­tor V0.97 (dou­ble pre­ci­sion)
    ash­mem: ini­tial­ized
    NTFS dri­ver 2.1.29 [Flags: R/W DEBUG].
    JFFS2 ver­sion 2.2. (NAND) © 2001–2006 Red Hat, Inc.
    JFFS2: default com­pres­sion mode: pri­or­ity
    yaffs Jan  8 2010 16:36:40 Installing.
    msgmni has been set to 117
    io sched­uler noop reg­is­tered (default)
    Con­sole: switch­ing to colour frame buffer device 40x15
    fb0: s3c2410fb frame buffer device
    adc    ini­tial­ized
    input: but­tons as /class/input/input0
    but­tons    ini­tial­ized
    leds    ini­tial­ized
    s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
    s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
    s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
    brd: mod­ule loaded
    loop: mod­ule loaded
    nbd: reg­is­tered device at major 43
    log­ger: cre­ated 64K log ‘log_main’
    log­ger: cre­ated 256K log ‘log_events’
    log­ger: cre­ated 64K log ‘log_radio’
    dm9000 Eth­er­net Dri­ver, V1.31
    Now use the default MAC address: 08:90:90:90:90:90
    eth0: dm9000e at c4860000,c4862004 IRQ 51 MAC: c396c934 (friendly-arm)
    usb­core: reg­is­tered new inter­face dri­ver zd1211rw
    usb­core: reg­is­tered new inter­face dri­ver zd1201
    Linux video cap­ture inter­face: v2.00
    ovcam­chip: v2.27 for Linux 2.6 : OV cam­era chip I2C dri­ver
    usb­core: reg­is­tered new inter­face dri­ver ov511
    ov511: v1.64 for Linux 2.5 : ov511 USB Cam­era Dri­ver
    Dri­ver ‘sd’ needs updat­ing — please use bus_type meth­ods
    S3C24XX NAND Dri­ver, © 2004 Simtec Elec­tron­ics
    s3c2440-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
    NAND device: Man­u­fac­turer ID: 0xec, Chip ID: 0xd3 (Sam­sung NAND 1GiB 3,3V 8-bit)
    NAND_ECC_NONE selected by board dri­ver. This is not rec­om­mended !!
    Scan­ning device for bad blocks
    Cre­at­ing 4 MTD par­ti­tions on “NAND 1GiB 3,3V 8-bit”:
    0x00000000-0x00060000 : “super­vivi“
    0x00060000-0x00260000 : “Ker­nel“
    0x00260000-0x40260000 : “root“
    mtd: par­ti­tion “root” extends beyond the end of device “NAND 1GiB 3,3V 8-bit” — size trun­cated to 0x3fda0000
    0x00000000-0x40000000 : “nand“
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: new USB bus reg­is­tered, assigned bus num­ber 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
    usb usb1: con­fig­u­ra­tion #1 cho­sen from 1 choice
    hub 1–0:1.0: USB hub found
    hub 1–0:1.0: 2 ports detected
    Ini­tial­iz­ing USB Mass Stor­age dri­ver…
    usb­core: reg­is­tered new inter­face dri­ver usb-storage
    USB Mass Stor­age sup­port reg­is­tered.
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increas­ing FIFO to 128 bytes
    mice: PS/2 mouse device com­mon for all mice
    usb­core: reg­is­tered new inter­face dri­ver apple­touch
    input: s3c2410 Touch­Screen as /class/input/input1
    s3c2410 Touch­Screen suc­cess­fully loaded
    S3C24XX RTC, © 2004,2006 Simtec Elec­tron­ics
    s3c2410-rtc s3c2410-rtc: rtc dis­abled, re-enabling
    s3c2410-rtc s3c2410-rtc: rtc core: reg­is­tered s3c as rtc0
    i2c /dev entries dri­ver
    s3c2440-i2c s3c2440-i2c: slave address 0x10
    s3c2440-i2c s3c2440-i2c: bus fre­quency set to 98 KHz
    s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
    mapped chan­nel 0 to 0
    s3c2440-sdi s3c2440-sdi: pow­ered down.
    s3c2440-sdi s3c2440-sdi: ini­tial­i­sa­tion done.
    s3c2440-sdi s3c2440-sdi: run­ning at 0kHz (requested: 0kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    usb­core: reg­is­tered new inter­face dri­ver hid­dev
    usb­core: reg­is­tered new inter­face dri­ver usb­hid
    usb­hid: v2.6:USB HID core dri­ver
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    UDA1341 audio dri­ver ini­tial­ized
    failed to get mem­ory region resouce
    s3c2410-iis: probe of s3c2410-iis.0 failed with error –2
    TCP cubic reg­is­tered
    NET: Reg­is­tered pro­to­col fam­ily 17
    RPC: Reg­is­tered udp trans­port mod­ule.
    RPC: Reg­is­tered tcp trans­port mod­ule.
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2410-rtc s3c2410-rtc: set­ting sys­tem clock to 2062-07-28 23:03:52 UTC (2921353432)
    Wait­ing 3sec before mount­ing root device…
    s3c2440-sdi s3c2440-sdi: run­ning at 16875kHz (requested: 25000kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 16875kHz (requested: 25000kHz).
    mmc0: new SD card at address 8836
    mmcblk0: mmc0:8836 SD02G 1931264KiB
     mmcblk0: p1 p2 p3
    kjour­nald start­ing.  Com­mit inter­val 5 sec­onds
    EXT3-fs warn­ing: max­i­mal mount count reached, run­ning e2fsck is rec­om­mended
    EXT3 FS on mmcblk0p3, inter­nal jour­nal
    EXT3-fs: mounted filesys­tem with ordered data mode.
    VFS: Mounted root (ext3 filesys­tem).
    Free­ing init mem­ory: 116K
    can­not run ‘/etc/init.d/rcS’: No such file or director

    Please press Enter to acti­vate this con­sole. / #
    there is no etc folder in the fs.. any idea whats the issue here???  i googled every avail­able site and couldnt man­age to solve it.. any idea???

    • http://sergioprado.org ser­gio­prado

      Hi krish,

      That is very strange. I would look at the rootfs image, try­ing to open it and check if the etc direc­tory and rcS script is there.

      Best regards.

  • krish

    i had to man­u­ally run the lin­uxrc file.. using ./linuxrc com­mand…
    or init file in system/bin folder… 
     
    it starts boot­ing… and i saw android work­ing in the board.. . :)
    but im fac­ing res­o­lu­tion prob­lems ryt now.. hope i can solve it.. tried every­thing from 0tb to 6tb in the bootargs com­mand… but it dint help…  hope i solve it soon.. 

  • krish

    @Christian Gutier­rez:
     
    use mknod com­mand and make nodes in /media/rootfs/dev folder… its cheat­ing but still it will work.. :) :) 
    if u r using ubuntu, the com­mand would be
     
    sudo mknod tty2 c 4 2
    sudo mknod tty3 c 4 3          
    sudo mknod tty4 c 4 4 

  • krish

    @Rodolfo:
     
    rename the files in ker­nel par­ti­tion from “uImage.bin” to “uIm­age”.. delete .bin part of the file name.. i had the same issue.. :) 
    best of luck..

  • krish

    @Bruno:
    use mknod com­mand and make nodes in /media/rootfs/dev folder… its cheat­ing but still it will work.. :) :) 
    if u r using ubuntu, the com­mand would be
     
    sudo mknod con­sole c 5 1

  • Emer­son

    Ola Sér­gio, tudo bom ? Eu pos­suo uma mini6410, e estou ten­tando setar para dar boot pela pen­drive, conec­tado na USB, alguma ideia se é possivel ?

    • http://sergioprado.org ser­gio­prado

      Olá Emer­son,

      Não tenho certeza se o porte do U-Boot para a mini6410 tem suporte à porta USB. De qual­quer forma, acho que vale a ten­ta­tiva. Dá uma olhada no link abaixo, na seção “USB Stor­age”. Lá tem todos os pas­sos para con­fig­u­rar o U-Boot para bootar pela USB. Depois me fala se funcionou.

      http://processors.wiki.ti.com/index.php/Booting_Linux_kernel_using_U-Boot

      Um abraço!

  • krish

    Hello ser­gio, 
    can you help me with com­pil­ing ker­nel for android for mini2440?? 
    please mail me at gopikris90@gmail.com if you can assist. i have lots of doubts and i dont think its a good idea to com­ment in here.

  • Emer­son

    Ola Ser­gio, 
       Ten­tei usar o comando fat­load, porem não existe, ao dig­i­tar help no u-boot, não tem esse comando na lista, depois vou ten­tar outra ver­são, talvez mais nova do uboot, e posto aqui os resultados

  • Rob­son

    Ser­gio, 
     
    Parabéns pelo blog!
    Eu segui a risca todos os pas­sos deste post e me deparei com o prob­lema de alguns cole­gas aí de cima que não vi/sei se houve solução.
    O uBoot car­rega a imagem e chega num deter­mi­nado ponto tudo pára e nada mais acon­tece.
    Voce sabe o que pode haver? Segue abaixo meu boot­log:
     
     
    mmc: Prob­ing for SDHC
    mmc: SD 2.0 or later card found
    try­ing to detect SD Card…
    Man­u­fac­turer:       0x03, OEMSD
    Prod­uct name:       “SU04G”, revi­sion 8.0
    Ser­ial num­ber:      29637756
    Man­u­fac­tur­ing date: 3/2002
    CRC:                0x5f, b0 = 1
    READ_BL_LEN=15, C_SIZE_MULT=0, C_SIZE=365
    size = 0
    SD Card detected RCA: 0xe624 type: SDHC


    2060420 bytes read
    ## Boot­ing ker­nel from Legacy Image at 31000000 …
       Image Name:
       Cre­ated:      2010-03-26   5:54:15 UTC
       Image Type:   ARM Linux Ker­nel Image (uncom­pressed)
       Data Size:    2060356 Bytes =  2 MB
       Load Address: 30008000
       Entry Point:  30008000
       Ver­i­fy­ing Check­sum … OK
       Load­ing Ker­nel Image … OK
    OK


    Start­ing ker­nel …


    Uncom­press­ing Linux.….….….….….….….….….….….….….….….
    .….….….….….….….….….….….….….….….….….… done, b
    oot­ing the ker­nel.
    Linux ver­sion 2.6.27 (root@tom) (gcc ver­sion 4.3.2 (Sourcery G++ Lite 2008q3-72)
     ) #1 PREEMPT Mon Aug 24 17:01:35 CST 2009
    CPU: ARM920T [41129200] revi­sion 0 (ARMv4T), cr=c0007177
    Machine: Friendl­yARM Mini2440 devel­op­ment board
    Mem­ory pol­icy: ECC dis­abled, Data cache write­back
    CPU S3C2440A (id 0x32440001)
    MM: CPU does not sup­port super­sec­tion map­ping for 0x55000000000 at 0xf0d00000
    S3C244X: core 405.000 MHz, mem­ory 101.250 MHz, periph­eral 50.625 MHz
    S3C24XX Clocks, © 2004 Simtec Elec­tron­ics
    CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, asso­cia­tiv­ity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, asso­cia­tiv­ity 64, 32 byte lines, 8 sets
    Built 1 zonelists in Zone order, mobil­ity group­ing on.  Total pages: 16256
    Ker­nel com­mand line: console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstype=ext3
    mini2440=0tb rootdelay=3 init=/linuxrc
    irq: clear­ing pend­ing sta­tus 02000000
    irq: clear­ing sub­pend­ing sta­tus 00000003
    irq: clear­ing sub­pend­ing sta­tus 00000002
    PID hash table entries: 256 (order: 8, 1024 bytes)
    timer tcon=00500000, tcnt a4ca, tcfg 00000200,00000000, usec 00001e57
    Con­sole: colour dummy device 80x30
    con­sole [ttySAC0] enabled
    Den­try cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Mem­ory: 64MB = 64MB total
    Mem­ory: 60188KB avail­able (3896K code, 636K data, 116K init)
    SLUB: Genslabs=12, HWalign=32, Order=0–3, MinObjects=0, CPUs=1, Nodes=1
    Cal­i­brat­ing delay loop… 201.93 BogoMIPS (lpj=504832)
    Mount-cache hash table entries: 512
    CPU: Test­ing write buffer coherency: ok
    net_namespace: 288 bytes
    NET: Reg­is­tered pro­to­col fam­ily 16
    S3C2440: Ini­tial­is­ing archi­tec­ture
    S3C2440: IRQ Sup­port
    S3C24XX DMA Dri­ver, © 2003–2004,2006 Simtec Elec­tron­ics
    DMA chan­nel 0 at c4800000, irq 33
    DMA chan­nel 1 at c4800040, irq 34
    DMA chan­nel 2 at c4800080, irq 35
    DMA chan­nel 3 at c48000c0, irq 36
    S3C244X: Clock Sup­port, DVS off
    SCSI sub­sys­tem ini­tial­ized
    usb­core: reg­is­tered new inter­face dri­ver usbfs
    usb­core: reg­is­tered new inter­face dri­ver hub
    usb­core: reg­is­tered new device dri­ver usb
    NET: Reg­is­tered pro­to­col fam­ily 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP estab­lished hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables con­fig­ured (estab­lished 2048 bind 2048)
    TCP reno reg­is­tered
    NET: Reg­is­tered pro­to­col fam­ily 1
    NetWinder Float­ing Point Emu­la­tor V0.97 (dou­ble pre­ci­sion)
    ash­mem: ini­tial­ized
    NTFS dri­ver 2.1.29 [Flags: R/W DEBUG].
    yaffs Aug 24 2009 16:57:57 Installing.
    msgmni has been set to 117
    io sched­uler noop reg­is­tered (default)
    Con­sole: switch­ing to colour frame buffer device 30x20
    fb0: s3c2410fb frame buffer device
    adc     ini­tial­ized
    input: but­tons as /class/input/input0
    but­tons ini­tial­ized
    leds    ini­tial­ized
    s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
    s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
    s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
    brd: mod­ule loaded
    loop: mod­ule loaded
    nbd: reg­is­tered device at major 43
    log­ger: cre­ated 64K log ‘log_main’
    log­ger: cre­ated 256K log ‘log_events’
    log­ger: cre­ated 64K log ‘log_radio’
    dm9000 Eth­er­net Dri­ver, V1.31
    Now use the default MAC address: 08:90:90:90:90:90
    eth0: dm9000e at c4804000,c4806004 IRQ 51 MAC: c38bc934 (friendly-arm)
    usb­core: reg­is­tered new inter­face dri­ver zd1211rw
    usb­core: reg­is­tered new inter­face dri­ver zd1201
    Linux video cap­ture inter­face: v2.00
    ovcam­chip: v2.27 for Linux 2.6 : OV cam­era chip I2C dri­ver
    usb­core: reg­is­tered new inter­face dri­ver ov511
    ov511: v1.64 for Linux 2.5 : ov511 USB Cam­era Dri­ver
    Dri­ver ‘sd’ needs updat­ing — please use bus_type meth­ods
    S3C24XX NAND Dri­ver, © 2004 Simtec Elec­tron­ics
    s3c2440-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
    NAND device: Man­u­fac­turer ID: 0xec, Chip ID: 0xda (Sam­sung NAND 256MiB 3,3V 8-bi
    t)
    NAND_ECC_NONE selected by board dri­ver. This is not rec­om­mended !!
    Scan­ning device for bad blocks
    Bad erase­block 222 at 0x01bc0000
    Bad erase­block 728 at 0x05b00000
    Bad erase­block 919 at 0x072e0000
    Bad erase­block 955 at 0x07760000
    Bad erase­block 1040 at 0x08200000
    Bad erase­block 1060 at 0x08480000
    Bad erase­block 1326 at 0x0a5c0000
    Bad erase­block 1463 at 0x0b6e0000
    Bad erase­block 2017 at 0x0fc20000
    Cre­at­ing 4 MTD par­ti­tions on “NAND 256MiB 3,3V 8-bit”:
    0x00000000-0x00060000 : “super­vivi“
    0x00060000-0x00260000 : “Ker­nel“
    0x00260000-0x40260000 : “root“
    mtd: par­ti­tion “root” extends beyond the end of device “NAND 256MiB 3,3V 8-bit“
    – size trun­cated to 0xfda0000
    0x00000000-0x40000000 : “nand“
    mtd: par­ti­tion “nand” extends beyond the end of device “NAND 256MiB 3,3V 8-bit“
    – size trun­cated to 0x10000000
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: new USB bus reg­is­tered, assigned bus num­ber 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
    usb usb1: con­fig­u­ra­tion #1 cho­sen from 1 choice
    hub 1–0:1.0: USB hub found
    hub 1–0:1.0: 2 ports detected
    Ini­tial­iz­ing USB Mass Stor­age dri­ver…
    usb­core: reg­is­tered new inter­face dri­ver usb-storage
    USB Mass Stor­age sup­port reg­is­tered.
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increas­ing FIFO to 128 bytes
    mice: PS/2 mouse device com­mon for all mice
    usb­core: reg­is­tered new inter­face dri­ver apple­touch
    input: s3c2410 Touch­Screen as /class/input/input1
    s3c2410 Touch­Screen suc­cess­fully loaded
    S3C24XX RTC, © 2004,2006 Simtec Elec­tron­ics
    s3c2410-rtc s3c2410-rtc: rtc dis­abled, re-enabling
    s3c2410-rtc s3c2410-rtc: rtc core: reg­is­tered s3c as rtc0
    i2c /dev entries dri­ver
    s3c2440-i2c s3c2440-i2c: slave address 0x10
    s3c2440-i2c s3c2440-i2c: bus fre­quency set to 98 KHz
    s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
    mapped chan­nel 0 to 0
    s3c2440-sdi s3c2440-sdi: pow­ered down.
    s3c2440-sdi s3c2440-sdi: ini­tial­i­sa­tion done.
    s3c2440-sdi s3c2440-sdi: run­ning at 0kHz (requested: 0kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    usb­core: reg­is­tered new inter­face dri­ver hid­dev
    usb­core: reg­is­tered new inter­face dri­ver usb­hid
    usb­hid: v2.6:USB HID core dri­ver
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    UDA1341 audio dri­ver ini­tial­ized
    failed to get mem­ory region resouce
    s3c2410-iis: probe of s3c2410-iis.0 failed with error –2
    TCP cubic reg­is­tered
    NET: Reg­is­tered pro­to­col fam­ily 17
    RPC: Reg­is­tered udp trans­port mod­ule.
    RPC: Reg­is­tered tcp trans­port mod­ule.
    s3c2410-rtc s3c2410-rtc: set­ting sys­tem clock to 2163-06-21 00:52:47 UTC (181031
    9071)
    Wait­ing 3sec before mount­ing root device…
    s3c2440-sdi s3c2440-sdi: run­ning at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 16875kHz (requested: 25000kHz).
    s3c2440-sdi s3c2440-sdi: run­ning at 16875kHz (requested: 25000kHz).
    mmc0: new SDHC card at address e624
    mmcblk0: mmc0:e624 SU04G 3872256KiB
     mmcblk0: p1 p2 p3
    kjour­nald start­ing.  Com­mit inter­val 5 sec­onds
    EXT3-fs warn­ing: check­time reached, run­ning e2fsck is rec­om­mended
    EXT3 FS on mmcblk0p3, inter­nal jour­nal
    EXT3-fs: recov­ery com­plete.
    EXT3-fs: mounted filesys­tem with ordered data mode.
    VFS: Mounted root (ext3 filesys­tem).
    Free­ing init mem­ory: 116K
    Warn­ing: unable to open an ini­tial con­sole.

    • http://sergioprado.org ser­gio­prado

      Olá Rob­son,

      Olhando o tre­cho do código do ker­nel, dá pra con­cluir que ele não achou o /dev/console:

      if (sys_open((const char __user *) “/dev/console”, O_RDWR, 0) < 0)
      printk(KERN_WARNING “Warn­ing: unable to open an ini­tial console.\n”);

      Parece algum prob­lema com o rootfs. Mas aparente­mente ele con­seguiu exe­cu­tar o init. Tenta criar um rootfs bem sim­ples (fácil com o Buil­d­root), copia pra CF, passa pro ker­nel init=/bin/sh e veja se no boot aparece a console.

      Um abraço.

  • Rob­son

    Sér­gio, 
     
    Muito obri­gado pela presteza na resposta. Mas ape­sar de ser Eng. Meca­trônico, sou novo em Linux.Você pode­ria detal­har um pouco mel­hor? Teria algum link ou doc­u­mento sobre como “rebuil­dar” o android pro meu caso ou sobre como fazer o pro­ced­i­mento que voce me pas­sou?
     
    Obrigado

  • Rob­son

    Valeu!!!

  • Rodrigo Krug

    Boa Tarde Ser­gio
    Todos os seus posts tem me aju­dado muito. 
     
    Porem venho ten­tando fazer o Android fun­cionar e venho tendo o seguinte erro:
    ker­nel panic — not sync­ing: No init found. Try pass­ing init= option to ker­nel.
    Ele sim­plis­mente para ai e nao faz mais nada.
    Pode me aju­dar?
     
    Muito Obri­gado
    Rodrigo krug

  • Rodrigo Krug

    Tambem mostra:
     
    Failed to exe­cute /linuxrc
     
    Obrigado

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

      Olá Rodrigo,

      Aparente­mente o ker­nel esta mon­tando o rootfs, mas não esta encon­trando o arquivo “lin­uxrc”. Você con­seguiu gravar o cartão SD sem prob­le­mas? Con­segue mon­tar o cartão SD na sua máquina de desen­volvi­mento e ver­i­ficar se este arquivo se encon­tra lá no “/” do seu sis­tema de arquivos?

      Um abraço.

  • Paulo

    Ola Ser­gio, voce pode­ria me pas­sar as mod­i­fi­caçoes no ker­nel para o dis­play X35? Aqui eu con­segui subir a tela mas o touch­screen ainda esta per­dido, pro dis­play A70 de 7″ nao tive prob­le­mas. Agraçadeço.

  • Paulo

    Obri­gado Ser­gio, vou ten­tar por­tar para o ker­nel do android que estou uti­lizando, soh me falta o touch­screen mesmo. Tudo fun­cio­nando tran­quilo direto da nand, ape­nas o ver­sao de 7″ que fica instavel dev­ida a falta de memoria.

  • Leonardo

    Olá Paulo,
    Acom­pan­hei os out­ros posts ref­er­ente ao mini2440 e me deparei neste, com um prob­lema. As con­fig­u­rações do u-boot não per­manecem  após reini­ciar, o Android não exe­cuta. O único vestí­gio que encon­trei é no momento que o u-boot ini­cia aparece ***Warn­ing — bad CRC or NAND, using default envi­ro­ment.
    Pode me ajudar?

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

      Olá Leonardo,

      A sua NAND tem uma par­tição para armazenar o ambi­ente do U-Boot? O comando mtd­parts vai te mostrar isso. E você esta sal­vando com o comando saveenv?

      Um abraço.

  • Leonardo

     
    Olá PAulo,
     
     
    device nand0 <mini2440-nand>, # parts = 4
     #: name size off­set mask_flags
     0: u-boot              0x00040000 0x00000000 0
     1: env                 0x00020000 0x00040000 0
     2: ker­nel              0x00500000 0x00060000 0
     3: root                0x07aa0000 0x00560000 0
     
    Sim estou exe­cu­tando o saveenv, é curioso pois o android so é car­rega com o comando boot após o saveenv.
    Um segundo prob­lema seria a ori­en­tação de tela no dis­play W35, fica inver­tida mostrando lin­has col­ori­das em uma parte.

  • Leonardo

    Olá Ser­gio,
     
    Muitos tiveram o mesmo prob­lema que eu descrevi ref­er­ente ao W35, mas sem solução descrita.
    Você pode­ria me ajudar?

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

      Claro Leonardo.

      Me descreva mel­hor o prob­lema e o que você já fez para ten­tar solucioná-lo.

      Um abraço.

  • André Costa Xavier

    Ser­gio, boa noite.
     
    Real­izei os pro­ced­i­men­tos acima, e quando o SO car­rega aparece lin­has col­ori­das do lado dire­ito da tela, reduzindo a repro­dução da tela, e o SO fica na hor­i­zon­tal e não na ver­ti­cal como o seu.
     Minha tela é a w35 tam­bém, como já foi repor­tado ante­ri­or­mente. Pode ser algo ref­er­ente a imagem do kernel?

    Na 3 par­tição “ROOTFS, você coloco arquivos ref­er­ente ao SO Android né?? Você que mon­tou, ou baixou do site da Friendly? Teria como eu adi­cionar uma JVM a esse pacote para rodar apli­cações .JAR??

    Obri­gado, desde já.
    André

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

      Olá André,

      Estranho este com­por­ta­mento. Pode ser o ker­nel. Você esta usando o que eu disponi­bi­lizei? Revise tam­bém as var­iáveis de boot do U-boot. O dis­play fun­ciona nor­mal­mente com out­ras distribuições?

      Na par­tição 3 basta for­matar e copiar os arquivos que eu disponi­bi­lizei. Já para adi­cionar outra JVM no Android acho que até dá, mas você vai ter bas­tante tra­balho. O mel­hor é criar uma dis­tribuição especi­fica com X11.

      Um abraço,

  • Emer­son Reis

    Ola Ser­gio, primeira­mente quero parabeniza-lo  pelo blog e segundo dizer que con­segui insta­lar o android con­forme o link http://mini2440vietnam.blogspot.com/2011/05/install-android-for-mini2440.html uti­lizando o super­vivi e zIm­age do w35 com isso con­segui resolver a questão das lin­has col­ori­das nas lat­erais, porem não con­segui mod­if­car a ori­en­tação da tela, pode me ajudar?

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

      Legal Emer­son.

      Deve ter alguma opção no dri­ver do dis­play LCD para rotacioná-lo. Dá uma olhada nos fontes do dri­ver do dis­play no ker­nel. Ou então veja se o autor do artigo pode ajudá-lo.

      Um abraço.

  • Emer­son Reis

    Ola Ser­gio,
    Desco­bri que o dis­play w35 é 320x240 (Especi­fi­cação do fab­ri­cante) e dos demais dis­play de 3.5″ são 240x320 (x35, t35, n35), motivo pelo qual a tela fica virada, como não pos­suo um ambi­ente para com­pi­lar o dri­ver de video (nem nunca com­pilei ker­nel) pode­ria me sug­es­tionar outra forma sem ser com­pi­lando? (Informo que já pro­curei out­ros arquivos zIm­age). Abraços,

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

      Olá Emer­son,

      Exis­tem basi­ca­mente duas for­mas de rota­cionar o dis­play. Via dri­ver ou via bib­lioteca grá­fica. Se você esta descar­tando a hipótese de estudar/alterar o dri­ver, resta estu­dar a pos­si­bil­i­dade de fazer isso com a bib­lioteca grá­fica do Android. Infe­liz­mente não con­heço a fundo esta bib­lioteca e não posso ajudá-lo. Tente achar algo no Google. e se achar, com­par­tilhe aqui com o pes­soal do blog.

      Um abraço.

  • Paulo

    Olá colega Leonardo, Ser­gio e Emer­son. Estou avançando no pro­jeto. Gostaria de sug­erir este forum http://billforums.station51.net/viewforum.php?f=7
    exis­tem usuar­ios nele que jah por­taram o android para os dis­plays todos com sucesso. No momento uso um ker­nel cus­tom para o mini2440 para o dis­play X35. Editei o dri­ver de video como o Ser­gio nos acon­sel­hou, é a soluçao.

  • dio­genes

    gostaria que você se pos­sivel me ajuda-se a insta­lar o android em um mininet­book da china mod­elo EPC ele esta travado no roboz­inho do android e não sai dessa tela
    ante­ci­pada­mente agradeço

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

      Olá Dio­genes,

      Como não tenho o hard­ware fica difi­cil ajudá-lo. É mel­hor você procu­rar um forum espe­cial­izado em Android.

      Um abraço.

  • Jbell­neto

    Caro Ser­gio. Tenho um WM 8650, que não sei porque não sai da tela daquele robosinho gay e não entra mais. Será que existe um arquivo tipo “boot” que possa reinicia-lo, a par­tir de um SD ou coisa parecida?

  • Ota­cilio Tangerino

    Quase foi de primeira. Travou com a msg: “failed to exe­cute /linuxrc”… Alguma dica ? (é uma mini de 128M de Nand) desde ja agradeço.

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

      Olá Ota­cilio,

      Bom, me parece que o prob­lema esta no seu rootfs. Você chegou a descom­pactar o rootfs na ter­ceira par­tição do cartão SD? Ver­i­fique se o arquivo lin­uxrc encontra-se na raiz do diretório.

      Um abraço.

      • Ota­cilio Tangerino

        Refiz o pro­ced­i­mento em outro cartão (novo) e foi. Valeu.

  • Jose Nunes

    Olá de novo Sérgio,

    Eu sei que estou te dando um pouco de tra­balho, mas gostaria de dizer que estou apren­dendo muito com os seus posts e as suas respostas aqui. Eu con­segui segui todo este seu tuto­r­ial, mas agora eu fiquei ainda mais curioso.
    Neste seu post você usa o android para dar o boot pela cartão SD, como eu pode­ria fazer o mesma coisa mas usando o emdebian?

    Desde já muito obri­gado pela sua atenção.

    Abraço.

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

      Olá Jose Nunes,

      Você só pre­cisa baixar o rootfs do emde­bian e gravar no cartão SD.

    • José Nunes

      ou se não um rootfs ger­ado no narcissus.

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

        É isso aí. Basta baixar o rootfs do Nar­cis­sus e descom­pactar para a par­tição do rootfs no cartão SD.

        Um abraço.

        • José Nunes

          Eu baixei o rootfs do nar­cis­sus do tipo jffs2, pro­curei saber como descom­pactar ele mas não achei nada. Ten­tei descom­pactar com o geren­ci­ador de pacotes do ubuntu mas mesmo assim não deu. Será que você não pode­ria me dar uma mãoz­inha nessa parte?

          E na parte dos para­met­ros que tinha que edi­tar eu ape­nas mudei o
          rootfstype=ext3 para rootfstype=jffs2 está certo?E com relação a vari­avel init=/linuxrc, eu vi quet­inha esse arquivo lin­uxrc no pacote do android que­você disponi­bi­li­zou no seu post, então eu tam­bém pre­cis­aria dele com o rootfs ger­ado do nar­cis­sus? Muito obri­gado nova­mente pela atenção.Um abraço.

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

            Olá José,

            Uma imagem do tipo jffs2 é para memórias flash, e você não vai con­seguir usá-la (facil­mente) em um cartão SD.

            Fiz um teste rápido agora pelo site do Nar­cis­sus (http://narcissus.angstrom-distribution.org/) e vi que ele gera uma imagem com­pactada do rootfs (tar.bz). É só você pegar este arquivo e descom­pactar no cartão SD.

            Um abraço.

          • José Nunes

            Sér­gio,

            Muito Obri­gado, deu exata­mente como você disse.

            Obri­gado pela paciência.

            Um abraço.

  • Pedro Duff

    Ola Sér­gio,

    Fiz o passo a passo a risca,e quando mando a linha de comando bootm 0x31000000 para rodar o android,ele da um erro de nao encon­tra a imagem do kernel(eu acho)

    MINI2440 # bootm 0x31000000Wrong Image For­mat for bootm com­man­dER­ROR: can’t get ker­nel image!

    alguma dica?

    Desde já muito obrigado!

    abraço

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

      Olá Pedro,

      O ker­nel não foi gravado cor­re­ta­mente. Tente refazer o processo.

      Um abraço.

  • Pedro Duff

    Olá nova­mente Sergio,

    Con­segui pas­sar daquela parte,como descrevi no post ante­rior.
    Mas agora está ocor­rendo outro problema,quando vai gravar o ker­nel ele depois de fazer alguns pro­ced­i­men­tos emite uma men­sagem e nao vai mais pra lugar nenhum

    VFS: Can­not open root device “mtdblock3” or unknown-block(31,3)Please append a cor­rect “root=” boot option; here are the avail­able partitions:1f00        384 mtdblock0 (driver?)1f01       2048 mtdblock1 (driver?)1f02     128640 mtdblock2 (driver?)1f03     131072 mtdblock3 (driver?)Kernel panic — not sync­ing: VFS: Unable to mount root fs on unknown-block(31,3)

    alguma dica?pelo que entendi nao estou con­seguindo mon­tar o rootfs, ou algo do tipo..

    Desde já muito obrigado!

    Abraço 

  • Pedro Duff

    Olá nova­mente Ser­gio,
    Estou usando dois car­toes microSD,os erros são diferentes(o primeiro esta citado no post anterior),neste segundo cartão aparente­mente ele passa pelo pro­ced­i­mento de rootfs(eu acho),mas da outro erro que nao sei para onde ir.
    mmcblk0: mmc0:1234 SA04G 3813376KiB  mmcblk0: p1 p2 p3kjournald start­ing.  Com­mit inter­val 5 secondsEXT3 FS on mmcblk0p3, inter­nal journalEXT3-fs: recov­ery complete.EXT3-fs: mounted filesys­tem with ordered data mode.VFS: Mounted root (ext3 filesystem).Freeing init mem­ory: 116KWarning: unable to open an ini­tial console.Tem alguma ideia do que seja?
    Desde já muito obri­gado!
    Abraço 

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

      Me parece que o ker­nel esta procu­rando o device node que rep­re­senta a con­sole em /dev/console, mas não esta encon­trando. Coloque o cartão na sua máquina e veja se o arquivo existe.

  • Mario Bal­dini

    Ser­gio,

    Parabéns pelo blog e posts sobre a Mini2440! Foram real­mente muito úteis e seu guia é uma das mel­hores refer­ên­cias que achei sobre a placa.

    Segue uma dica ao pes­soal de um prob­lema que enfrentei:

    Aparente­mente o uboot (ao menos no método descrito) não é com­patível com cartões SD de grande capaci­dade (SDHC), que pos­suem um endereça­mento diferente. 

    Testei com vários cartões (8GB e 32GB) e sem­pre rece­bia uma resposta do tipo:

    MINI2440 # mmcinit­try­ing to detect SD Card…===============> MMC CMD Time­out­MMC found. Card descip­tion is:Manufacturer ID = 000000HW/FW Revi­sion = 0 0Product Name = Ser­ial Num­ber = 80ff00Month = 0Year = 1997===============> MMC CMD Time­out===============> MMC CMD TimeoutREAD_BL_LEN=0, C_SIZE_MULT=0, C_SIZE=1020size = 0===============> MMC CMD Time­out===============> MMC CMD Time­out===============> MMC CMD Timeoutmmc_block_read: err SDIDSTA=0x00000020MINI2440 # 

    como se o cartão não estivesse sendo lido. Cog­itei inclu­sive falha de HW.

    Porém ao usar um cartão de 2 GB (não SDHC ), fun­cio­nou perfeitamente:

    try­ing to detect SD Card…Manufacturer:       0x41, OEM “42“Product name:       “SD2GB”, revi­sion 2.0Serial num­ber:      1526728056Manufacturing date: 10/2009CRC:                0x0e, b0 = 1READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3453size = 23299358722060420 bytes read## Boot­ing ker­nel from Legacy Image at 31000000 …   Image Name:   Cre­ated:      2010-03-26   5:54:15 UTC   Image Type:   ARM Linux Ker­nel Image (uncom­pressed)   Data Size:    2060356 Bytes =  2 MB   Load Address: 30008000   Entry Point:  30008000   Ver­i­fy­ing Check­sum … OK   Load­ing Ker­nel Image … OKOK­Start­ing ker­nel …Uncom­press­ing Linux.….….….….…

    Abraços

  • Ademir

    Olá, vejo que tem um grande con­hec­i­mento com android e linux. Gostaria de saber se é muito difí­cil voltar o sis­tema android inteiro para um smart­phone via linha de comando, usando o fast­boot, pois eu fiz uma cagada aqui no meu cel e ele entrou em um loop infinito e não tem mais a opção de recu­per­ação (não entra em modo recov­ery), já fiz de tudo aqui e não vai. Con­segui conectá-lo via cabo ser­ial, e através do ter­mi­nal con­sigo dar os coman­dos do u-boot, como entrar no modo fast­boot, só fun­ciona por linha de comando, porém não sei como dar os coman­dos cor­re­tos para ele poder insta­lar nova­mente o android. Se puder me aju­dar ou me dar alguma dica ficarei agradecido.

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

      Olá Ademir,

      Procura no site do fab­ri­cante ou no XDA Devel­op­ers como fazer para recu­perar o firmware do smart­phone. É a forma mais rápido e fácil de resolver seu problema.

      Um abraço,

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