it-swarm-pt.com

O que acontece quando uma unidade USB é conectada?

Qual é o fluxo de eventos USB do espaço do kernel para o espaço do usuário? Recebo um pop-up na minha área de trabalho quando conecto uma unidade USB - qual é a sequência de eventos que vai desde a detecção da nova unidade USB até sua montagem e exibição desse pop-up?

23
Sen

Isso é fornecido por udev em sistemas Linux modernos. O daemon udev iniciado com o sistema irá pesquisar em /etc/udev/rules.d e /lib/udev/rules.d e executará regras de correspondência para eventos do kernel. Inserir uma unidade USB irá disparar um evento, udev irá procurar uma regra correspondente e irá executá-la.

As próprias regras determinarão o que seu sistema faz. Nos últimos anos, udev comunicou-se ao HAL, o que alertaria os aplicativos via DBUS. Esta abordagem agora está obsoleta em favor de uma solução unificada udev, que presumo que envolverá udevd comunicação via dbus diretamente ou via dbus-send =.

Você pode monitorar as atividades de udev via udevadm monitor.

6
ewindisch

Não estou totalmente confiante com isso ainda, então aceite-o com cautela e mais pesquisas.

Ele começa com o subsistema hotplug do kernel. Depois que um dispositivo é configurado, ele chama qualquer programa de espaço do usuário configurado para lidar com eventos de hotplug (se um foi definido por echo hotplug_handler > /proc/sys/kernel/hotplug) ou envia um pacote de dados pelo soquete netlink kobject_uevent. Quando o kernel inicia o manipulador de hotplug, ele configura algumas variáveis ​​de ambiente. Quando o kernel envia um pacote de dados, ele inclui pares chave = valor. Se desejar, você pode configurar um script que apenas registra o ambiente e configurá-lo como o manipulador (não em seu sistema de produção, é claro - uma configuração de teste).

Normalmente, o udev é configurado como o manipulador e terá várias regras configuradas sobre como manipular eventos. A partir daí, ele pode iniciar outros programas que fazem outras coisas (como emitir mensagens dbus). Essas regras do udev são altamente dependentes da distribuição particular de interesse.

Há muitas informações em este tópico onde alguém está tentando escrever alguma documentação - observe que a primeira mensagem não é precisa; continue lendo.

3
Shawn J. Goff