Archive for enero, 2010

Publicada la guía de conexión de la BeagleBoard

Se puede descargar de http://forja.rediris.es/frs/download.php/1720/guia_beagle.pdf.

Lo próximo que haré será corregir unas opciones de la configuración del kernel que hice el otro día porque este no tiene drivers para Ethernet. Cosa importante. También veré si se puede solucionar un problema que tengo con el reloj hardware de la placa.

If anyone needs this guide in english I can translate it when I find some time. Just drop a comment to let me know

Anuncios

Comments (8)

Guía básica de manejo de la BeagleBoard

Estoy preparando una guía ilustrada muy sencilla sobre cómo conectar y hacer funcionar la placa para quien no haya manejado nunca estas cosas (como yo). Espero poder tenerla terminada para mañana (será bastante corta).

Dejar un comentario

De momento exitazo

Aquí la salida del primer arranque (correcto) con el kernel hecho a medida:

=======================================================================

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Reading boot sector
Loading u-boot.bin from nand


U-Boot 2009.01-dirty (Feb 19 2009 - 12:22:31)

I2C:   ready
OMAP3530-GP rev 2, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
DRAM:  256 MB
NAND:  256 MiB
MUSB: using high speed
In:    serial usbtty 
Out:   serial usbtty 
Err:   serial usbtty 
Board revision C
Serial #4554000300000000040323090a020009
Hit any key to stop autoboot:  0 
reading uImage

1959728 bytes read
## Booting kernel from Legacy Image at 80300000 ...
   Image Name:   Linux-2.6.33-rc5-07168-gc48807a-
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1959664 Bytes =  1.9 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.33-rc5-07168-gc48807a-dirty (rcn@storm) (gcc version 4.4.0 (crosstool-NG-1.5.3) ) #1 Sat Jan 23 15:16:0
CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 Beagle Board
Memory policy: ECC disabled, Data cache writeback
OMAP3430/3530 ES3.0 (l2cache iva sgx neon isp )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 128MB 128MB = 256MB total
Memory: 255744KB available (3320K code, 294K data, 124K init, 0K highmem)
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:402
Clocking rate (Crystal/Core/MPU): 26.0/332/500 MHz
Reprogramming SDRC clock to 332000000 Hz
GPMC revision 5.0
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER12 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 515.72 BogoMIPS (lpj=2015232)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
Found NAND on CS0
Registering NAND on CS0
OMAP DMA hardware revision 4.0
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz
twl4030: PIH (irq 7) chaining IRQs 368..375
twl4030: power (irq 373) chaining IRQs 376..383
twl4030: gpio (irq 368) chaining IRQs 384..401
regulator: VUSB1V5: 1500 mV normal standby
regulator: VUSB1V8: 1800 mV normal standby
regulator: VUSB3V1: 3100 mV normal standby
twl4030_usb twl4030_usb: Initialized TWL4030 USB module
regulator: VMMC1: 1850 <--> 3150 mV at 3000 mV normal standby
regulator: VDAC: 1800 mV normal standby
regulator: VDVI: 1800 mV normal standby
regulator: VSIM: 1800 <--> 3000 mV at 1800 mV normal standby
i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz
Switching to clocksource 32k_counter
musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) �� 2001-2006 Red Hat, Inc.
msgmni has been set to 500
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
omapfb: configured for panel omap3beagle
omapfb: DISPC version 3.0 initialized
Console: switching to colour frame buffer device 128x48
omapfb: Framebuffer initialized. Total vram 1572864 planes 1
omapfb: Pixclock 48000 kHz hfreq 44.7 kHz vfreq 57.7 Hz
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
console [ttyS2] enabled
brd: module loaded
loop: module loaded
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
i2c /dev entries driver
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
Power Management for TI OMAP3.
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1
regulator_init_complete: incomplete constraints, leaving VDVI on
regulator_init_complete: incomplete constraints, leaving VDAC on
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Waiting for root device /dev/mmcblk0p2...
usb 1-2: new high speed USB device using ehci-omap and address 2
mmc0: new high speed SD card at address b368
mmcblk0: mmc0:b368 SDC   1.87 GiB 
 mmcblk0: p1 p2 p3 < p5 >
hub 1-2:1.0: USB hub found
hub 1-2:1.0: 4 ports detected
kjournald starting.  Commit interval 5 seconds
EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
VFS: Mounted root (ext3 filesystem) readonly on device 179:2.
Freeing init memory: 124K
usb 1-2.4: new high speed USB device using ehci-omap and address 3
INIT: version 2.86 booting
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Setting the system clock.
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
Unable to set System Clock to: Thu Jan 1 00:00:06 UTC 1970 (warning).
Activating swap...Adding 152576k swap on /dev/mmcblk0p5.  Priority:-1 extents:1 across:152576k SS
done.
Checking root file system...fsck 1.41.3 (12-Oct-2008)
/lib/init/rw/rootdev: clean, 27498/109984 files, 215005/439779 blocks
done.
EXT3-fs (mmcblk0p2): using internal journal
Setting the system clock.
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.
Unable to set System Clock to: Thu Jan 1 00:00:06 UTC 1970 (warning).
Cleaning up ifupdown....
Loading kernel modules...done.
Checking file systems...fsck 1.41.3 (12-Oct-2008)
done.
Setting kernel variables (/etc/sysctl.conf)...Unknown HZ value! (94) Assume 100.
done.
Mounting local filesystems...done.
Activating swapfile swap...done.
Setting up networking....
Configuring network interfaces...SIOCSIFADDR: No such device
eth1: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
eth1: ERROR while getting interface flags: No such device
eth1: ERROR while getting interface flags: No such device
Failed to bring up eth1.
done.
Starting portmap daemon....
Starting NFS common utilities: statd.
Setting console screen modes and fonts.
INIT: Entering runlevel: 2
Starting enhanced syslogd: rsyslogd.
Starting OpenBSD Secure Shell server: sshd.
Starting NFS common utilities: statd.
Not starting internet superserver: no services enabled.
Starting deferred execution scheduler: atdStarting periodic command scheduler: crond.

Debian GNU/Linux 5.0 debian ttyS2

debian login: 

======================================================================

Así que de momento todo bien. Tarda unos 12 – 13 segundos en arrancar. Y ocupa 1.9 megas frente a los 3 y pico que ocupaba el anterior. Ahora a documentar, a hacer pruebas y a continuar con lo siguiente que es hacer el sistema de archivos a medida

Dejar un comentario

Crucemos los dedos

Después de construir el otro día una toolchain para desarrollo cruzado para el arm cortex a8 y compilar con ella un kernel a medida para la beagleboard me quedó probarlo en la placa.

Mañana llega el momento de ver si funciona y también de empezar a hacer el sistema de archivos raíz a medida para la placa. Usaré buildroot, que me dio unos cuantos quebraderos de cabeza hace un tiempo cuando intentaba hacer estas cosas con la at91eb40. Esperemos que ahora salga todo más del tirón. Así que eso, a cruzar los dedos.

Una vez funcione eso por fin podré terminar el siguiente technical report, quizás el más importante para el proyecto.

Mañana más

Dejar un comentario

Nuevas aplicaciones

Acabo de pensar en un par de aplicaciones sencillas en modo texto para acompañar a Oolong, que será la aplicación cliente principal.

La idea al principio era hacer una aplicación también para smartphones y cacharros por el estilo para demostrar la comunicación multiplataforma y todo eso, pero como no tengo ningún iphone ni móviles chulos por el estilo para hacer los experimentos, y como no sé si me daría tiempo a hacer una aplicación que no fuera un desastre junto con todas las cosas que llevo ya encima, he pensado hacer dos aplicaciones más sencillas, que se pueden terminar en un fin de semana:

  • Una en python, sencillísima, que lee un archivo de configuración con los medidores que se quieren cargar y el servidor Tea para cada uno y muestra las mediciones numéricamente en la pantalla
  • Otra en C y ncurses al estilo de wavemon, porque llevo mucho tiempo sin hacer nada en C y es con el lenguaje con el que más disfruto programando, y porque llevo mucho tiempo queriendo hacer algo en ncurses y así aprovecho.

Por otra parte, ya me han arreglado un problema con la forja.  Por fin se muestran los cambios en el repositorio y ya tiene otra pinta la forja del proyecto. Ahora sí parece que tiene actividad.

Las aplicaciones no empezaré a hacerlas por lo menos hasta mediados de Febrero. Aunque quizás por curiosidad empiece a hacerlas cualquier rato que no tenga nada que hacer. Es una lástima no tener todo el tiempo disponible para el proyecto, pero me alegro de que al menos vaya a buen ritmo.

Un saludo

Dejar un comentario

Hackaton en Granada

JJ Merelo, el encargado de la Oficina de Software Libre de la Universidad de Granada, ha reservado aulas para un par de días a mitad del concurso para organizar un seminario sobre los proyectos de software libre que se están desarrollando en la universidad.

Constará de dos días:

  • El primero (viernes) se hará una presentación de los proyectos, con lo que cada uno lleve hecho y todo así llamativo para que la gente se apunte. Los asistentes podrán apuntarse para colaborar con uno de los proyectos presentados. Durante el fin de semana de hará un pequeño desarrollo en equipo para el proyecto
  • El segundo día (lunes) se presentarán las mejoras hechas en grupo.

Las fechas son el 5 y el 8 de Marzo. Se convalidará la asistencia por un crédito de libre configuración (a buenas horas, que ya los tengo todos cubiertos con asignaturas) y se harán certificados y todo eso.

La verdad es que es una idea muy chula y me hace bastante ilusión porque nunca he presentado ninguna propuesta de…nada. Además creo que el proyecto le gustará a la gente. Ojalá para esas fechas pueda tener algo casi terminado y preparado para hacer un desarrollo fácil en grupo que se pueda explicar incluso a gente con conocimientos muy básicos. Por ejemplo, un plugin para Oolong o para el servidor Tea estaría chulo.

Ya iré comentando cómo va marchando la idea.

Un saludo.

Comments (2)

Look & feel de swing

Una de las primeras cosas que metí en el código de Oolong fue la selección del look&feel de Swing, porque es muy fácil de hacer y así se puede ir viendo cómo queda la aplicación. Como siempre, las cosas no son tan bonitas como parecen al principio, y si bien es sencillo configurar qué look&feel utilizará la aplicación con unas líneas como las siguientes:

try{

    UIManager.setLookAndFeel(

            UIManager.getSystemLookAndFeelClassName());

}

catch(Exception ex){

    UIManager.setLookAndFeel(

            UIManager.getCrossPlatformLookAndFeelClassName());

}

decidir qué look&feel utilizar finalmente y pulir los detalles es más complicado (como siempre que se intentan pulir los detalles en Swing). En mi caso, ahora mismo utilizo el look&feel nativo siempre que esté disponible. Si no hay ninguno disponible o no está definido, se utiliza Metal, que es feísimo.

Otra solución es utilizar algún look&feel desarrollado por terceros como Substance, que es el que más me convence. Esto garantizaría que la aplicación se vería igual en todas las plataformas, pero añade un peso considerable a la aplicación que ya de base ocupa más de 1MB (por incluir el framework Apache Felix).

Ahora mismo tengo pendiente arreglar un problemilla con Oolong que ocurre desde que añadí el widget del termómetro deprisa y corriendo. Hay un pequeño jaleo con este tema de los looks&feels. La aplicación debería aparecer siempre con apariencia GTK (en Linux), pero ahora según que casos aparece con look Metal. Ya le echaré un ojo.

Dejar un comentario

Older Posts »