Linux 键盘键是否可能不生成扫描码?

Linux 键盘键是否可能不生成扫描码?,linux,keyboard,linux-mint,scancodes,Linux,Keyboard,Linux Mint,Scancodes,我最近全职工作到Linux,我很享受学习过程。然而,有一件事让我很困惑:我笔记本电脑上的一些Fn组合键不起作用,比如音量增大/减小、静音等。起作用的组合包括WLAN、睡眠、视频循环、数字键盘等。我可以排除H/W故障,因为这些键在Windows 7上工作得非常好(尽管只有在安装了笔记本电脑制造商的热键软件时) 我在网上搜寻了可能的解释,并遇到了扫描码的概念(取决于硬件),keycode和keysym。我想我理解了基础知识,并发现console和X有自己的映射,需要分别重新映射。console使用扫

我最近全职工作到Linux,我很享受学习过程。然而,有一件事让我很困惑:我笔记本电脑上的一些Fn组合键不起作用,比如音量增大/减小、静音等。起作用的组合包括WLAN、睡眠、视频循环、数字键盘等。我可以排除H/W故障,因为这些键在Windows 7上工作得非常好(尽管只有在安装了笔记本电脑制造商的热键软件时)

我在网上搜寻了可能的解释,并遇到了扫描码的概念(取决于硬件),keycodekeysym。我想我理解了基础知识,并发现console和X有自己的映射,需要分别重新映射。console使用扫描码到keycodes的内核映射,但X出于某种原因有自己的映射。就我而言,我尝试了:

  • 设置引导参数
    atkbd.softraw=0
  • 通过Ctrl+Alt+F1切换到控制台模式
  • 使用了
    showkey--scancodes
    。不幸的是,我尝试使用的键没有显示任何scancode输出
  • 使用
    dmesg
    查看是否发生了任何未知的按键事件,但未找到任何事件
  • 在我绝望的情况下,我尝试了
    acpi\u listen
    来查看这些键是否真的触发了任何acpi事件,而只有sleep和video cycle键触发了,其他键没有任何输出
  • 此时,我想也许我应该尝试使用
    xev
    从X环境本身获取扫描代码,但运气不好

    我来这里只是为了万不得已。我希望有人能很好地解释为什么我在上面尝试过的工具中某些功能键组合没有生成任何输出。如果有用的话,我使用的是Linux Mint 17.3肉桂,笔记本电脑由HCL制造。
    evtest
    显示键盘设备处于转换的Set 2键董事会。如果需要更多信息,我很乐意为您效劳。谢谢

    编辑:没有相关的BIOS设置可用


    坦白:我对这方面的所有了解都是基于我在Arch wiki、Ubuntu wiki、大量论坛帖子和其他网站上读到的内容。因此,如果我在某些方面技术上有错误,请容忍我,并纠正我。我喜欢学习这些东西:)

    这可能取决于X11。你应该试着用英语来理解发生了什么

    也许使用一些其他的桌面套件,如
    xfce
    lxde
    gnome
    kde
    icewm
    可能会有所帮助


    也许明确配置键盘(例如在
    /etc/Xorg.conf
    ..)会有所帮助。

    什么是
    xev
    告诉你的?你试过没有
    atkbd.softraw
    吗首先,我试过没有
    atkbd.softraw
    ,它也不起作用
    xev
    显示除我提到的功能键组合之外的所有内容的相关输出。甚至,无线等工作功能组合键在
    xev
    showkey
    evtest
    中也不会显示任何输出。希望这能回答您的问题。在我的笔记本电脑上,它是由BIOS/ACPI/UEFI处理的,即在内核下面是的,但BIOS仍然将扫描代码传递给内核?如果是这样的话,理论上我可以通过使用一些工具来获取它们,不是吗?也许可能是一些BIOS设置,我希望不是,你能详细说明一下它会如何影响这种情况。如果我理解正确,scancode到keycode的映射取决于X服务器的实现。假设一个不太理想的映射,它怎么能完全隐藏扫描代码事件呢?当然,一定有办法得到这些扫描码,对吗?