Probando el marco digital Parrot DF3120 (parte 1)

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):

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

24 pensamientos en “Probando el marco digital Parrot DF3120 (parte 1)

  1. doragasu

    ¡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.

    Responder
    1. admin Autor

      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.

      Responder
  2. heli

    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?

    Responder
    1. admin Autor

      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 0x32412003)
      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 0x50000000 (irq = 70) is a S3C2412
      s3c2412-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2412
      s3c2412-uart.2: ttySAC2 at MMIO 0x50008000 (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: 0x75 (Samsung NAND 32MiB 3,3V 8-bit)
      Scanning device for bad blocks
      cmdlinepart partition parsing not available
      Creating 4 MTD partitions on “NAND”:
      0x000000000000-0x000000040000 : “u-boot”
      0x000000040000-0x000000048000 : “u-boot-env”
      0x000000048000-0x000000248000 : “Kernel”
      0x000000248000-0x000002000000 : “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

      Responder
  3. heli

    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.

    Responder
  4. heli

    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.

    Responder
    1. admin Autor

      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.

      Responder
  5. heli

    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.

    Responder
  6. heli

    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.

    Responder
  7. doragasu

    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…

    Responder
  8. mistery

    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 0x30400000 linux
    and
    bootm

    and now it is booting but with Kernel panic

    Here is complete output

    ext2load mmc 1:0 0x30400000 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: 0x03, 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 0x0000

    ** Bad partition 1 **

    Wrong Image Format for bootm command

    ERROR: can’t get kernel image!

    >ext2load mmc 1:0 0x30400000 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.

    Responder
  9. mistery

    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 🙂

    Responder
  10. mistery

    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.

    Responder
  11. mistery

    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.

    Responder
  12. Ricardo

    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 !!!!

    Responder
  13. Ricardo

    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 😉

    Responder
  14. Pingback: Como instalar Linux en un marco digital

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *