Linux kernel Hal需要看到linux设备什么?

Linux kernel Hal需要看到linux设备什么?,linux-kernel,kernel,linux-device-driver,hal,hotplugging,Linux Kernel,Kernel,Linux Device Driver,Hal,Hotplugging,我试图了解Linux内核上的设备驱动程序,为此我创建了三个模块: 公共汽车类型 设备驱动程序 一个假的设备现在什么都不做,只是注册了 一切正常,我可以加载总线、驱动程序和创建设备的模块。所有内容都显示在sysfs上,包括设备和设备驱动程序之间的链接,表明它们已绑定 当驱动程序和设备加载时,我可以使用udevadm monitor看到也会触发一些事件: KERNEL[1275564332.144997] add /module/bustest_driver (module) KERN

我试图了解Linux内核上的设备驱动程序,为此我创建了三个模块:

  • 公共汽车类型
  • 设备驱动程序
  • 一个假的设备现在什么都不做,只是注册了
一切正常,我可以加载总线、驱动程序和创建设备的模块。所有内容都显示在sysfs上,包括设备和设备驱动程序之间的链接,表明它们已绑定

当驱动程序和设备加载时,我可以使用
udevadm monitor
看到也会触发一些事件:

KERNEL[1275564332.144997] add      /module/bustest_driver (module)
KERNEL[1275564332.145289] add      /bus/bustest/drivers/bustest_example (drivers)
UDEV  [1275564332.157428] add      /module/bustest_driver (module)
UDEV  [1275564332.157483] add      /bus/bustest/drivers/bustest_example (drivers)
KERNEL[1275564337.656650] add      /module/bustest_device (module)
KERNEL[1275564337.656817] add      /devices/bustest_device (bustest)
UDEV  [1275564337.658294] add      /module/bustest_device (module)
UDEV  [1275564337.664707] add      /devices/bustest_device (bustest)

但毕竟,这台设备并没有出现在hal上。hal还需要什么设备才能看到呢?

设备似乎一切正常,问题是hal需要每个子系统都有一个处理程序(处理程序列表可以在
hald/linux/device.c
中找到),显然,hal不支持为这种情况发明的子系统
bustest


如果总线以“pseudo”而不是“bustest”的名称注册,hal将使用为伪设备定义的一组处理程序来初始化数据库条目,注册它并发送一个
DeviceAdded
事件。

设备似乎一切正常,问题是hal需要为每个子系统提供一个处理程序(处理程序列表可以在
hald/linux/device.c
中找到),显然,hal不支持为这种情况而发明的子系统
bustest

如果以“pseudo”而不是“bustest”的名称注册总线,hal将使用为伪设备定义的一组处理程序来初始化数据库条目,注册它并发送
DeviceAdded
事件