configuracion_plataformas+de+procesamiento

=Configuración de la plataforma Beagleboard para usar Opencv=

Herramientas:
Beagleboard www.beagleboard.org con hub usb, tarjeta de red preferiblemente Ethernet, teclado y ratón. Cpu con linux "la la guia está probada con 9.10 karmic y 10.40 jauny" SD preferiblemented de mas de 2GB de capacidad, se usó una marca Ridata y una Kingston. la beagle es bastante compatible, sin embargo seria bueno revisar el manual antes de comprarla

Los pasos de configuración del SO:
Para instalar la distribución de linux, angstrom. Tomado de : "@http://pixhawk.ethz.ch/tutorials/omap/boot_from_sd_sdhc"

Dar formato a la SD
lo primero que hay que hacer es formatear la memoria SD de tal manera que pueda arrancar el SO de ella asi: Insertar la SD en la máquina, con lo que la SD es detectada y automáticamente montada por linux. Supongamos que fue montada en "/media/misd", para ver en que dispositivo se lista la SD en "/dev/sdX" abrir una terminal y poner: code mount "o en su defecto" dmesh | tail

code y debe salir una linea así: code /dev/mmcblk0p1 on /media/misd code notese que el sistema ve a las sd o discos como sda, sdb o como mmcblk0. ahora vamos a desmontar la sd code sudo umount /media/misd code Para el particionado se va a usar fsdisk, es mas sencillo y con interfaz de usuario muy intuitiva a continuación se listan las opciones a seguir en fdisk para abrir: "nótese que no se usó la partición mmcblk0p1 sino el disco mmcblk0, de la misma manera si su dispositivo por ejemplo es sdc1 use solamente sdc" code sudo fdisk /dev/mmcblk0 code oprimir "p" y enter. sale: code Disco /dev/mmcblk0: 7948 MB, 7948206080 bytes 81 cabezas, 10 sectores/pista, 19165 cilindros Unidades = cilindros de 810 * 512 = 414720 bytes Identificador de disco: 0x000882ca

Disposit. Inicio   Comienzo      Fin      Bloques  Id  Sistema /dev/mmcblk0p1                11    19166      7757824   b W95 FAT32 code anotar el primer número en este caso **7948206080** que depende del tamaño de la SD Borrar esta partición presente en mmcblk0p1

oprimir "d" y enter. Sale: //Se ha seleccionado la partición 1 Orden (m para obtener ayuda)://

ir a modo experto

oprimir "x" y enter y después "h" y enter. Sale:

//Orden avanzada (m para obtener ayuda): h Número de cabezas (1-256, valor predeterminado 255)://

oprimir "255" y enter después oprimir "s" y enter y luego "63" y enter. Sale

//Número de cabezas (1-256, valor predeterminado 255): 255 Orden avanzada (m para obtener ayuda): s Número de sectores (1-63, valor predeterminado 63): 63 Atención: estableciendo desplazamiento de sector para compatibilidad con DOS//

el número de cilindros debe cumplir: code format="code" cilindros = bytes de la SD / cabezas / sectores / tamaño del sector (512)) code en nuestro caso code format="code" bytes de la SD = 7948206080 cabezas=255 sectores=63 tamaño del sector=255

code calcullando serian code format="file" 7948206080 / 255 / 63 / 512 = 966.314348

code osea se toma la parte entera que corresponde a 966

oprimir "c" y enter

En espe paso ponemos el número calculado anteriormente

oprimir "966" y enter NOTA: solo en el caso de ejemplo

oprimir "r" y enter para verificar oprimir "p" y enter code Disco /dev/mmcblk0: 7948 MB, 7948206080 bytes 255 cabezas, 63 sectores/pista, 966 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes Identificador de disco: 0x000882ca code ya solo basta crear las dos particiones: para la primer apartición oprimir "n" y enter oprimir "p" y enter oprimir "1" y enter y enter "usar opción por default" seleccionar el cilindro # 50 oprimir "+50c" y enter para la segunda partición oprimir "n" y enter oprimir "p" y enter oprimir "2" y enter y enter "usar opción por default cilindro 52 en este caso" y de nuevo oprimir enter y usar el último cilindro por defecto "699 en nuestro caso"

para ver todos los cambios oprimir p y enter sale: code format="code bash" Disco /dev/mmcblk0: 7948 MB, 7948206080 bytes 255 cabezas, 63 sectores/pista, 966 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes Identificador de disco: 0x000882ca

Disposit. Inicio Comienzo      Fin      Bloques  Id  Sistema / dev / mmcblk0p1         1       51      409626   83  Linux / dev / mmcblk0p2         52      966     7349737 +  83  Linux code para realizar los cambios oprima "w" y enter para formatear la partición de inicio de la SD: code format="code bash" sudo mkfs.msdos -F 32 / dev / mmcblk0p1 -n BOOT code para formatear la partición de datos de la SD: code format="code bash" sudo mkfs.ext3 -L LINUX / dev / mmcblk0p2

code ya está lista la SD para trabajar, solo basta copiar los archivos a la memoria, para esto, retire la SD del PC y vuelvala a poner si todo está bien linux debe montarla como BOOT y como LINUX,

copiar los archivos del SO a la SD
para este paso bastaen un principio con descargar los archivos de la pagina "@http://www.angstrom-distribution.org/demo/beagleboard/" primero descargar los archivos:

MLO u-boot.bin uImage "notese la i mayuscula"

estos deben descargarse al disco duro del PC y ser copiados y pegados en este orden uno por uno a la partición. puede usar el gestor de ventanas. RESPETE EL ORDEN Y LOS NOMBRES CITADOS,DE OTRA MANERA NO FUNCIONA. listos estos 3 archivos, solo falta poner la imagen de linux, puede usar las facilmente la consola para esto así: code wget http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-Beagleboard-demo-image-glibc-ipk-2010.3-beagleboard.rootfs.tar.bz2 sudo tar xjfv *2010.3-beagleboard.rootfs.tar.bz2 -C /media/LINUX code con esto último ya se cuenta con una imagen lista para usar de linux Angstrom en la beagleboard, también pueden archivos generados por narcissus "@http://www.angstrom-distribution.org/narcissus/" o compilar su propia distribución basada en angtrom siguiendo los pasos en "@http://pixhawk.ethz.ch/tutorials/omap/openembedded_bitbake_installation"

Instalar opencv en Angstrom
Primero, iniciar el SO recién instalado configurando las cuentas de usuario y demás, en este paso se contaba con internet en la plataforma por medio de DSL por Ethernet. los pasos son los siguientes:

manual inspirado de "@http://nb-no.facebook.com/note.php?note_id=135375324361", de "@http://markmail.org/message/yck3o5a3hlvhbbtc" y de "@http://permalink.gmane.org/gmane.comp.hardware.beagleboard.user/1744"

ffmpeg ya se encuentra instalado por defecto en la imagen de ejemplo

actualizar paquetes: code su opkg update opkg install task-native-sdk cpp gccmakedep opkg install python-distutils python-compile python-compiler python-devel opkg install ffmpeg-dev opkg install opencv code ya está listo para usar si desea puede instalar también los paquetes gcc, g++ y make el siguiente es un ejemplo de script para compilar multiples fuentes estos deben guardarse en un archivo de texto llamado "nombre_del_archivo.sh" y ejecutados como se explica mas adelaqnte: code echo "compilando..." export LD_LIBRARY_PATH=/usr/local/lib echo `pkg-config --cflags opencv` echo `pkg-config --libs opencv` g++ `pkg-config --cflags opencv` -ggdb archivo1.c archivo2.c archivoenc++.cpp -o nombredelejecutable `pkg-config --libs opencv` echo "termina de compilar"
 * 1) !/bin/sh

code en el script anterior puede usarse gcc en vez de g++ si solo cuenta con archivos en C. El modo de uso es el siguiente: Después de configurar el script a su necesidad y suponiendo que se llame compile.sh: code sh ./compile.sh code

Un script para compilar un solo fuente: code echo "compilando..." export LD_LIBRARY_PATH=/usr/local/lib echo `pkg-config --cflags opencv` echo `pkg-config --libs opencv` gcc `pkg-config --cflags opencv` -g -o $2 $1 `pkg-config --libs opencv` echo "termina de compilar"
 * 1) !/bin/sh

code el modo de uso es el siguiente: suponiendo que el script se llama compilame.sh: code sh ./compilame.sh nombre_del_fuente.c nombre_del_ejecutable code Con esto terminan el manual de uso de Opencv en la beagle board, dudas comentario sugerencias y felicitaciones puede enviarlas a

calderonf@gmail.com Ing. Francisco Carlos Calderón