之前也曾有人问过类似的问题,简单的解决方法就是更新 BIOS 并使用其中的选项来交换按键。
但是,即使联想更新了最新的 BIOS,BIOS 中也没有这样的选项。有没有办法在 BIOS 级别交换 Fn 和 Ctrl 键?
我在文章中找到了某种补丁所有联想笔记本电脑上的 FN-CTRL 互换,但它似乎只在 Windows 上运行。
任何想法都将受到欢迎。
答案1
联想并没有为 x00 系列笔记本电脑发布 BIOS 更新来更换这些按钮,显然它是在 x10 系列型号中引入的。
有非官方的 BIOS 可从http://forum.notebookreview.com/threads/fn-ctrl-swap-on-all-lenovo-laptops-solved.474396/由一位用户创建,他显然已经进行了足够的拆卸,找到了相关区域并更改了 BIOS 文件本身的设置。这些是非官方的,不受支持的,但也是您在一台 5 年以上的笔记本电脑上获得此功能的最佳选择。
我今天早些时候在我手边的一台 W500 上应用了其中一种,按照帖子中的说明使用包含 /s 选项的批处理文件后,这似乎至少对我的有限情况 1 有效。仅进行初始刷新是不够的。
答案2
经过几个小时的研究和辛苦但令人兴奋的工作,我已经能够通过 grub 做到这一点,我所做的如下:
获取官方 BIOS 可启动 CD 映像这里. 需要带有 ECP 1.06 的 3.14 版本,正是因为它是 middleton 进行 FN-CTRL 交换修改的官方图像。
获取 middleton 修改后的 BIOS 实用程序(FN-CTRL 互换的那个)这里,这里的问题是 middleton 修改后的 BIOS 被提取出来并且无法在 linux 中启动或安装。
现在到了棘手的部分,我找到了一种方法,可以将 Middleton 的固件文件迁移到官方 ISO 映像中克里斯蒂安·亚当的博客(感谢 Cristian),只需编译他的
breplace.cpp
代码并用它来替换固件文件$01B9000.FL2
和$01B9100.FL2
官方图像中的 middleton 提供的文件即可。最后,使用 grub 启动修改后的映像,提供有关此过程的信息这里并且.. 就是这样了!
随后可以升级 BIOS 的最新版本 3.22(使用与上一步相同的过程),获取官方 ISO 映像,但要保持 FN-CTRL 交换,您需要使用具有相同 ECP 版本 1.06 的映像(版本 1.07 会回滚交换)
答案3
(声誉不足,无法添加评论)
请注意,即使您的 BIOS 支持交换 Fn 和 Ctrl,您仍可能需要更新 BIOS 才能使某些 ctrl 组合键正常运行。http://earthwithsun.com/questions/814975/lenovo-laptop-fn-ctrl-swap:
我在新的联想 E540 上安装了 Ubuntu 14.04,并选择了 BIOS 选项来交换 Fn 和 Ctrl 键。这很有效,但也有一些问题。
看来联想在 v2.13 中在 BIOS 级别引入了一些额外的键盘快捷键,例如 Fn+S、Fn+B 和 Fn+P。现在,在 BIOS 中切换了 Ctrl 和 Fn 按钮,按下物理 Fn 键(软件中的 Ctrl 键)时仍会触发快捷键。这意味着按下 Ctrl+S 会被 BIOS 拦截并解释为 Fn+S,并且我的代码不会被保存。
BIOS 版本 2.16(2014 年 10 月 30 日)最终修复了此问题:)
我自己也遇到过这种情况,花了大约 4 个小时试图找出如何在交换 Ctrl 和 Fn 后修复 Ctrl-S 以使其正常工作,不愿意回到接受 Thinkpad 上控制键的(非常)不幸的位置。谢天谢地,我找到了 earthwithsun 条目并意识到我需要更新 BIOS。