我们有一台带有 4 个刀片的 IBM BladeCenter T,它通过 D-Link 8 端口 KVM 连接到 IBM Rack Console。BladeCenter 还拥有自己的内部 KVM。其他几台服务器也连接到 DKVM。
控制台在所有其他服务器上都运行良好,但不知何故,KVM 的 BladeCenter 端口上的键盘布局被更改为法语 (azerty)。所有 4 个刀片的布局都是法语(使用 BladeCenter 的 KVM 在它们之间切换)。刀片本身运行 Linux,并配置为“et”(爱沙尼亚语)布局(根据 /etc/sysconfig/keyboard)。
BladeCenter 的内部 KVM 是否有可能弄乱键盘布局?还有其他原因吗?
答案1
好的,我想我必须在这里回答我自己的问题——学到的教训是“永远不要假设事情按配置工作”。:)
重新思考了所有事情后,最合理的假设是,由于某种原因,配置的键盘映射未被使用。检查了上次重启后的日志,确实有一行keytable: Loading keymap: failed
。查看了/etc/init.d/keytable
脚本并使用了其中相同的命令,只是没有错误重定向:
[root@server root]# loadkeys et
Loading /lib/kbd/keymaps/i386/qwerty/et.kmap.gz
unknown keysym `currency'
/lib/kbd/keymaps/i386/qwerty/et.kmap.gz:5: parse error
syntax error in map file
key bindings not changed
因此,发行版控制台工具包附带的爱沙尼亚语键盘映射被证明是有缺陷的。在这种情况下使用的键盘是/etc/sysconfig/console/default.kmap
法语的(服务器最初来自法国)。似乎有人试图更改控制台键盘映射,但从未检查它是否真的有效(并在所有 4 个刀片上都这样做了)。
由于物理键盘实际上是瑞典语,我尝试了loadkeys se-latin1
,没有出现任何错误。对于更改布局,CentOS/Redhat 有一个名为的简单工具kbdconfig
,它可以更改/etc/sysconfig/keyboard
并将正确的键映射复制到/etc/sysconfig/console/default.kmap
(但没有发出有关“et”键映射的任何警告)。下周到达数据中心时,我将检查键盘是否按预期工作。
附加问题:如何找出 Linux 控制台当前正在使用的键盘映射?
答案2
不太可能。您可以通过将显示器/键盘直接连接到 BC T 或将另一台机器连接到 KVM 的该端口来排除这种情况。