Archive for diciembre, 2009

Primeros pasos con OSGi (II): Oolong

Buenas.

Después de llevar un par de días parado, hoy he retomado el proyecto con ganas y he seguido experimentando con OSGi. Como todavía veo un poco lejano el diseño de la aplicación servidor, estoy haciendo los experimentos en Oolong, la aplicación cliente. Así que poco a poco voy dando a luz algunas funcionalidades.

De momento no es más que un ejemplo de OSGi, pero lo único que hace está bastante chulo. Utilizo Apache Felix File Install, que constantemente está vigilando un directorio por si se añaden o se eliminan bundles de la aplicación. El método es un simple sondeo del directorio periódicamente. No sé si esa será la mejor opción de vigilar los bundles, pero si los de Apache han lanzado la aplicación yo me fío. De momento todo funciona bien.

Con OSGi no ha habido problemas, todo ha funcionado según lo previsto. Lo único que tengo que arreglar es el código. Refactorizar y comentar, porque el código para dibujar GUIs en Swing siempre parece un poco feo. De momento estoy contento con cómo estoy organizando y escribiendo la aplicación, aunque iré puliendo detalles conforme vaya sacando versiones.

A lo que iba. De momento Oolong sólo hace una cosa: mostrar una lista con los plugins que hay instalados. Tiene un botón de “Actualizar” que refresca la lista cada vez que se pulsa. Para instalar un plugin sólo hay que copiarlo al directorio “dropins” y la aplicación lo instalará en el instante. Para desinstalarlo, pues se borra del mismo directorio y ya está. Todo esto sin parar la aplicación.

Mañana subiré el código al repositorio y lanzaré la primera versión. No se puede llamar a esto programa todavía, pero me viene bien ir subiendo el primer código. Además sería genial que alguien lo probara en MacOS X para ver cómo se ve. Sospecho que mal, porque lo he programado deprisa y corriendo y para que se me vea bien a mí en Linux. Pero para eso necesito que la gente lo pruebe, para hacer esos arreglillos.

Un saludo

Anuncios

Comments (2)

Instalando GNU/Linux Debian en la BeagleBoard

Gracias al excelente howto de Robert Nelson, a la gente de OpenEmbedded y al Qemu, la instalación de Debian en la placa ha sido casi trivial, sin apenas sorpresas. Una vez entendido el funcionamiento de los modos de USB que permite la placa y cómo utilizar el puerto Ethernet que proporciona el hub USB que estoy utilizando, todo lo demás fue un paseo.

Ahora mismo ya puedo conectar la placa al pc mediante un cable serie null-modem y además acceder a la placa por ssh desde el pc, montar el sistema de archivos raíz por NFS, etc.

Tengo que ver qué versión parcheada del kernel es más conveniente para esta revisión de la placa (la C3). Normalmente, el procedimiento para instalar un kernel Linux en esta placa consiste en obtener la versión que queramos del kernel para OMAP3 (la familia del procesador que lleva la placa) y después aplicar los parches necesarios de entre los que liberan los de OpenEmbedded, para adaptar el kernel a nuestra placa de la forma más precisa posible.

Para ahorrar tiempo y problemas, he optado de momento por probar la instalación con varias versiones ya compiladas del kernel parcheado, construido y proporcionado por Robert Nelson, con lo que me he ahorrado todo el proceso de compilación cruzada del kernel. Todas las que he probado funcionan sin problemas, pero tendría que ver de todas formas cuál viene mejor. Más adelante tendré que construir un kernel a medida de todas formas, para tener un núcleo más pequeño y más apropiado para la placa, así que iré comentando. Pero de momento no es tan prioritaria esa tarea, porque con lo que hay hecho ya funciona todo correctamente. La construcción a medida del kernel es más por motivos didácticos que otra cosa.

Como decía, hubo un momento de crisis hasta que logré hacer funcionar los dispositivos que hay conectados por USB (el puerto Ethernet que trae el hub). El motivo es que la placa tiene dos puertos USB: uno OTG (On The Go) que se puede configurar como host y como esclavo, y otro EHCI que funciona como host. Supuestamente si conectamos al puerto OTG un conector tipo mini-A, que puentea un par de pines, el puerto se configura como host, pero yo conecté ahí el hub usb y no terminaba de funcionar bien el puerto Ethernet. La otra opción era alimentar la placa por el jack de alimentación en lugar de por el OTG y conectar el hub al puerto EHCI. Así funcionó del tirón, así que así se queda.

Conocidas estas cosillas, lo demás es igual que trabajar con Linux en una máquina de escritorio. Seguramente aparecerá algún contratiempo cuando pruebe los phidgets en la placa, pero para eso todavía queda un tiempo.

Dejar un comentario

Ya tengo la BeagleBoard

Es diminuta.

Todo viene según lo previsto, así que en cuanto compre un par de cacharros para poder conectarlo todo terminaré la instalación de Linux y continuaré con el tercer informe técnico.

Lo siguiente será instalar openjdk en el debian de la placa, después felix y a partir de ahí hacer muchas pruebas. ¡Las cosas no podrían ir mejor!

Cuando me ponga a ello daré todos los detalles técnicos.

Dejar un comentario

Ya tengo repositorio y, ya mismo, la placa

Ya he empezado a subir archivos al repositorio de la forja, además de añadir algunas tareas y otras cuantas cosillas sin importancia. Se puede encontrar todo aquí.

Con respecto al avance del proyecto, mañana seguramente recoja la placa por fin, así que podré terminar la instalación básica de Linux en ella y podré seguir avanzando el tercer informe técnico.

Por otra parte, muy próximamente comenzaré a desarrollar el primer prototipo de Oolong, que no creo que me lleve mucho tiempo. Iré poniendo los avances por aquí y espero tener pronto el primer código subido al repositorio.

También me alegra tener por fin un nombre único para poner a los paquetes que haga en Java: es.rediris.forja.tea , jaja.

Más información, etc: https://forja.rediris.es/projects/cusl4-tea/

Dejar un comentario