Introdução aos Sistemas Operacionais/Exemplo de Drivers USB em Linux: Logitech MediaPlay Cordless Mouse USB Linux driver
Objetivos[editar | editar código-fonte]
Introdução[editar | editar código-fonte]
Informações gerais[editar | editar código-fonte]
- Autores:
- João Paulo Ozório
- Leandro Pereira Freitas
- Paulo César Ferreira Melo
- Versão do kernel:
- Identificação do driver analisado:
- Nome: USB Logitech MediaPlay Cordless Mouse driver - lmpcm_usb
- Lista de arquivos de códigos-fontes analisados:
- Código Fonte: http://daemon.prozone.org/~david/projects/lmpcm_usb/
- Outras informações relevantes:
Carga (load ou init)[editar | editar código-fonte]
- Módulos Carregados:
MODULE_AUTHOR ( "David Oliveira <d.oliveira@prozone.org>" )
MODULE_DESCRIPTION ( "USB Logitech MediaPlay Cordless Mouse driver" )
MODULE_LICENSE ( "GPL" )
MODULE_DEVICE_TABLE (usb, usb_lmpcm_id_table)
module_init(usb_lmpcm_init)
module_exit(usb_lmpcm_exit)
- Processo de carga do módulo
- Parâmetros que podem ser passados na carga do módulo
- Como passar uma parâmetro para o módulo, etc;
Reconhecimento ou detecção (probe)[editar | editar código-fonte]
- Dispositivos que podem ser reconhecidos segundo o fabricante:
- Dispositivos que não podem ser reconhecidos:
- Como se processa a identificação do dispositivo
- O que ocorre quando o driver não é reconhecido (erro), etc;
Inicialização de estruturas[editar | editar código-fonte]
- Quais estruturas são inicializadas
- Tipo de estruturas inicializadas (buffer, por exemplo)
- Registro de URB;
Registro do driver (register)[editar | editar código-fonte]
- Como o driver é reconhecido
- Quais procedimentos (comandos) para verificar qual dispositivo específico que foi reconhecido
- Quais drivers que foram carregados para o dispositivo, etc;
Comunicação[editar | editar código-fonte]
- Arquivos especiais de dispositivo (/proc, /dev e /sys)
- Criação de interface
- Criação de endpoint
- Criação de configuração (configuration)
- Tipos de comunicação utilizados pelo driver (control, bulk, etc);
Finalização[editar | editar código-fonte]
- Mensagens de remoção do dispositivo
- Desalocação/liberação de estruturas;
Considerações finais[editar | editar código-fonte]
- Informações gerais do driver
- Conclusões
- Mapa conceitual sobre o driver estudado;