Probando el marco digital Parrot DF3120 (parte 1)

2:33 am Electrónica, Proyectos, Reseñas

He adquirido el marco digital de fotos Parrot DF3120. Es un marco que por menos de 20€ puede representar fotografías en una pantalla de 320×240 (3.5″). Sus puntos fuertes es que tiene bluetooth para poder subir las imagenes desde, por ejemplo, un móvil y una entrada para tarjetas SD con la misma función.

Este marco ha sido hackeado y se le puede instalar un linux, con las ventajas que ello representa. El objetivo de este primer artículo es mostrar el proceso de instalación de linux y cómo acceder a este de una forma sencilla.

Lo primero es hacer un duplicado de disco del siguiente fichero: minifs-full-ext.img. Esto en linux, siendo root, se consigue con el siguiente comando (disco SD es el nombre que le haya asignado el sistema):

dd if=minifs-full-ext.img of=/dev/<disco SD>

Lo siguiente es actualizar el firmware del marco. Para ello hay que encender el marco sin ninguna tarjeta SD insertada y enchufar el cable usb. Cuando podamos acceder al contenido del disco, crear una carpeta llamada update y dentro de esta copiar el fichero parrotDF3120.plf. Después sacar el usb de forma segura y veremos que aparecen 4 cuadros en la pantalla (uno azul y el resto verde), momento en el cual ya se ha actualizado el firmware.

Ahora tenemos un modo de arranque dual. Por un lado si encendemos el marco sin más veremos su funcionalidad de siempre, es decir, se visualizarán las imágenes que tengamos almacenadas una detrás de otra. Pero si metemos la tarjeta SD y antes de encenderlo pulsamos los botones izquierdo y central de la parte de atrás y, sin soltarlos, encendemos el marco, se arrancará  linux y busybox.

Finalmente para acceder a la consola en el modo linux podemos hacerlo de dos formas (la dificil y la fácil):

La dificil es sacar todos los tornillos para quedarnos con la placa y la pantalla. A continuación soldamos en los agujeros del J4 (la consola serie) los tres pines (1: GND, 2: RX, 3: TX) y nos buscamos un conversor TTL a puerto serie o a usb para poder comunicarnos con el dispositivo usando los siguientes parámetros de conexión: 115200 8,N,1 (recomiendo screen en linux o mac y putty en windows). Esta es la consola serie donde se ven los mensajes de estado del arranque y luego se obtiene una shell donde interactuar con linux:

La fácil es simplemente conectar el cable usb al marco y a nuestro ordenador, lo que nos configurará una conexión ethernet por usb llamada Ethernet Gadget, la cual será una tarjeta de red que debemos configurar con la IP 172.16.61.2 y la máscara de red 255.255.255.0. Si todo ha ido bien y hacemos un ping a la dirección 172.16.61.1 el marco nos debería responder. Finalmente para acceder a una shell sólo hay que hacer un telnet a la IP comentada.

Edición 22/01/2011:
En el marco vienen unos programas para probar la pantalla gráfica. Podeis ejecutar cualquiera de ellos:
/usr/bin/plasma: Una bonita demo sobre el efecto plasma.
/usr/bin/newvox: Un paisaje que si tuvieramos teclado podríamos recorrerlo.

Edición 12/02/2011:

2º artículo

3º artículo

23 Respuestas
  1. doragasu :

    Fecha: 19 enero 2012 @ 12:03

    ¡Muy buen trabajo!

    Yo he pedido un par de marcos de estos por eBay y tengo pensado hackearlos cuando tenga un rato. También tengo por aquí un par de chips de memoria MT48LC16M16A2P-75 que voy a intentar utilizar para ampliar la RAM de 8 a 32MB.

    Lástima que este aparato no tenga un interfaz USB HOST. Si lo tuviese, se podría montar un NAS o gestor de descargas o algo así de modo super económico.

  2. admin :

    Fecha: 19 enero 2012 @ 12:30

    Gracias.

    Si te parece bien comenta por aquí como te ha ido con la actualización de memoria o si tienes un enlace a un blog donde lo expliques. Creo que sería interesante para la gente ver cómo aumentar las capacidades de este marco digital no tan modesto.

    Este marco es ideal para mostrar pantallas de información: domótica, telemetría, estado de servidores o de una red, etc.

  3. heli :

    Fecha: 19 enero 2012 @ 18:46

    Valla, te has adelantado por un día. Hoy he recibido mis dos unidades.
    Voy a ampliar la memoria ya mismo, lo he hecho muchas veces con routers linksys. USB host sí tienen, dos. Uno comparte pines con el USB slave y el otro esta libre, voy a ver si localizo los pads y puedo hacer algo. ¿Se ve en el /dev o en el registro de arranque del kernel si lo ha detectado?

  4. admin :

    Fecha: 19 enero 2012 @ 21:27

    Esto es lo que sale con dmesg:

    Linux version 2.6.36.3 (claude@debian) (gcc version 4.4.5 (crosstool-NG-1.9.2) ) #18 Thu Jan 27 08:15:36 CET 2011
    CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
    CPU: VIVT data cache, VIVT instruction cache
    Machine: DF3120
    Memory policy: ECC disabled, Data cache writeback
    CPU S3C2412 (id 0×32412003)
    S3C24XX Clocks, Copyright 2004 Simtec Electronics
    S3C2412: core 266.500 MHz, memory 133.250 MHz, peripheral 66.625 MHz
    usysclk: parent urefclk
    i2sclk: parent mpll
    camif-upll: parent usysclk
    msysclk: parent mpll
    uartclk: parent mpll
    usbsrc: parent usysclk
    erefclk: parent ext
    urefclk: parent ext
    S3C2412: DVS is off
    Warning: USB bus clock not at 48MHz
    S3C2412: upll on, 96.000 MHz, usb-bus 48.000 MHz
    On node 0 totalpages: 2048
    free_area_init_node: node 0, pgdat c0232644, node_mem_map c0247000
    Normal zone: 16 pages used for memmap
    Normal zone: 0 pages reserved
    Normal zone: 2032 pages, LIFO batch:0
    Built 1 zonelists in Zone order, mobility grouping off. Total pages: 2032
    Kernel command line: root=/dev/mmcblk0p1 console=ttySAC2,115200 quiet rootdelay=2
    PID hash table entries: 32 (order: -5, 128 bytes)
    Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
    Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
    Memory: 8MB = 8MB total
    Memory: 5788k/5788k available, 2404k reserved, 0K highmem
    Virtual kernel memory layout:
    vector : 0xffff0000 – 0xffff1000 ( 4 kB)
    fixmap : 0xfff00000 – 0xfffe0000 ( 896 kB)
    DMA : 0xffc00000 – 0xffe00000 ( 2 MB)
    vmalloc : 0xc1000000 – 0xe0000000 ( 496 MB)
    lowmem : 0xc0000000 – 0xc0800000 ( 8 MB)
    modules : 0xbf000000 – 0xc0000000 ( 16 MB)
    .init : 0xc0008000 – 0xc0020000 ( 96 kB)
    .text : 0xc0020000 – 0xc021c000 (2032 kB)
    .data : 0xc021c000 – 0xc0232c60 ( 92 kB)
    NR_IRQS:85
    irq: clearing pending ext status 00050318
    irq: clearing pending ext status 00050300
    irq: clearing subpending status 000001c0
    irq: clearing subpending status 00000080
    timer tcon=0052d222, tcnt d8df, tcfg 00000200,00002222, usec 0000170e
    Console: colour dummy device 80×30
    console [ttySAC2] enabled
    Calibrating delay loop… 132.71 BogoMIPS (lpj=331776)
    pid_max: default: 4096 minimum: 301
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    devtmpfs: initialized
    gpiochip_add: gpios 256..271 (GPIOJ) failed to register
    gpiochip_add: gpios 288..303 (GPIOK) failed to register
    gpiochip_add: gpios 320..334 (GPIOL) failed to register
    gpiochip_add: gpios 352..353 (GPIOM) failed to register
    NET: Registered protocol family 16
    Set BCM2045 GPIOs
    S3C2412: Initialising architecture
    S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics
    DMA channel 0 at c1008000, irq 33
    DMA channel 1 at c1008040, irq 34
    DMA channel 2 at c1008080, irq 35
    DMA channel 3 at c10080c0, irq 36
    s3c-adc s3c24xx-adc: attached adc driver
    s3c24xx-pwm s3c24xx-pwm.1: tin at 8328125, tdiv at 8328125, tin=divclk, base 8
    s3c24xx-pwm s3c24xx-pwm.2: tin at 2776041, tdiv at 2776041, tin=divclk, base 12
    bio: create slab at 0
    SCSI subsystem initialized
    Bluetooth: Core ver 2.15
    NET: Registered protocol family 31
    Bluetooth: HCI device and connection manager initialized
    Bluetooth: HCI socket layer initialized
    NET: Registered protocol family 2
    IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
    TCP established hash table entries: 512 (order: 0, 4096 bytes)
    TCP bind hash table entries: 512 (order: -1, 2048 bytes)
    TCP: Hash tables configured (established 512 bind 512)
    TCP reno registered
    NET: Registered protocol family 1
    msgmni has been set to 16
    io scheduler noop registered (default)
    Console: switching to colour frame buffer device 80×40
    fb0: s3c2410fb frame buffer device
    s3c2412-uart.0: ttySAC0 at MMIO 0×50000000 (irq = 70) is a S3C2412
    s3c2412-uart.1: ttySAC1 at MMIO 0×50004000 (irq = 73) is a S3C2412
    s3c2412-uart.2: ttySAC2 at MMIO 0×50008000 (irq = 76) is a S3C2412
    S3C24XX NAND Driver, (c) 2004 Simtec Electronics
    s3c24xx-nand s3c2412-nand: Tacls=3, 22ns Twrph0=8 60ns, Twrph1=3 22ns
    s3c24xx-nand s3c2412-nand: System booted from NAND
    s3c24xx-nand s3c2412-nand: NAND soft ECC
    NAND device: Manufacturer ID: 0xec, Chip ID: 0×75 (Samsung NAND 32MiB 3,3V 8-bit)
    Scanning device for bad blocks
    cmdlinepart partition parsing not available
    Creating 4 MTD partitions on “NAND”:
    0×000000000000-0×000000040000 : “u-boot”
    0×000000040000-0×000000048000 : “u-boot-env”
    0×000000048000-0×000000248000 : “Kernel”
    0×000000248000-0×000002000000 : “root”
    PPP generic driver version 2.4.2
    PPP Deflate Compression module registered
    PPP BSD Compression module registered
    s3c2410_udc: debugfs dir creation failed -19
    g_ether gadget: using random self ethernet address
    g_ether gadget: using random host ethernet address
    usb0: MAC 6e:25:98:76:37:45
    usb0: HOST MAC 0e:97:5c:b7:f5:49
    g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
    g_ether gadget: g_ether ready
    mice: PS/2 mouse device common for all mice
    input: gpio-keys as /devices/platform/gpio-keys/input/input0
    evbug.c: Connected device: input0 (gpio-keys at gpio-keys/input0)
    evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
    evbug.c: Event. Dev: input0, Type: 1, Code: 28, Value: 1
    evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
    evbug.c: Event. Dev: input0, Type: 1, Code: 106, Value: 1
    evbug.c: Event. Dev: input0, Type: 0, Code: 0, Value: 0
    S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
    s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
    Bluetooth: HCI UART driver ver 2.2
    Bluetooth: HCI H4 protocol initialized
    cpuidle: using governor ladder
    s3c-sdi s3c2412-sdi: powered down.
    s3c-sdi s3c2412-sdi: mmc0 – using pio, hw SDIO IRQ
    TCP cubic registered
    Bluetooth: L2CAP ver 2.15
    Bluetooth: L2CAP socket layer initialized
    Bluetooth: SCO (Voice Link) ver 0.6
    Bluetooth: SCO socket layer initialized
    Bluetooth: RFCOMM TTY layer initialized
    Bluetooth: RFCOMM socket layer initialized
    Bluetooth: RFCOMM ver 1.11
    Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    s3c-rtc s3c2410-rtc: hctosys: invalid date/time
    Waiting 2sec before mounting root device…
    s3c-sdi s3c2412-sdi: running at 0kHz (requested: 0kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 398kHz (requested: 400kHz).
    s3c-sdi s3c2412-sdi: running at 22208kHz (requested: 25000kHz).
    s3c-sdi s3c2412-sdi: running at 22208kHz (requested: 25000kHz).
    mmc0: new SD card at address c667
    mmcblk0: mmc0:c667 SU02G 1.84 GiB
    mmcblk0: p1
    g_ether gadget: full speed config #1: CDC Ethernet (EEM)
    EXT2-fs (mmcblk0p1): warning: feature flags set on rev 0 fs, running e2fsck is recommended
    EXT2-fs (mmcblk0p1): warning: mounting ext3 filesystem as ext2
    EXT2-fs (mmcblk0p1): warning: mounting unchecked fs, running e2fsck is recommended
    VFS: Mounted root (ext2 filesystem) on device 179:1.
    devtmpfs: mounted
    Freeing init memory: 96K
    g_ether gadget: full speed config #1: CDC Ethernet (EEM)

    Y esta es la lista de /dev

    drwxr-xr-x 5 root root 0 Jan 1 00:00 .
    drwxr-xr-x 15 root root 1024 Jan 27 2011 ..
    crw-rw—- 1 root root 5, 1 Jan 1 00:00 console
    crw-rw—- 1 root root 10, 63 Jan 1 00:00 cpu_dma_latency
    crw-rw—- 1 root root 13, 64 Jan 1 00:00 event0
    crw-rw—- 1 root root 29, 0 Jan 1 00:00 fb0
    crw-rw—- 1 root root 1, 7 Jan 1 00:00 full
    drwxr-xr-x 2 root root 0 Jan 1 00:00 input
    crw-rw—- 1 root root 1, 11 Jan 1 00:00 kmsg
    srw-rw-rw- 1 root root 0 Jan 1 00:00 log
    crw-rw—- 1 root root 1, 1 Jan 1 00:00 mem
    crw-rw—- 1 root root 13, 63 Jan 1 00:00 mice
    brw-rw—- 1 root root 179, 0 Jan 1 00:00 mmcblk0
    brw-rw—- 1 root root 179, 1 Jan 1 00:00 mmcblk0p1
    crw-rw—- 1 root root 90, 0 Jan 1 00:00 mtd0
    crw-rw—- 1 root root 90, 1 Jan 1 00:00 mtd0ro
    crw-rw—- 1 root root 90, 2 Jan 1 00:00 mtd1
    crw-rw—- 1 root root 90, 3 Jan 1 00:00 mtd1ro
    crw-rw—- 1 root root 90, 4 Jan 1 00:00 mtd2
    crw-rw—- 1 root root 90, 5 Jan 1 00:00 mtd2ro
    crw-rw—- 1 root root 90, 6 Jan 1 00:00 mtd3
    crw-rw—- 1 root root 90, 7 Jan 1 00:00 mtd3ro
    crw-rw—- 1 root root 10, 62 Jan 1 00:00 network_latency
    crw-rw—- 1 root root 10, 61 Jan 1 00:00 network_throughput
    crw-rw—- 1 root root 1, 3 Jan 1 00:00 null
    crw-rw—- 1 root root 108, 0 Jan 1 00:00 ppp
    crw-rw—- 1 root root 5, 2 Jan 1 00:20 ptmx
    drwxr-xr-x 2 root root 0 Jan 1 00:00 pts
    crw-rw—- 1 root root 1, 8 Jan 1 00:00 random
    crw——- 1 root root 216, 0 Jan 1 00:00 rfcomm0
    lrwxrwxrwx 1 root root 9 Jan 1 00:00 root -> mmcblk0p1
    crw-rw—- 1 root root 254, 0 Jan 1 00:00 rtc0
    drwxr-xr-x 2 root root 0 Jan 1 00:00 shm
    crw-rw—- 1 root root 5, 0 Jan 1 00:00 tty
    crw-rw—- 1 root root 4, 0 Jan 1 00:00 tty0
    crw-rw—- 1 root root 4, 1 Jan 1 00:00 tty1
    crw-rw—- 1 root root 4, 10 Jan 1 00:00 tty10
    crw-rw—- 1 root root 4, 11 Jan 1 00:00 tty11
    crw-rw—- 1 root root 4, 12 Jan 1 00:00 tty12
    crw-rw—- 1 root root 4, 13 Jan 1 00:00 tty13
    crw-rw—- 1 root root 4, 14 Jan 1 00:00 tty14
    crw-rw—- 1 root root 4, 15 Jan 1 00:00 tty15
    crw-rw—- 1 root root 4, 16 Jan 1 00:00 tty16
    crw-rw—- 1 root root 4, 17 Jan 1 00:00 tty17
    crw-rw—- 1 root root 4, 18 Jan 1 00:00 tty18
    crw-rw—- 1 root root 4, 19 Jan 1 00:00 tty19
    crw-rw—- 1 root root 4, 2 Jan 1 00:00 tty2
    crw-rw—- 1 root root 4, 20 Jan 1 00:00 tty20
    crw-rw—- 1 root root 4, 21 Jan 1 00:00 tty21
    crw-rw—- 1 root root 4, 22 Jan 1 00:00 tty22
    crw-rw—- 1 root root 4, 23 Jan 1 00:00 tty23
    crw-rw—- 1 root root 4, 24 Jan 1 00:00 tty24
    crw-rw—- 1 root root 4, 25 Jan 1 00:00 tty25
    crw-rw—- 1 root root 4, 26 Jan 1 00:00 tty26
    crw-rw—- 1 root root 4, 27 Jan 1 00:00 tty27
    crw-rw—- 1 root root 4, 28 Jan 1 00:00 tty28
    crw-rw—- 1 root root 4, 29 Jan 1 00:00 tty29
    crw-rw—- 1 root root 4, 3 Jan 1 00:00 tty3
    crw-rw—- 1 root root 4, 30 Jan 1 00:00 tty30
    crw-rw—- 1 root root 4, 31 Jan 1 00:00 tty31
    crw-rw—- 1 root root 4, 32 Jan 1 00:00 tty32
    crw-rw—- 1 root root 4, 33 Jan 1 00:00 tty33
    crw-rw—- 1 root root 4, 34 Jan 1 00:00 tty34
    crw-rw—- 1 root root 4, 35 Jan 1 00:00 tty35
    crw-rw—- 1 root root 4, 36 Jan 1 00:00 tty36
    crw-rw—- 1 root root 4, 37 Jan 1 00:00 tty37
    crw-rw—- 1 root root 4, 38 Jan 1 00:00 tty38
    crw-rw—- 1 root root 4, 39 Jan 1 00:00 tty39
    crw-rw—- 1 root root 4, 4 Jan 1 00:00 tty4
    crw-rw—- 1 root root 4, 40 Jan 1 00:00 tty40
    crw-rw—- 1 root root 4, 41 Jan 1 00:00 tty41
    crw-rw—- 1 root root 4, 42 Jan 1 00:00 tty42
    crw-rw—- 1 root root 4, 43 Jan 1 00:00 tty43
    crw-rw—- 1 root root 4, 44 Jan 1 00:00 tty44
    crw-rw—- 1 root root 4, 45 Jan 1 00:00 tty45
    crw-rw—- 1 root root 4, 46 Jan 1 00:00 tty46
    crw-rw—- 1 root root 4, 47 Jan 1 00:00 tty47
    crw-rw—- 1 root root 4, 48 Jan 1 00:00 tty48
    crw-rw—- 1 root root 4, 49 Jan 1 00:00 tty49
    crw-rw—- 1 root root 4, 5 Jan 1 00:00 tty5
    crw-rw—- 1 root root 4, 50 Jan 1 00:00 tty50
    crw-rw—- 1 root root 4, 51 Jan 1 00:00 tty51
    crw-rw—- 1 root root 4, 52 Jan 1 00:00 tty52
    crw-rw—- 1 root root 4, 53 Jan 1 00:00 tty53
    crw-rw—- 1 root root 4, 54 Jan 1 00:00 tty54
    crw-rw—- 1 root root 4, 55 Jan 1 00:00 tty55
    crw-rw—- 1 root root 4, 56 Jan 1 00:00 tty56
    crw-rw—- 1 root root 4, 57 Jan 1 00:00 tty57
    crw-rw—- 1 root root 4, 58 Jan 1 00:00 tty58
    crw-rw—- 1 root root 4, 59 Jan 1 00:00 tty59
    crw-rw—- 1 root root 4, 6 Jan 1 00:00 tty6
    crw-rw—- 1 root root 4, 60 Jan 1 00:00 tty60
    crw-rw—- 1 root root 4, 61 Jan 1 00:00 tty61
    crw-rw—- 1 root root 4, 62 Jan 1 00:00 tty62
    crw-rw—- 1 root root 4, 63 Jan 1 00:00 tty63
    crw-rw—- 1 root root 4, 7 Jan 1 00:00 tty7
    crw-rw—- 1 root root 4, 8 Jan 1 00:00 tty8
    crw-rw—- 1 root root 4, 9 Jan 1 00:00 tty9
    crw-rw—- 1 root root 204, 64 Jan 1 00:00 ttySAC0
    crw-rw—- 1 root root 204, 65 Jan 1 00:00 ttySAC1
    crw-rw—- 1 root root 204, 66 Jan 1 00:00 ttySAC2
    crw-rw—- 1 root root 10, 223 Jan 1 00:00 uinput
    crw-rw—- 1 root root 1, 9 Jan 1 00:00 urandom
    crw-rw—- 1 root root 7, 0 Jan 1 00:00 vcs
    crw-rw—- 1 root root 7, 1 Jan 1 00:00 vcs1
    crw-rw—- 1 root root 7, 128 Jan 1 00:00 vcsa
    crw-rw—- 1 root root 7, 129 Jan 1 00:00 vcsa1
    crw-rw—- 1 root root 1, 5 Jan 1 00:00 zero

  5. heli :

    Fecha: 20 enero 2012 @ 8:43

    No se puede sacar el USB0 host. Los pads T12 y N14 del micro no estan conectados a nada… La única solución sería modificar el firmware para usar el USB slave como HOST (usan los mismos pines) pero entonces se perdería el SLAVE.
    Voy a tratar de usar las dos entradas del sensor de orientación para un touchpad PS2, pero tendré que modificar el driver PS2. Tambien pueden usarse para un I2C.

  6. admin :

    Fecha: 20 enero 2012 @ 8:45

    Estoy mirando el toolchain para ver como compilar programas o usar los GPIO.

  7. heli :

    Fecha: 20 enero 2012 @ 13:28

    Ya he ampliado la memoria a los dos, he usado unas Hynyx HY5V461620HT-H de un viejo módulo DIMM de 128M PC133.
    Ahora los marcos funcionan igual, pero en dmesg muestra que solo ha reconocido 8Mb.
    Esto ya me paso con otro chisme: http://heli.xbot.es/wp/?p=35 y era el bootloader que realizaba la configuración del controlador de memoria y el linux se fiaba de lo que le decía el bootloader. La cantidad de memoria era un parámetro del bootloader, no hacía un test para medirla. Tuve que recompilar el bootloader con nuevos parámetros, muy peligroso, espero que funcione el JTAG.

  8. admin :

    Fecha: 20 enero 2012 @ 13:30

    Según la página de los hackers: “The original firmware doesn’t care if 8MB or 32MB are installed. You need to modify u-boot to take advantage of the expanded RAM in Linux.“. Por lo que efectivamente tienes que modificar el u-boot para indicarle explicitamente la memoria.

  9. heli :

    Fecha: 20 enero 2012 @ 13:42

    Pues es cierto, no lo había leido. Como ya tengo experiencia en estos lios me pondré a ello, aunque no he conseguido que funcione la toolchain…
    o me encuentra el fichero libelf.h y da fallo de segmentación. Uso un SuSe 11.4 de 64 bits, probaré con otra de 32 bits.
    He pensado en soldar unos pines torneados de un zócalo de circuito impreso en los taladros de los puertos serie y jtag y hacer unos taladritos en la carcasa trasera para poder conectar los cables sin abrir el chisme y sin que quede feo.

  10. admin :

    Fecha: 20 enero 2012 @ 13:44

  11. heli :

    Fecha: 20 enero 2012 @ 13:58

    Si, pero la idea es no tener que hacer ranuras ni cajeados. Si no dejas los lados bien rectos y limados queda muy feo, y ademas puede entrar partículas por el cajeado del JTAG. Haciendo solo pequeños taladritos para que pasen los pines no puede entrar nada, como si fueran taladros de ventilación.
    Usaré una aguja caliente parsándola a través de los taladros del del circuito impreso hasta la carcasa para garantizar la alineación.
    A ver que tal queda.

  12. admin :

    Fecha: 20 enero 2012 @ 14:01

    Cuando tengas eso y lo del u-boot para 32 megas dime el enlace de tu blog si vas a hacer un artículo para que lo ponga aquí.

  13. doragasu :

    Fecha: 22 enero 2012 @ 12:14

    Estáis haciendo un gran trabajo con este marco. Yo sigo esperando mis 2 unidades… a ver cuándo llegan.

    Una lástima que los terminales del HOST USB no estén accesibles :( . Entonces, el puerto DEVICE que sí que está tirado, ¿es ON THE GO? ¿Podría configurarse como HOST por software? A mí personalmente no me importaría perder el DEVICE si con ello gano un HOST (que puedo enchufar a un HUB USB para conectar un stick WiFi o un adaptador Ethernet, un disco duro, e incluso un teclado/ratón/gamepad…).

    Además si se puede hacer por software, pues cojonudo. Yo en el ON THE GO que llevan las beagleboard y que por defecto es DEVICE, recuerdo haberlo configurado como HOST jugando con la sysfs…

  14. mistery :

    Fecha: 26 enero 2012 @ 22:25

    Hi,
    Thank you for the great article :)
    I have problem if you can help me.

    I have update firmware on my parrot and it is getting me to the black screen but does not boot further.

    So I connected directly on J4.
    from there i see that linux is not booting becouse is tryes to boot from mmc 0:1

    so I enterd command
    ext2load mmc 1:0 0×30400000 linux
    and
    bootm

    and now it is booting but with Kernel panic

    Here is complete output

    ext2load mmc 1:0 0×30400000 linux
    bootm

    U-Boot 1.3.2-moko12 (Jan 18 2011 – 20:50:55)

    DRAM: 8 MB

    NAND: 32 MiB

    *** Warning – bad CRC or NAND, using default environment

    USB: S3C2410 USB Deviced

    In: serial

    Out: serial

    Err: serial

    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: 0×03, OEM “SD”

    Product name: “SD02G”, revision 8.0

    Serial number: 1345537704

    Manufacturing date: 5/2008

    CRC: 0x2a, b0 = 1

    READ_BL_LEN=14, C_SIZE_MULT=7, C_SIZE=4095

    size = 0

    SD Card detected RCA: 0xb110 type: SD

    bad MBR sector signature 0×0000

    ** Bad partition 1 **

    Wrong Image Format for bootm command

    ERROR: can’t get kernel image!

    >ext2load mmc 1:0 0×30400000 linux

    1310720 bytes read

    >bootm

    ## Booting kernel from Legacy Image at 30400000 …

    Image Name: Linux-2.6.36.3

    Image Type: ARM Linux Kernel Image (uncompressed)

    Data Size: 1211732 Bytes = 1.2 MB

    Load Address: 30008000

    Entry Point: 30008000

    Verifying Checksum … OK

    Loading Kernel Image … OK

    OK

    Starting kernel …

    Uncompressing Linux… done, booting the kernel.
    gpiochip_add: gpios 256..271 (GPIOJ) failed to register
    gpiochip_add: gpios 288..303 (GPIOK) failed to register
    gpiochip_add: gpios 320..334 (GPIOL) failed to register
    gpiochip_add: gpios 352..353 (GPIOM) failed to register
    s3c2410_udc: debugfs dir creation failed -19
    s3c-rtc s3c2410-rtc: hctosys: invalid date/time
    Kernel panic – not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
    Backtrace:
    Function entered at [] from []
    r7:c001b684 r6:00008000 r5:c0461000 r4:c02333d0
    Function entered at [] from []
    Function entered at [] from []
    r3:00000000 r2:00000000 r1:c0409f60 r0:c01fdcef
    Function entered at [] from []
    Function entered at [] from []
    r5:c001b699 r4:c0232d48
    Function entered at [] from []
    r5:c001ae68 r4:c0232ce0
    Function entered at [] from []
    r5:c0008588 r4:00000000

    Am in windows now and when connected on usb it is recognized as Ethernet Gadged.

    I will try to boot linux on my computer and see if I can connect to it that way.

  15. mistery :

    Fecha: 26 enero 2012 @ 23:55

    Got it,

    I created two ext2 partition on sd card and on first one I have copy all from mounted minifs-full-ext.img image.

    Thank you now it boots :)

  16. admin :

    Fecha: 26 enero 2012 @ 23:58

    Fantastic. Did you copy with dd?

  17. mistery :

    Fecha: 27 enero 2012 @ 13:16

    No, I mounted it with

    mount -o loop minifs-full-ext.img /mnt/iso/

    And used mc to copy all from /mnt/iso/ to mounted first partition of sd card.

    I think that the problem was I did not create partition and then I have dd image on complete sd card and this is not working. System must be on a first partition to boot, so you need to create partition on a card, and then dd image to that partition.
    Another thing is that dd will create ext3 partition not ext2 but I do not know if this couse problem with loader.

  18. mistery :

    Fecha: 8 febrero 2012 @ 12:59

    Hi,
    Im stucked again.

    After few days I have sucessfuly manage to get img file under debian, and now it all boots well and I can access the linux via telnet but I have a problem with “Read only file system”

    I cannont create file or direcory under the box.
    This is from dmesg

    mmc0: new SD card at address b110
    mmcblk0: mmc0:b110 SD02G 1.89 GiB
    mmcblk0: p1
    EXT2-fs (mmcblk0p1): warning: feature flags set on rev 0 fs, running e2fsck is recommended
    EXT2-fs (mmcblk0p1): warning: mounting ext3 filesystem as ext2
    VFS: Mounted root (ext2 filesystem) readonly on device 179:1.
    devtmpfs: mounted
    Freeing init memory: 92K

    how can I umount mmcblk0p1 and mount it as a not read only

    this is when I write mount

    rootfs on / type rootfs (rw)
    /dev/root on / type ext2 (ro,relatime)
    devtmpfs on /dev type devtmpfs (rw,relatime,mode=0755)
    /proc on /proc type proc (rw,relatime)
    none on /sys type sysfs (rw,relatime)
    devpts on /dev/pts type devpts (rw,relatime,mode=600)
    none on /dev/shm type tmpfs (rw,relatime)
    none on /dev/shm type tmpfs (rw,relatime)

    and if i try to mount mmcblk0p1 I got

    can’t read ‘/etc/fstab’: No such file or directory

    So If you can plaese help.

  19. mistery :

    Fecha: 8 febrero 2012 @ 13:03

    When I have send it I got it
    solution is:

    mount -w -o remount /dev/root

    soory for spamming

  20. admin :

    Fecha: 8 febrero 2012 @ 13:04

    Try to execute mount / / -o remount,rw
    You should create files and directories now.

  21. Ricardo :

    Fecha: 22 febrero 2012 @ 11:57

    Gracias por compartir esta información. Es impresionante lo que estás haciendo.

    Todo ha ido bien en la instalación, pero no podemos ejecutar los programas gráficos que vienen incluidos por este error:

    /usr/bin/newvox: ‘/usr/lib/libiconv.so.2′ is not an ELF file
    /usr/bin/newvox: can’t load library ‘libiconv.so.2′

    ¿Os ha pasado a alguno?

    Gracias !!!!

  22. admin :

    Fecha: 22 febrero 2012 @ 11:59

    Da la sensación de que la tarjeta SD estuviese dañada en algún sector. Habéis probado con otra para descartar?

  23. Ricardo :

    Fecha: 22 febrero 2012 @ 13:07

    No, la verdad es que no, pero sabiendo que el error puede estar ahí vamos a probar con otras o formatear la actual.

    Mil gracias y ánimo con el blog, eres inspirador para mucho ;)

Leave a comment

Your comment

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.