Como o udev envia notificação de mudança de dispositivo de entrada para o Xorg?

2

Eu quero descobrir por que as tabelas gráficas estão ativas apenas se estiverem conectadas quando o Xorg for iniciado (e parar de trabalhar com spam de Xorg.0.log se eu reconectá-lo).

Até onde eu sei, o hotplugging baseado em udev funciona pelo Xorg de alguma forma ficando conectado com o udev após o início.

  • Onde estão os detalhes disso? Qual mecanismo do Xorg mantém contato com o udev? Conexão de soquete direta? D-Bus?
  • Que mensagens procurar nos logs do udev ou do Xorg por falta de conexão entre o udev e o Xorg?
  • Como disparar manualmente a reenumeração de dispositivos de entrada do Xorg?
por Vi. 15.02.2014 / 16:05

1 resposta

1

Está usando mecanismos expostos pela libudev.

Pesquisando no código fonte do Xorg, podemos ver em udev.c que está chamando udev_monitor_new_from_netlink .

Depois, observando o código-fonte do udev, podemos ver em libudev-monitor.c que esta função eventualmente cria um netlink soquete .

Eu não sei de uma maneira fácil de "farejar" sockets de netlink; mas provavelmente há algum código de exemplo no udev que você pode compilar e executar para se inscrever na mesma fonte de eventos e exibir algumas informações detalhadas.

Na sua situação, eu tentaria isso:

  • posso desconectar / reconectar outros dispositivos de entrada? (por exemplo, qualquer mouse ou teclado USB)
  • o que eu vejo nos logs do udev quando eu desconecto / reconecto o tablet?

E, a propósito, que tipo de mensagens são spam em Xlogs?

    
por 17.05.2014 / 18:26