Linux内核替换密钥

3
我需要编写一个Linux内核模块,按下键盘上的某个键后更改屏幕上打印的字符(比如说当我按下“b”时,我想打印出“a”)。最好的实现方式是什么?我的想法是创建一个键盘模块。我做了一些研究,看到了一些键盘记录器(作为内核模块),但它们只能监听按下了哪个键,而无法更改扫描码(在键盘记录器中这是很明显的)。我阅读了《Linux设备驱动程序》第三章,并开始阅读第六章,但它们只讨论虚拟设备,而我想将我的模块与真实设备连接起来。我还看到了这篇文章https://dev59.com/SJHea4cB1Zd3GeqPnU-B,但它无法实现。我的老师说有比使用中断更容易的方法,但我不知道怎么做(无论是使用中断还是任何其他方式)。
我该怎么办?只需阅读LDD的下一章吗?还是其他书?或者只是躺下哭泣?

你需要在用户空间中进行操作。例如,你可以在输入硬件上执行 xinput float 命令将其从桌面系统断开连接,然后编写一个程序来读取输入并将其转换为另一个事件,最后通过 uinput 将其注入回系统中。你可以使用 uinput 创建虚拟输入设备来注入已转换的输入事件。参考链接:http://thiemonge.org/getting-started-with-uinput - user3528438
我很想在用户空间中完成它,但我必须成为内核模块。 - mmichal10
这是一个格式错误的要求。 - user3528438
1
他的老师要求他让它看起来更像是一个学习任务,而不是一个将在生产中运行或具有编写内核模块等实用性的东西。 - Harry
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接