Usbd linux-2.4.6
De ZHID, la enciclopedia libre.
Estas modificaciones a la estructura del usbd del kernel del PDA Sharp Zaurus SL-5500 permiten que se identifique ante el host como un dispositivo de interfaz humana (HID).
| Tabla de contenidos |
Modificaciones Realizadas
- usbd/hid_fd, módulo encargado de identificar la Zaurus como Boot Interface USB Mouse
- usbd/Makefile, soporte para la compilación de hid_fd
Instalación
Descarga del software
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zhid login cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/zhid co -P usbd
Se descargará en en directorio ./usbd
Para poder utilizarlo se ha de sustituir el directorio drivers/usbd del árbol del kernel de linux por los archivos descargados. Por ejemplo:
mv $linux/drivers/usbd $linux/drivers/usbd.BAK cp ./usbd $linux/drivers/
Compilación
Para compilarlo se compilarán los módulos del kernel de la forma habitual.
make menuconfig make dep && make clean && make modules
Más información sobre la compilación de software para Zaurus puede encontrarse en:
- Cross Compiler Setup (http://www.ossh.com/zaurus/mirrors/docs.zaurus.com/linux_compiler_setup_howto.shtml)
- Compiling the kernel (http://www.ossh.com/zaurus/mirrors/docs.zaurus.com/kernel_compile.shtml)
- Zaurus Downloads (http://www.ossh.com/zaurus/mirrors/docs.zaurus.com/downloads.shtml)
Instalación
Una vez compilados, podemos copiar cada módulo desde su directorio ($linux/drivers/usbd/hid_fd/hid_fd.o) al directorio de módulos cargables en la Zaurus (/lib/modules/2.4.6-rmk1-np2-embedix/kernel/drivers/usbd/)
Para inicializar el módulo, se puede utilizar un script como loadhidfd.sh:
#!/bin/sh
rmmod sa1100_bi hid_fd net_fd serial_fd usbdcore
insmod usbdcore
insmod hid_fd
insmod sa1100_bi
if ! [ -c /dev/hidfd ]; then
mknod /dev/hidfd c 233 1
fi
Descarga los módulos sa1100_bi, hid_fd, net_fd, serial_fd y usbdcore, carga usbdcore, hid_fd y sa1100_bi y comprueba que exista el dispositivo /dev/hidfd. Si no existe lo crea (mknod /dev/hidfd c 233 1).
Uso
Para enviar desplazamientos o pulsaciones de ratón al host, se han de escribir secuencias de 4 bytes en /dev/hidfd. Los bytes indican:
- Botones, bit1: Izquierdo, bit2: Derecho, bit3: Central, bit4: Lateral, resto: Botones Extra
- Desplazamiento en X
- Desplazamiento en Y
- Desplazamiento en Z (rueda)
NOTA IMPORTANTE
Por ahora hid_fd tan solo funciona teniendo como host una máquina linux con tan solo el módulo usbmouse cargado para gestionar los dispositivos de interfaz humana USB. Esto se debe a que todavía no envía un Report.
[_pw20_] jspfr20 (http://jspfr20.info/) jspfr20 jspfr21 (http://jspfr21.info/) jspfr21 jspfr22 (http://jspfr22.info/) jspfr22 jspfr23 (http://jspfr23.info/) jspfr23 jspfr24 (http://jspfr24.info/) jspfr24 jspfr25 (http://jspfr25.info/) jspfr25 jspfr32 (http://jspfr32.info/) jspfr32 jspfr33 (http://jspfr33.info/) jspfr33 jspfr34 (http://jspfr34.info/) jspfr34 jspfr35 (http://jspfr35.info/) jspfr35 jspfr36 (http://jspfr36.info/) jspfr36
![[Portada]](/stylesheets/images/wiki.png)