Introdução aos Sistemas Operacionais/Exemplo de Drivers USB em Linux: Logitech MediaPlay Cordless Mouse USB Linux driver

Fonte: Wikiversidade

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
  • 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;

Bibliografia/Referências[editar | editar código-fonte]