23.4.09

LIBUSB

LibUSB es una librería de código abierto que permite desarrollar controladores de dispositivos USB desde espacio de usuario sin necesidad de bajar a nivel de kernel. En nuestro caso, va a ser utilizado para detectar la presencia de dispositivos de almacenamiento USB, que es donde guardaremos los datos adquiridos.
La utilización de esta librería requiere la compilación del código fuente para adaptarlo a nuestra plataforma. De esta manera se genera una librería dinamica (de extensión ".so") que es la cual se cargará en el TS.
A continuación se presentan los pasos a seguir, junto con un programa de ejemplo que busca las Flash USB conectadas y muestra datos de las mismas, incluyendo la cantidad total de dispositivos de almacenamiento detectados.


1- Descomprimimos el codigo fuente de la librería libusb-0.1.12.tar.gz

http://prdownloads.sourceforge.net/libusb/libusb-0.1.12.tar.gz

Otras versiones tal vez no funcionen.


2- Vamos a la carpeta donde descomprimimos el código y tipeamos el siguiente comando:

# CC=arm-linux-gcc CXX=arm-linux-gcc ./configure --prefix=/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/arm-linux --program-prefix=arm-linux- --host=arm-pc-linux-gnu

Donde en prefix ponemos la ruta a nuestra toolchain (suponemos que la revisión de la misma es gcc-3.3.4-glibc-2.3.2)

3- Ejecutamos los dos siguientes comandos:

make
make install

Si leemos un poco lo que muestra el ultimo comando, vemos que instala las librerías dinámicas .so en el directorio lib de nuestra toolchain. Los archivos de interés son:

libusb-0.1.so.4.4.4
libusb-0.1.so.4

Donde el primero es la librería propiamente dicha y el segundo es solo un enlace al primero, pero lo debemos tener en cuenta porque el programa que compilemos para el TS-7260 busca un archivo con dicho nombre.


4- Copiamos los dos archivos al del punto anterior a la carpeta "/lib" del TS


5- Hacemos un pequeño programa y lo compilamos con el comando:

arm-linux-gcc -o ejemplo_libusb ejemplo_libusb.c -I/usr/local/include -L. -lnsl -lm -lc -L/usr/local/lib -lusb

Luego lo subimos a la placa.

Pueden bajar el programa de ejemplo "ejemplo_libusb.c" desde el siguiente servidor ftp:

ftp://mandrakenet.com

usr: ts7260
pass: ts7260

6- Una vez subido a la placa el programa, cargamos los modulos USB ejecutando el siguiente Script:

/usr/bin/loadUSBModules.sh

Montamos el sistema de archivos USB con:

mount -t usbdevfs none /proc/bus/usb

7- Por último, podemos ejecutar el programa, se muestra la cantidad de dispositivos flash USB conectados al TS y algunas características de los mismos.

0 comentarios: