Introdução aos Sistemas Operacionais/Exemplo de Drivers USB em Linux: Logitech MediaPlay Cordless Mouse USB Linux driver
Aspeto
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;