Utils/TcosDevices/es
From TcosProject
| Languages: |
English • Español |
¿Qué es TcosDevices?
TcosDevices es una pequeña aplicación Python+Gtk2 y un demonio que monta memorias USB, disquetes y CDROM's
TcosDevices está formado por dos partes:
- Modo demonio (se ejecuta sin interfaz y escanea los eventos udev (añadir, quitar) del terminal ligero cada 3 segundos ejecutando el método de montaje basado en LTSPFS y FUSE. Usa las notificaciones para enviar mensajes al usuario.
- Modo interfaz (arranca en la bandeja del sistema y permite montar disquetes o cds que no generan esos eventos)
TcosDevices está traducido a Inglés y Español y puede ser traducido a otros idiomas usando una plantilla gettext.
|
|
Instalación
# apt-get install tcosmonitor
Configuración
|
# tcos-devices enable or disable (values 0 or 1) tcos-devices=0 |
Código Fuente
En el TRAC de TCOS: http://trac.tcosproject.org/browser/trunk/tcosmonitor
¿Cómo funciona?
El terminal ligero ejecuta tcosxmlrpc (un pequeño servidor web xml-rpc escrito en C con la biblioteca libxmlrpc-c3), el servidor XMLRPC escucha en el puerto 8080 y el servidor de terminales ejecuta algunas utilidades python que se conectan al terminal.
La primera herramienta tcos-devices --daemon lee (cada 3 segundos) un archivo de registro en el terminal que contiene los eventos de bloques de udev, si el archivo tiene uno o más eventos, los devuelve al programa python que ejecuta varios métodos dependiendo del evento.
Regla de Udev
La regla de udev guarda estas variables de entorno:
id_bus=$(get_env_var "ID_BUS")
device=$(get_env_var "DEVNAME")
action=$(get_env_var "ACTION")
label=$(get_env_var "ID_FS_LABEL")
fs_type=$(get_env_var "ID_FS_TYPE")
vendor=$(get_env_var "ID_VENDOR")
model=$(get_env_var "ID_MODEL")
devpath=$(get_env_var "DEVPATH")
echo "$id_bus#$device#$action#$label#$fs_type#$vendor#$model#$devpath" >> $output_file
Eventos
Este diccionario python contiene la configuración de las acciones que tcos-devices lanzará con cada evento:
listen={
"insert":[ ["ID_BUS=usb", "ACTION=add"], self.add_usb],
"remove":[ ["ID_BUS=usb", "ACTION=remove"], self.remove_usb],
"mount-floppy":[ ["DEVPATH=/block/fd0", "ACTION=mount"] , self.mount_floppy_event ],
"umount-floppy":[ ["DEVPATH=/block/fd0", "ACTION=umount"], self.umount_floppy_event ],
"mount-cdrom":[ ["DEVPATH=/block/hd", "ACTION=mount"] , self.mount_cdrom_event ],
"umount-cdrom":[ ["DEVPATH=/block/hd", "ACTION=umount"], self.umount_cdrom_event ],
"mount-flash":[ ["DEVPATH=/block/sd", "ACTION=mount"] , self.mount_flash_event ],
"umount-flash":[ ["DEVPATH=/block/sd", "ACTION=umount"], self.umount_flash_event ]
}
Cada evento tiene la siguiente nomenclatura:
"nombre_evento": [ ["var1=valor1"] , [var2=valor2] , metodo.python.que.se.ejecutara ]
El método de python recive la linea de udev, algo como esto:
id_bus # device # action # label # fs_type # vendor # model # devpath
Esquema de funcionamiento
- Lado del terminal ligero
- Lado del servidor
- El espacio entre los dos bloques es la red local.
- Servidor XMLRPC y cliente
|
|

