Ubuntu 如何在Linux上模拟低级扫描码按键?

Ubuntu 如何在Linux上模拟低级扫描码按键?,ubuntu,linux-kernel,keyboard,keyboard-events,custom-keyboard,Ubuntu,Linux Kernel,Keyboard,Keyboard Events,Custom Keyboard,我的笔记本电脑有一个奇怪的华硕键盘,出于某些原因,它的结束键被关闭()。我想修复损坏,让我的Ubuntu Linux将此密钥解释为End 我知道如何使用acpid截获关机,并让它以root用户身份在我想要的按键上发出任何命令 我希望它模拟扫描代码0xe0 0x4f,然后是50毫秒的暂停,然后是0xe0 0xcf 如何在现代笔记本电脑和Linux上通过扫描码模拟低级按键? 我尝试使用以下程序将扫描代码写入端口 /* gcc -O2 -s -Wall -osend_to_keyboard main.

我的笔记本电脑有一个奇怪的华硕键盘,出于某些原因,它的
结束
键被
关闭
()。我想修复损坏,让我的Ubuntu Linux将此密钥解释为
End

我知道如何使用acpid截获
关机
,并让它以root用户身份在我想要的按键上发出任何命令

我希望它模拟扫描代码
0xe0 0x4f
,然后是50毫秒的暂停,然后是
0xe0 0xcf

如何在现代笔记本电脑和Linux上通过扫描码模拟低级按键?

我尝试使用以下程序将扫描代码写入端口

/* gcc -O2 -s -Wall -osend_to_keyboard main.c */
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>

int main(int argc, char *argv[]) {
  int i;

  ioperm(0x60, 3, 1);

  for (i = 1; i < argc; i++) {
    int x = strtol(argv[i], 0, 16);

    usleep(300);
    outb(x, 0x60);
  }

  return 0;
}
/*gcc-O2-s-Wall-osend\u to\u keyboard main.c*/
#包括
#包括
#包括
int main(int argc,char*argv[]){
int i;
ioperm(0x60,3,1);
对于(i=1;i
但什么也没发生。也许代码对我的键盘不起作用。我从未在Linux上做过如此低级的事情,所以我缺乏适当的经验


对于那些横向思考的人来说:我不想只使用xdool来模拟X上的按键操作