在 Linux 中,如何创建具有用户指定事件编号的输入事件接口并将其映射到特定设备事件?
我正在使用 gpio-keys 驱动程序来翻译键盘上的按键。我定义了要在我的板配置源文件中使用的键,如下所示
static struct gpio_keys_button ev_keys[] = {
[0] = {
.type = EV_KEY,
.active_low = 1,
.wakeup = 0,
.debounce_interval = KEYS_DEBOUNCE_MS,
.code = KEY_MUTE,
.desc = "mute",
.gpio = PUSHBUTTON_MUTE,
}
};
并将其注册到内核。
我在构建内核时启用了事件接口和 GPIO 按钮。
Device Drivers ---> Input device support --> Event interface
Device Drivers ---> Input device support --> Keyboards --> GPIO buttons
/dev/input/event0
这将为 GPIO 按钮事件映射到的事件创建一个节点。在一个只使用一个事件接口的系统中,我可以调用poll()
fd/dev/input/event0
并且一切都按预期工作。
现在,我的系统上有第二个/dev/input/event0
默认使用的外围设备,我需要将事件从 gpio-keys 驱动程序映射到另一个事件。关于如何使用我可以指定的数字/ID 创建事件然后将其映射到 gpio-keys 事件的任何建议?
谢谢。