Mini2440 – Instalando o Android

- por Sergio Prado

Categorias: Android, Mini2440 Tags: , , ,

No último post sobre o kit FriendlyARM mini2440, instalamos o U-boot e a distribuição Emdebian. Se você ainda não leu e quiser der uma olhada, clique aqui.

Agora vamos (finalmente) rodar o sistema operacional Android nele.

Depois de muitas tentativas, não consegui rodá-lo a partir da flash. Em algum ponto do processo de inicialização, o script de boot trava e a interface gráfica não sobe. Depois de muita pesquisa, cheguei à conclusão de que o provável causador é a “baixa” quantidade de RAM (64M), pois o Android funcionou sem problemas configurando uma partição de SWAP no cartão SD.

O nosso trabalho aqui então será simples: formatar e copiar os arquivos para um cartão SD (1G no mínimo) e configurar o u-boot para iniciar o Android por este cartão SD. Para isso, você vai precisar do U-boot instalado na NAND. Se ainda não o tiver, execute os procedimentos descritos neste post.

Como sempre, utilizaremos uma máquina Linux para a execução dos procedimentos de instalação. Para facilitar o trabalho de todos, criei um pacote com os arquivos necessários para a instalação. Este arquivo pode ser baixado aqui.

CONFIGURANDO O CARTÃO SD

O cartão SD deverá ser de no mínimo 1G. Vamos criar 3 partições:

  • Partição 1 -> SWAP – 512M – Memória Swap
  • Partição 2 -> EXT2 – 20M – Kernel
  • Partição 3 -> EXT3 – Restante – Rootfs

Você pode usar qualquer ferramenta de particionamento de disco, como “fdisk”, “cfdisk” ou “sfdisk”. Eu usei o “gparted” que tem uma interface gráfica simples. Nosso cartão SD ficou assim:

Depois de formatado, é necessário copiar os arquivos para o cartão SD. Baixe e descompacte o arquivo que disponibilizei neste link. Copie os arquivos da pasta “Partition2” para a partição 2 do cartão SD. Copie também os arquivos da pasta “Partition3” para a partição 3 do cartão SD.

CONFIGURANDO O U-BOOT

Para configurar o U-boot para carregar o Android do cartão SD, precisamos alterar as variáveis de ambiente “bootargs” e “bootcmd”, conforme 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 variável “bootargs” armazena os parâmetros que serão passados ao kernel. O detalhe aqui é o parâmetro “mini2440”, onde você deve usar o valor “0tb” para displays de 3.5″, e “1tb” para displays de 7″.

Na variável “bootcmd” temos os comandos usados pelo U-boot para iniciar o Android pelo cartão SD. Primeiro iniciamos o driver para a leitura do cartão SD com o comando “mmcinit”. Aqui o U-boot mostra o quanto ele é flexivel. Com o comando “ext2load mmc 0:2 0x31000000 uImage” conseguimos ler da segunda partição do cartão SD um sistema de arquivos ext2 e carregar o arquivo uImage para a RAM no endereço 0x31000000. E então iniciamos o Android pela RAM com o comando “bootm 0x31000000”.

E NÃO É QUE FUNCIONA?

O primeiro boot é um pouco demorado, então tenha paciência. Mas funciona! Veja abaixo algumas imagens do Android rodando no mini2440:

       

Confesso que esperava uma performance melhor. Não tive problemas de travamentos, mas a execução do Android ficou um pouco lenta. A imagem precisaria ser mais otimizada para ser embarcada em um produto final, mas já pode servir de base para estudarmos o sistema operacional.

No próximo post vamos aprender a usar o Buildroot para construir do zero um toolchain e uma distribuição Linux customizada para o mini2440. Até lá!

Um abraço,

Sergio Prado

  • Edison

    Sérgio,
    muito legal. Valeu pelo tutor pois tenho um destes a mais de um
    ano e não o uso adequadamente devido a equação: tempo e tutoriais mais objetivos.
    Estes últimos tutoriais sobre ele com certeza vou executar passo a passo para brincar
    com ele.
    Quanto ao próximo tutorial você vai compilar a "tool chain" ou vai vai configura-lá ?
    Deixo como sugestão, se for compilar, o fazer no Linux(64 bits) ou no FreeBSD.
    Um grande abraço e novamente valeu pelo tutor.

    • Olá Edison,

      Vou compilar mesmo (em Linux), usando o Buildroot para gerar o toolchain e o rootfs.

      Um abraço!

  • Marcelo

      Parabéns pelo post Sergio!
      Eu estou faz um tempo estudando toda essa parte de embarcados com um sistema operacional. Então a parte de boot é a parte q eu sempre tive problemas por não entender direito! O próximo post com o buildroot + toolchain será outra coisa que eu estou muito interessado e ansioso pra ver!

      Abraços e continue com os posts!

  • Rui

    Também tenho esta placa e estou ansioso pelo próximo post sobre a compilação do toolchain.
     
    Abraço

  • Matheus

    Sérgio, parabéns pelo post! Muito bom!
    Gostaria de saber se a sua porta ethernet funcionou sem problemas… estou tendo problema para configurar o dhcp para a minha eth0. Não consigo navegar na internet com o meu kit. Você lembra se precisou fazer algo especial?
     
    Abração!
    Matheus

    • Olá Matheus,

      MInha eth0 funcionou sem problemas. Consegui inclusive fazer algumas pesquisas no google pela mini2440. Você esta conseguindo acessar a console? Qual o retorno do comando “ifconfig” ?

      Um abraço!

  • Bruno

    Parabéns pelo post
    Comprei a pouco tempo um mini2440 igual ao seu com 256Mb de NAND
    Agora estou tentando instalar o android
    Realizei o mesmo procedimento descrito em seu post e recebo a seguinte msg quando tento iniciar pelo cartão SD:

    unable to open an initial console
    e a partir daí mais nada
    Conseguiria me ajudar nisso?
    Abraço

    • Olá Bruno,

      Posso te ajudar sim. Você consegue me mandar por email toda a saída da sua console, desde o boot do kernel?

      Abraços!

  • Matheus

    Oi Sergio
     
    Obrigado pela resposta… Minha eth0 não funcionou por default mas, após algumas pesquisas consegui fazê-la funcionar com os seguintes comandos no shell do Android:
    netcfg eth0 dhcp
    setprop service.adb.tcp.port 5555
    setprop net.dns1 dns_ip (por exemplo 8.8.8.8)
     
    Pode ser que seja util para alguem…
     
    Abração!
    Matheus
     
     

  • Tom

    Sérgio, não consegui realizar o boot pelo memory card, verifiquei que quando ativo o memorycard recebo o seguinte erro:
    mmc_block_read: err SDIDSTA=0x00000024
     
    Tem idéia do que pode ser isso, já pesquisei muito mais ainda não consegui achar o motivo.

    • Olá Tom,

      Esse erro acontece na execução do “mmcinit” no uboot? Você já testou com outro cartão? Se ambas as respostas forem afirmativas, me parece ser algo relacionado ao hardware da controladora do seu kit mini2440.

      Abraços!

  • Luis Specian

    Olá Sérgio, você tem os fontes para a compilação do kernel? eu estou com uma dev board baseada em s3c2440 mas o lcd é diferente, cheguei a bootar com as imagens que você disponibilizou, mas o video não funciona. Grato desde já pela atenção.

  • Tom

    Depois que escrevi aqui no seu blog resolvi usar a cabeça, instalei um linux no kit e tentei montar o cartão, mas assim que coloco o mesmo recebo um monte de erros na console. Embora eu acreditasse na integridade do cartão acabei por testar outro, que funcionou de primeira. Em pesquisa na internet li alguns posts relatando a possível incompatibilidade de alguns cartões com o mini2440. Fica a dica pro pessoal, se encontrarem problemas com o SD Card testem outro que deve resolver o problema. Detalhe o cartão que não funciona é Kingston e o que funciona é Sandisk.

  • sudhy

    Hi… i am doin android tablet pc as my masters project and i developed applications in android and brought mini2440 and was worried about the board support for android … reading ur posts made me that it can be ported and u hav given a gud idea for my proj  support and thanks for your posts…

    • Hi Sudhy,

      Thanks for reading! And please let me know if you have any questions.

      Best regards,

      Sergio Prado

  • Rodolfo

    Bom dia Sergio,
    Olha o erro que me retorna, será que a imagem kernel está corrompida?:
    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
    *** Warning – bad CRC or NAND, using default environment

    USB:   S3C2410 USB Deviced
    In:    serial
    Out:   serial
    Err:   serial
    MAC: 08:08:11:18:12:27
    Hit any key to stop autoboot:  0
    MINI2440 # setenv bootargs 'console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstyp
    e=ext3 mini2440=1tb rootdelay=3 init=/linuxrc'
    MINI2440 # setenv bootcmd 'mmcinit \; ext2load mmc 0:2 0x31000000 uImage \; boot
    m 0x31000000
    MINI2440 # saveenv
    Saving Environment to NAND…
    Erasing Nand…MINI2440 # bootm 0x31000000
    Wrong Image Format for bootm command
    ERROR: can't get kernel image!
    MINI2440 #

    • Olá Rodolfo,

      Ou a imagem esta corrompida, ou o kernel não foi gravado corretamente na memória SD.

      Abraços!

  • Eduardo

    Sérgio parabéns pelo blog, excelente qualidade.
    Para que funcionasse aqui tive que alterar:
    setenv bootcmd 'mmcinit \; ext2load mmc 0:2 0x31000000 uImage \; bootm 0x31000000'
    Para: setenv bootcmd 'mmcinit; ext2load mmc 0:2 0x31000000 uImage; bootm 0x31000000;'
    Ou seja retirei a barra caso contrário o comando não era executado.

    • Olá Eduardo,

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

      Post corrigido. Valeu pela dica!

      Abraços!

  • Christian Gutierrez

    Hi Sergio, I'm from Colombia, your work is great, and post too :D. I write in english because i don't know Portuguese, but if you speak spanish, that would be great. I acquired a mini2440 recently, and i would like to install Android, but i got the mentioned Warning: unable to open an initial console. I think that this is for /dev don't has the console 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 director
    can't open /dev/tty3: No such file or director
    can't open /dev/tty4: No such file or director
    repeatedly.
    I can paste that files from my emdebian filesystem that works great, but i never get graphics. Any help would be great.
    I think that your work is great, i'm traying to learn. :P

    • Hi Christian,

      Have you executed all the steps in this article?

  • Christian Gutierrez

    Hi Sergio, thanks for your reply. I did every step, i don't know if my mini2440 has a difference 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 problem with the command bellow:
    MINI2440# dynenv set 40000

    • Hi Christian,

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

      Best regards

  • Matheus

    Olá Sérgio, tudo bem?
     
    Tenho uma outra placa de desenvolvimento aqui com um OMAP 3530 e gostaria de tentar portar o Android para ela. Você tem alguma dica (site ou blog) para me passar? Gostaria de saber alguns macetes sobre o processo "Buildar o Android para ARM" -> Criar um SD card -> Configurar o bootloader para minha placa -> levantar o sistema.
     
    Obrigado!
    Matheus

  • Olá Matheus!

    Não precisei fazer isso com a mini2440. O pessoal já disponibiliza uma distribuição Android pronta para usar. Você vai precisar de um kernel 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, obrigado Sérgio!
     
    Apenas para constar, alguns links que tem informações / códigos interessantes para quem se interessar em portar o Android para um device com OMAP:
     
    http://code.google.com/p/rowboat/
    http://source.android.com/source/downloading.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 Sergio, o meu da o mesmo erro do Bruno "unable to open an ini­tial con­sole" 
    voce resolveu para ele ?
    Obrigado
    Vitor

  • Olá Vitor,

    Não tive mais nenhum feedback do Bruno. Seu display também é de 7 polegadas?

    Um abraço.

  • Vitor Christo

    Oi, Sérgio,
    meu display é um Sony X35, ele funciona perfeitamente com o Qtopia (imagens que vieram no cd) mas durante o boot do SD, a ultima msg que dá é "unable to open an ini­tial con­sole" eu compilei o Kernel com o config para o X35, mas por uma razão que eu desconheço não da boot com o zImage-X35.

    • Olá Vitor,

      Realmente não sei o que possa estar acontecendo. O rootfs foi montado corretamente? Me envie os parametros de boot do Linux configurados no u-boot e as mensagens de boot do kernel por email para ver se consigo te ajudar.

      Um abraço.

  • krish

    hi sergio.. great blog.. and im gonna try it this week itself.. hope it works.. :)
    i have a few doubts.. please assist me..
    what version of android is used in here? 1.6?? where did you find the source to build this kernel and rootfs??
    i need to port android 2.3 gingerbread to mini2440(thats my project in college).. where should i start?? which kernel should i use and where can i get it?? what about the rootfs?? how to make it?? 
     
    i would be very very grateful to you if you could clear my doubts… thanks in advance… :) 

  • krish

    oh right RAM problem.. :) anyway thanks a lot for the response bro. :).
     
    i managed to do most of the process but now stuck with the following error-
    ——–
     
     Freeing init memory: 116K

    open file errer!

    xres = 240, yres = 320



    ———–


    any idea ???

    • Hi krish,

      Well, no idea. Are you able to get the console? Or it stops booting the kernel?

  • krish

    i stumbled 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 Environment offset in OOB..
    USB:   S3C2410 USB Deviced
    In:    serial
    Out:   serial
    Err:   serial
    MAC: 08:08:11:18:12:27
    Hit any key to stop autoboot:  0
    mmc: Probing for SDHC …
    mmc: SD 2.0 or later card found
    trying to detect SD Card…
    Manufacturer:       0x03, OEM "SD"
    Product name:       "SD02G", revision 8.0
    Serial number:      1906349918
    Manufacturing 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
    ## Booting kernel from Legacy Image at 31000000 …
       Image Name:   Linux-2.6.27
       Created:      2010-01-08   8:44:01 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2051180 Bytes =  2 MB
       Load Address: 30008000
       Entry Point:  30008000
       Verifying Checksum … OK
       Loading Kernel Image … OK
    OK

    Starting kernel …

    Uncompressing Linux……………………………………………………………………………………………………………………… done, booting the kernel.
    Linux version 2.6.27 (sven@storage) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #2 PREEMPT Fri Jan 8 16:43:57 CST 2010
    CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
    Machine: Mini2440 development board
    Memory policy: ECC disabled, Data cache writeback
    CPU S3C2440A (id 0x32440001)
    MM: CPU does not support supersection mapping for 0x55000000000 at 0xf0d00000
    S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz
    S3C24XX Clocks, (c) 2004 Simtec Electronics
    CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
    Kernel command line: console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstype=ext3 mini2440=0tb rootdelay=3 init = /linuxrc
    irq: clearing pending status 02000000
    irq: clearing subpending status 00000002
    PID hash table entries: 256 (order: 8, 1024 bytes)
    timer tcon=00500000, tcnt a4ca, tcfg 00000200,00000000, usec 00001e57
    Console: colour dummy device 80×30
    console [ttySAC0] enabled
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 64MB = 64MB total
    Memory: 60108KB available (3944K code, 671K data, 116K init)
    SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    Calibrating delay loop… 201.93 BogoMIPS (lpj=504832)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    net_namespace: 288 bytes
    NET: Registered protocol family 16
    S3C2440: Initialising architecture
    S3C2440: IRQ Support
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
    DMA channel 0 at c4800000, irq 33
    DMA channel 1 at c4800040, irq 34
    DMA channel 2 at c4800080, irq 35
    DMA channel 3 at c48000c0, irq 36
    S3C244X: Clock Support, DVS off
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    NET: Registered protocol family 1
    NetWinder Floating Point Emulator V0.97 (double precision)
    ashmem: initialized
    NTFS driver 2.1.29 [Flags: R/W DEBUG].
    JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
    JFFS2: default compression mode: priority
    yaffs Jan  8 2010 16:36:40 Installing.
    msgmni has been set to 117
    io scheduler noop registered (default)
    Console: switching to colour frame buffer device 40×15
    fb0: s3c2410fb frame buffer device
    adc    initialized
    input: buttons as /class/input/input0
    buttons    initialized
    leds    initialized
    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: module loaded
    loop: module loaded
    nbd: registered device at major 43
    logger: created 64K log 'log_main'
    logger: created 256K log 'log_events'
    logger: created 64K log 'log_radio'
    dm9000 Ethernet Driver, 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)
    usbcore: registered new interface driver zd1211rw
    usbcore: registered new interface driver zd1201
    Linux video capture interface: v2.00
    ovcamchip: v2.27 for Linux 2.6 : OV camera chip I2C driver
    usbcore: registered new interface driver ov511
    ov511: v1.64 for Linux 2.5 : ov511 USB Camera Driver
    Driver 'sd' needs updating – please use bus_type methods
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c2440-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
    NAND_ECC_NONE selected by board driver. This is not recommended !!
    Scanning device for bad blocks
    Creating 4 MTD partitions on "NAND 1GiB 3,3V 8-bit":
    0x00000000-0x00060000 : "supervivi"
    0x00060000-0x00260000 : "Kernel"
    0x00260000-0x40260000 : "root"
    mtd: partition "root" extends beyond the end of device "NAND 1GiB 3,3V 8-bit" — size truncated to 0x3fda0000
    0x00000000-0x40000000 : "nand"
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 2 ports detected
    Initializing USB Mass Storage driver…
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increasing FIFO to 128 bytes
    mice: PS/2 mouse device common for all mice
    usbcore: registered new interface driver appletouch
    input: s3c2410 TouchScreen as /class/input/input1
    s3c2410 TouchScreen successfully loaded
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
    s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
    i2c /dev entries driver
    s3c2440-i2c s3c2440-i2c: slave address 0x10
    s3c2440-i2c s3c2440-i2c: bus frequency set to 98 KHz
    s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
    mapped channel 0 to 0
    s3c2440-sdi s3c2440-sdi: powered down.
    s3c2440-sdi s3c2440-sdi: initialisation done.
    s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    usbcore: registered new interface driver hiddev
    usbcore: registered new interface driver usbhid
    usbhid: v2.6:USB HID core driver
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    UDA1341 audio driver initialized
    failed to get memory region resouce
    s3c2410-iis: probe of s3c2410-iis.0 failed with error -2
    TCP cubic registered
    NET: Registered protocol family 17
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2410-rtc s3c2410-rtc: setting system clock to 2062-07-28 23:03:52 UTC (2921353432)
    Waiting 3sec before mounting root device…
    s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
    s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
    mmc0: new SD card at address 8836
    mmcblk0: mmc0:8836 SD02G 1931264KiB
     mmcblk0: p1 p2 p3
    kjournald starting.  Commit interval 5 seconds
    EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
    EXT3 FS on mmcblk0p3, internal journal
    EXT3-fs: mounted filesystem with ordered data mode.
    VFS: Mounted root (ext3 filesystem).
    Freeing init memory: 116K
    cannot run '/etc/init.d/rcS': No such file or director

    Please press Enter to activate this console. / #
    there is no etc folder in the fs.. any idea whats the issue here???  i googled every available site and couldnt manage to solve it.. any idea???

    • Hi krish,

      That is very strange. I would look at the rootfs image, trying to open it and check if the etc directory and rcS script is there.

      Best regards.

  • krish

    i had to manually run the linuxrc file.. using ./linuxrc command…
    or init file in system/bin folder… 
     
    it starts booting… and i saw android working in the board.. . :)
    but im facing resolution problems ryt now.. hope i can solve it.. tried everything from 0tb to 6tb in the bootargs command… but it dint help…  hope i solve it soon.. 

  • krish

    @Christian Gutierrez:
     
    use mknod command and make nodes in /media/rootfs/dev folder… its cheating but still it will work.. :) :) 
    if u r using ubuntu, the command 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 kernel partition from "uImage.bin" to "uImage".. 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 console c 5 1

  • Emerson

    Ola Sérgio, tudo bom ? Eu possuo uma mini6410, e estou tentando setar para dar boot pela pendrive, conectado na USB, alguma ideia se é possivel ?

  • krish

    Hello sergio, 
    can you help me with compiling kernel 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 comment in here.

  • Emerson

    Ola Sergio, 
       Tentei usar o comando fatload, porem não existe, ao digitar help no u-boot, não tem esse comando na lista, depois vou tentar outra versão, talvez mais nova do uboot, e posto aqui os resultados

  • Robson

    Sergio, 
     
    Parabéns pelo blog!
    Eu segui a risca todos os passos deste post e me deparei com o problema de alguns colegas aí de cima que não vi/sei se houve solução.
    O uBoot carrega a imagem e chega num determinado ponto tudo pára e nada mais acontece.
    Voce sabe o que pode haver? Segue abaixo meu bootlog:
     
     
    mmc: Probing for SDHC …
    mmc: SD 2.0 or later card found
    trying to detect SD Card…
    Manufacturer:       0x03, OEM "SD"
    Product name:       "SU04G", revision 8.0
    Serial number:      29637756
    Manufacturing 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
    ## Booting kernel from Legacy Image at 31000000 …
       Image Name:
       Created:      2010-03-26   5:54:15 UTC
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2060356 Bytes =  2 MB
       Load Address: 30008000
       Entry Point:  30008000
       Verifying Checksum … OK
       Loading Kernel Image … OK
    OK


    Starting kernel …


    Uncompressing Linux…………………………………………………….
    ……………………………………………………………… done, b
    ooting the kernel.
    Linux version 2.6.27 (root@tom) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
     ) #1 PREEMPT Mon Aug 24 17:01:35 CST 2009
    CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
    Machine: FriendlyARM Mini2440 development board
    Memory policy: ECC disabled, Data cache writeback
    CPU S3C2440A (id 0x32440001)
    MM: CPU does not support supersection mapping for 0x55000000000 at 0xf0d00000
    S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz
    S3C24XX Clocks, (c) 2004 Simtec Electronics
    CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
    CPU0: D VIVT write-back cache
    CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
    Kernel command line: console=ttySAC0,115200 root=/dev/mmcblk0p3 rootfstype=ext3
    mini2440=0tb rootdelay=3 init=/linuxrc
    irq: clearing pending status 02000000
    irq: clearing subpending status 00000003
    irq: clearing subpending status 00000002
    PID hash table entries: 256 (order: 8, 1024 bytes)
    timer tcon=00500000, tcnt a4ca, tcfg 00000200,00000000, usec 00001e57
    Console: colour dummy device 80×30
    console [ttySAC0] enabled
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 64MB = 64MB total
    Memory: 60188KB available (3896K code, 636K data, 116K init)
    SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    Calibrating delay loop… 201.93 BogoMIPS (lpj=504832)
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    net_namespace: 288 bytes
    NET: Registered protocol family 16
    S3C2440: Initialising architecture
    S3C2440: IRQ Support
    S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
    DMA channel 0 at c4800000, irq 33
    DMA channel 1 at c4800040, irq 34
    DMA channel 2 at c4800080, irq 35
    DMA channel 3 at c48000c0, irq 36
    S3C244X: Clock Support, DVS off
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 2048 (order: 2, 16384 bytes)
    TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    TCP: Hash tables configured (established 2048 bind 2048)
    TCP reno registered
    NET: Registered protocol family 1
    NetWinder Floating Point Emulator V0.97 (double precision)
    ashmem: initialized
    NTFS driver 2.1.29 [Flags: R/W DEBUG].
    yaffs Aug 24 2009 16:57:57 Installing.
    msgmni has been set to 117
    io scheduler noop registered (default)
    Console: switching to colour frame buffer device 30×20
    fb0: s3c2410fb frame buffer device
    adc     initialized
    input: buttons as /class/input/input0
    buttons initialized
    leds    initialized
    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: module loaded
    loop: module loaded
    nbd: registered device at major 43
    logger: created 64K log 'log_main'
    logger: created 256K log 'log_events'
    logger: created 64K log 'log_radio'
    dm9000 Ethernet Driver, 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)
    usbcore: registered new interface driver zd1211rw
    usbcore: registered new interface driver zd1201
    Linux video capture interface: v2.00
    ovcamchip: v2.27 for Linux 2.6 : OV camera chip I2C driver
    usbcore: registered new interface driver ov511
    ov511: v1.64 for Linux 2.5 : ov511 USB Camera Driver
    Driver 'sd' needs updating – please use bus_type methods
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c2440-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
    NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bi
    t)
    NAND_ECC_NONE selected by board driver. This is not recommended !!
    Scanning device for bad blocks
    Bad eraseblock 222 at 0x01bc0000
    Bad eraseblock 728 at 0x05b00000
    Bad eraseblock 919 at 0x072e0000
    Bad eraseblock 955 at 0x07760000
    Bad eraseblock 1040 at 0x08200000
    Bad eraseblock 1060 at 0x08480000
    Bad eraseblock 1326 at 0x0a5c0000
    Bad eraseblock 1463 at 0x0b6e0000
    Bad eraseblock 2017 at 0x0fc20000
    Creating 4 MTD partitions on "NAND 256MiB 3,3V 8-bit":
    0x00000000-0x00060000 : "supervivi"
    0x00060000-0x00260000 : "Kernel"
    0x00260000-0x40260000 : "root"
    mtd: partition "root" extends beyond the end of device "NAND 256MiB 3,3V 8-bit"
    — size truncated to 0xfda0000
    0x00000000-0x40000000 : "nand"
    mtd: partition "nand" extends beyond the end of device "NAND 256MiB 3,3V 8-bit"
    — size truncated to 0x10000000
    s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
    s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
    s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 2 ports detected
    Initializing USB Mass Storage driver…
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increasing FIFO to 128 bytes
    mice: PS/2 mouse device common for all mice
    usbcore: registered new interface driver appletouch
    input: s3c2410 TouchScreen as /class/input/input1
    s3c2410 TouchScreen successfully loaded
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
    s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
    i2c /dev entries driver
    s3c2440-i2c s3c2440-i2c: slave address 0x10
    s3c2440-i2c s3c2440-i2c: bus frequency set to 98 KHz
    s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
    mapped channel 0 to 0
    s3c2440-sdi s3c2440-sdi: powered down.
    s3c2440-sdi s3c2440-sdi: initialisation done.
    s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    usbcore: registered new interface driver hiddev
    usbcore: registered new interface driver usbhid
    usbhid: v2.6:USB HID core driver
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    UDA1341 audio driver initialized
    failed to get memory region resouce
    s3c2410-iis: probe of s3c2410-iis.0 failed with error -2
    TCP cubic registered
    NET: Registered protocol family 17
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    s3c2410-rtc s3c2410-rtc: setting system clock to 2163-06-21 00:52:47 UTC (181031
    9071)
    Waiting 3sec before mounting root device…
    s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
    s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
    s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
    mmc0: new SDHC card at address e624
    mmcblk0: mmc0:e624 SU04G 3872256KiB
     mmcblk0: p1 p2 p3
    kjournald starting.  Commit interval 5 seconds
    EXT3-fs warning: checktime reached, running e2fsck is recommended
    EXT3 FS on mmcblk0p3, internal journal
    EXT3-fs: recovery complete.
    EXT3-fs: mounted filesystem with ordered data mode.
    VFS: Mounted root (ext3 filesystem).
    Freeing init memory: 116K
    Warning: unable to open an initial console.

    • Olá Robson,

      Olhando o trecho do código do kernel, dá pra concluir que ele não achou o /dev/console:

      if (sys_open((const char __user *) “/dev/console”, O_RDWR, 0) < 0)
      printk(KERN_WARNING "Warning: unable to open an initial console.\n");

      Parece algum problema com o rootfs. Mas aparentemente ele conseguiu executar o init. Tenta criar um rootfs bem simples (fácil com o Buildroot), copia pra CF, passa pro kernel init=/bin/sh e veja se no boot aparece a console.

      Um abraço.

  • Robson

    Sérgio, 
     
    Muito obrigado pela presteza na resposta. Mas apesar de ser Eng. Mecatrônico, sou novo em Linux.Você poderia detalhar um pouco melhor? Teria algum link ou documento sobre como "rebuildar" o android pro meu caso ou sobre como fazer o procedimento que voce me passou?
     
    Obrigado

  • Robson

    Valeu!!!

  • Rodrigo Krug

    Boa Tarde Sergio
    Todos os seus posts tem me ajudado muito. 
     
    Porem venho tentando fazer o Android funcionar e venho tendo o seguinte erro:
    kernel panic – not syncing: No init found. Try passing init= option to kernel.
    Ele simplismente para ai e nao faz mais nada.
    Pode me ajudar?
     
    Muito Obrigado
    Rodrigo krug

  • Rodrigo Krug

    Tambem mostra:
     
    Failed to execute /linuxrc
     
    Obrigado

    • Olá Rodrigo,

      Aparentemente o kernel esta montando o rootfs, mas não esta encontrando o arquivo “linuxrc”. Você conseguiu gravar o cartão SD sem problemas? Consegue montar o cartão SD na sua máquina de desenvolvimento e verificar se este arquivo se encontra lá no “/” do seu sistema de arquivos?

      Um abraço.

  • Paulo

    Ola Sergio, voce poderia me passar as modificaçoes no kernel para o display X35? Aqui eu consegui subir a tela mas o touchscreen ainda esta perdido, pro display A70 de 7" nao tive problemas. Agraçadeço.

  • Paulo

    Obrigado Sergio, vou tentar portar para o kernel do android que estou utilizando, soh me falta o touchscreen mesmo. Tudo funcionando tranquilo direto da nand, apenas o versao de 7" que fica instavel devida a falta de memoria.

  • Leonardo

    Olá Paulo,
    Acompanhei os outros posts referente ao mini2440 e me deparei neste, com um problema. As configurações do u-boot não permanecem  após reiniciar, o Android não executa. O único vestígio que encontrei é no momento que o u-boot inicia aparece ***Warning – bad CRC or NAND, using default enviroment.
    Pode me ajudar?

    • Olá Leonardo,

      A sua NAND tem uma partição para armazenar o ambiente do U-Boot? O comando mtdparts vai te mostrar isso. E você esta salvando com o comando saveenv?

      Um abraço.

  • Leonardo

     
    Olá PAulo,
     
     
    device nand0 <mini2440-nand>, # parts = 4
     #: name size offset mask_flags
     0: u-boot              0x00040000 0x00000000 0
     1: env                 0x00020000 0x00040000 0
     2: kernel              0x00500000 0x00060000 0
     3: root                0x07aa0000 0x00560000 0
     
    Sim estou executando o saveenv, é curioso pois o android so é carrega com o comando boot após o saveenv.
    Um segundo problema seria a orientação de tela no display W35, fica invertida mostrando linhas coloridas em uma parte.

  • Leonardo

    Olá Sergio,
     
    Muitos tiveram o mesmo problema que eu descrevi referente ao W35, mas sem solução descrita.
    Você poderia me ajudar?

    • Claro Leonardo.

      Me descreva melhor o problema e o que você já fez para tentar solucioná-lo.

      Um abraço.

  • André Costa Xavier

    Sergio, boa noite.
     
    Realizei os procedimentos acima, e quando o SO carrega aparece linhas coloridas do lado direito da tela, reduzindo a reprodução da tela, e o SO fica na horizontal e não na vertical como o seu.
     Minha tela é a w35 também, como já foi reportado anteriormente. Pode ser algo referente a imagem do kernel?

    Na 3 partição "ROOTFS, você coloco arquivos referente ao SO Android né?? Você que montou, ou baixou do site da Friendly? Teria como eu adicionar uma JVM a esse pacote para rodar aplicações .JAR??

    Obrigado, desde já.
    André

    • Olá André,

      Estranho este comportamento. Pode ser o kernel. Você esta usando o que eu disponibilizei? Revise também as variáveis de boot do U-boot. O display funciona normalmente com outras distribuições?

      Na partição 3 basta formatar e copiar os arquivos que eu disponibilizei. Já para adicionar outra JVM no Android acho que até dá, mas você vai ter bastante trabalho. O melhor é criar uma distribuição especifica com X11.

      Um abraço,

  • Emerson Reis

    Ola Sergio, primeiramente quero parabeniza-lo  pelo blog e segundo dizer que consegui instalar o android conforme o link http://mini2440vietnam.blogspot.com/2011/05/install-android-for-mini2440.html utilizando o supervivi e zImage do w35 com isso consegui resolver a questão das linhas coloridas nas laterais, porem não consegui modifcar a orientação da tela, pode me ajudar?

    • Legal Emerson.

      Deve ter alguma opção no driver do display LCD para rotacioná-lo. Dá uma olhada nos fontes do driver do display no kernel. Ou então veja se o autor do artigo pode ajudá-lo.

      Um abraço.

  • Emerson Reis

    Ola Sergio,
    Descobri que o display w35 é 320×240 (Especificação do fabricante) e dos demais display de 3.5" são 240×320 (x35, t35, n35), motivo pelo qual a tela fica virada, como não possuo um ambiente para compilar o driver de video (nem nunca compilei kernel) poderia me sugestionar outra forma sem ser compilando? (Informo que já procurei outros arquivos zImage). Abraços,

    • Olá Emerson,

      Existem basicamente duas formas de rotacionar o display. Via driver ou via biblioteca gráfica. Se você esta descartando a hipótese de estudar/alterar o driver, resta estudar a possibilidade de fazer isso com a biblioteca gráfica do Android. Infelizmente não conheço a fundo esta biblioteca e não posso ajudá-lo. Tente achar algo no Google. e se achar, compartilhe aqui com o pessoal do blog.

      Um abraço.

  • Paulo

    Olá colega Leonardo, Sergio e Emerson. Estou avançando no projeto. Gostaria de sugerir este forum http://billforums.station51.net/viewforum.php?f=7
    existem usuarios nele que jah portaram o android para os displays todos com sucesso. No momento uso um kernel custom para o mini2440 para o display X35. Editei o driver de video como o Sergio nos aconselhou, é a soluçao.

  • diogenes

    gostaria que você se possivel me ajuda-se a instalar o android em um mininetbook da china modelo EPC ele esta travado no robozinho do android e não sai dessa tela
    antecipadamente agradeço

    • Olá Diogenes,

      Como não tenho o hardware fica dificil ajudá-lo. É melhor você procurar um forum especializado em Android.

      Um abraço.

  • Jbellneto

    Caro Sergio. 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 partir de um SD ou coisa parecida?

  • Otacilio Tangerino

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

    • Olá Otacilio,

      Bom, me parece que o problema esta no seu rootfs. Você chegou a descompactar o rootfs na terceira partição do cartão SD? Verifique se o arquivo linuxrc encontra-se na raiz do diretório.

      Um abraço.

      • Otacilio Tangerino

        Refiz o procedimento em outro cartão (novo) e foi. Valeu.

  • Jose Nunes

    Olá de novo Sérgio,

    Eu sei que estou te dando um pouco de trabalho, mas gostaria de dizer que estou aprendendo muito com os seus posts e as suas respostas aqui. Eu consegui segui todo este seu tutorial, mas agora eu fiquei ainda mais curioso.
    Neste seu post você usa o android para dar o boot pela cartão SD, como eu poderia fazer o mesma coisa mas usando o emdebian?

    Desde já muito obrigado pela sua atenção.

    Abraço.

    • Olá Jose Nunes,

      Você só precisa baixar o rootfs do emdebian e gravar no cartão SD.

    • José Nunes

      ou se não um rootfs gerado no narcissus.

      • É isso aí. Basta baixar o rootfs do Narcissus e descompactar para a partição do rootfs no cartão SD.

        Um abraço.

        • José Nunes

          Eu baixei o rootfs do narcissus do tipo jffs2, procurei saber como descompactar ele mas não achei nada. Tentei descompactar com o gerenciador de pacotes do ubuntu mas mesmo assim não deu. Será que você não poderia me dar uma mãozinha nessa parte?

          E na parte dos parametros que tinha que editar eu apenas mudei o
          rootfstype=ext3 para rootfstype=jffs2 está certo?E com relação a variavel init=/linuxrc, eu vi quetinha esse arquivo linuxrc no pacote do android quevocê disponibilizou no seu post, então eu também precisaria dele com o rootfs gerado do narcissus? Muito obrigado novamente pela atenção.Um abraço.

          • Olá José,

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

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

            Um abraço.

          • José Nunes

            Sérgio,

            Muito Obrigado, deu exatamente como você disse.

            Obrigado pela paciência.

            Um abraço.

  • Pedro Duff

    Ola Sérgio,

    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 encontra a imagem do kernel(eu acho)

    MINI2440 # bootm 0x31000000Wrong Image Format for bootm commandERROR: can’t get kernel image!

    alguma dica?

    Desde já muito obrigado!

    abraço

    • Olá Pedro,

      O kernel não foi gravado corretamente. Tente refazer o processo.

      Um abraço.

  • Pedro Duff

    Olá novamente Sergio,

    Consegui passar daquela parte,como descrevi no post anterior.
    Mas agora está ocorrendo outro problema,quando vai gravar o kernel ele depois de fazer alguns procedimentos emite uma mensagem e nao vai mais pra lugar nenhum

    VFS: Cannot open root device “mtdblock3” or unknown-block(31,3)Please append a correct “root=” boot option; here are the available partitions:1f00        384 mtdblock0 (driver?)1f01       2048 mtdblock1 (driver?)1f02     128640 mtdblock2 (driver?)1f03     131072 mtdblock3 (driver?)Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

    alguma dica?pelo que entendi nao estou conseguindo montar o rootfs, ou algo do tipo..

    Desde já muito obrigado!

    Abraço 

  • Pedro Duff

    Olá novamente Sergio,
    Estou usando dois cartoes microSD,os erros são diferentes(o primeiro esta citado no post anterior),neste segundo cartão aparentemente ele passa pelo procedimento de rootfs(eu acho),mas da outro erro que nao sei para onde ir.
    mmcblk0: mmc0:1234 SA04G 3813376KiB  mmcblk0: p1 p2 p3kjournald starting.  Commit interval 5 secondsEXT3 FS on mmcblk0p3, internal journalEXT3-fs: recovery complete.EXT3-fs: mounted filesystem with ordered data mode.VFS: Mounted root (ext3 filesystem).Freeing init memory: 116KWarning: unable to open an initial console.Tem alguma ideia do que seja?
    Desde já muito obrigado!
    Abraço 

    • Me parece que o kernel esta procurando o device node que representa a console em /dev/console, mas não esta encontrando. Coloque o cartão na sua máquina e veja se o arquivo existe.

  • Mario Baldini

    Sergio,

    Parabéns pelo blog e posts sobre a Mini2440! Foram realmente muito úteis e seu guia é uma das melhores referências que achei sobre a placa.

    Segue uma dica ao pessoal de um problema que enfrentei:

    Aparentemente o uboot (ao menos no método descrito) não é compatível com cartões SD de grande capacidade (SDHC), que possuem um endereçamento diferente. 

    Testei com vários cartões (8GB e 32GB) e sempre recebia uma resposta do tipo:

    MINI2440 # mmcinittrying to detect SD Card…===============> MMC CMD TimeoutMMC found. Card desciption is:Manufacturer ID = 000000HW/FW Revision = 0 0Product Name = Serial Number = 80ff00Month = 0Year = 1997===============> MMC CMD Timeout===============> MMC CMD TimeoutREAD_BL_LEN=0, C_SIZE_MULT=0, C_SIZE=1020size = 0===============> MMC CMD Timeout===============> MMC CMD Timeout===============> MMC CMD Timeoutmmc_block_read: err SDIDSTA=0x00000020MINI2440 # 

    como se o cartão não estivesse sendo lido. Cogitei inclusive falha de HW.

    Porém ao usar um cartão de 2 GB (não SDHC ), funcionou perfeitamente:

    trying to detect SD Card…Manufacturer:       0x41, OEM “42”Product name:       “SD2GB”, revision 2.0Serial number:      1526728056Manufacturing date: 10/2009CRC:                0x0e, b0 = 1READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3453size = 23299358722060420 bytes read## Booting kernel from Legacy Image at 31000000 …   Image Name:   Created:      2010-03-26   5:54:15 UTC   Image Type:   ARM Linux Kernel Image (uncompressed)   Data Size:    2060356 Bytes =  2 MB   Load Address: 30008000   Entry Point:  30008000   Verifying Checksum … OK   Loading Kernel Image … OKOKStarting kernel …Uncompressing Linux………………..

    Abraços

  • Ademir

    Olá, vejo que tem um grande conhecimento com android e linux. Gostaria de saber se é muito difícil voltar o sistema android inteiro para um smartphone via linha de comando, usando o fastboot, 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 recuperação (não entra em modo recovery), já fiz de tudo aqui e não vai. Consegui conectá-lo via cabo serial, e através do terminal consigo dar os comandos do u-boot, como entrar no modo fastboot, só funciona por linha de comando, porém não sei como dar os comandos corretos para ele poder instalar novamente o android. Se puder me ajudar ou me dar alguma dica ficarei agradecido.

    • Olá Ademir,

      Procura no site do fabricante ou no XDA Developers como fazer para recuperar o firmware do smartphone. É a forma mais rápido e fácil de resolver seu problema.

      Um abraço,

  • Lucas Caldas

    Olá, Sérgio, tudo bem? Tenho um tablet Android 4.0 sem suporte a Ethernet com um USB host. Preciso fazer funcionar uma interface RJ45 nele. Alguma ideia?

    • Técnicamente deve ser possível via um Ethernet dongle, mas precisa verificar se o kernel está com este suporte habilitado, e você vai provavelmente precisar também customizar o Android.

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