我正在尝试创建 Linux 输入设备驱动程序并测试我在现有gpio-matrix-keypad驱动程序中所做的事情。使用 print 我知道它input_report_key()
是用正确的键码调用的,但它没有在光标下放置正确的字符。
pr_info("Print: %d\n", keycodes[code]);
input_report_key(input_dev, keycodes[code], new_state[col] & (1 << row));
我还使用 BeagleBone Black 进行工作minicom
。似乎内核是在启用输入选项所需的情况下构建的,例如CONFIG_INPUT
和CONFIG_INPUT_KEYBOARD
。
正如我们所讨论的,预期的密钥已
input
正确插入到子系统中。他们不会通过您的串行连接联系您,而这实际上应该发生。请注意,当您使用串行连接时,输入和输出来自
/dev/console
键盘/dev/ttyS*
和屏幕。这意味着键盘未连接到控制台或串行连接,因此通过键盘插入的键不会通过串行到达您。然而,系统中键盘的所有输入都通过
kbd
输入处理程序(参见kbd_handler
)drivers/tty/vt/keyboard.c
进入vt
。vt
代表“虚拟终端”,它在同一屏幕+键盘设置下维护多个终端会话。ctrl+alt+f*
这些是您可以使用on切换到的终端ubuntu
,这些是下面的终端/dev/tty*
qemu
可以使用in-nographic
模式来模拟相同的设置。sendkey
然后用in 的监视器模拟键盘输入qemu
,并通过监视器命令查看输出screendump
。要获取您的信息,
vt
您可以在上面贴上一个外壳,如下vt
所示:PS1='shell$ ' setsid sh -c "exec sh -i </dev/tty1 >/dev/ttyS0 2>&1"
。