udev 如何向 Xorg 发送输入设备变更通知?

udev 如何向 Xorg 发送输入设备变更通知?

我想排除故障,为什么图形表只有在 Xorg 启动时连接时才处于活动状态(并且Xorg.0.log如果我重新连接它,它就会停止工作并发送垃圾邮件)。

据我所知,基于 udev 的热插拔是通过 Xorg 在启动后以某种方式与 udev 保持连接来实现的。

  • 哪里有这方面的详细信息?Xorg 和 udev 保持联系的机制是什么?直接套接字连接?D-Bus?
  • 如果 udev 与 Xorg 之间缺少连接,需要在 udev 或 Xorg 日志中查找哪些消息?
  • 如何手动触发 Xorg 重新枚举输入设备?

答案1

它使用 libudev 公开的机制。

通过深入研究 Xorg 源代码,我们可以看到udev 库它正在呼唤udev_monitor_new_from_netlink

然后,通过查看 udev 源代码,我们可以看到libudev-monitor.c这个功能最终创建一个 netlink 套接字

我不知道“嗅探”netlink 套接字的简单方法;但 udev 中可能有一些示例代码,您可以编译并运行这些代码来订阅相同的事件源并显示一些详细信息。

对于你的情况,我会尝试这样做:

  • 我可以断开/重新连接其他输入设备吗?(例如任何 USB 鼠标或键盘)
  • 当我断开/重新连接平板电脑时,我在 udev 日志中看到什么?

顺便问一下,X 日志中会发送什么样的垃圾邮件?

相关内容