我的操作系统是 Windows 7。我安装了 cygwin。我想使用以下命令启动 XWin Server startxwin
,但它终止并显示错误:
Couldn't open compiled keymap file /var/lib/xkb/server-0.xkm
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Couldn't open compiled keymap file /var/lib/xkb/server-0.xkm
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Fatal server error: Failed to activate core devices.
Server terminated with error (1). Closing log file.
winDeinitMultiWindowWM - Noting shutdown in progress
startxwin: giving up
startxwin: unable to connect to X server: Connection refused
startxwin: server error
我已经尝试过了/usr/bin/rebaseall -v
,但问题并没有解决并且出现了同样的错误。
有人能帮助我解决这个问题吗?
答案1
使用以下方法验证 xkeyboard-config 是否已正确安装
cygcheck -c xkeyboard-config
检查是否
/usr/bin/xkbcomp
可以从 bash shell 运行。如果失败,请查看是否cygcheck /usr/bin/xkbcomp
报告任何缺失的 DLL。xkbcomp
有一些东西正在干扰 X 服务器调用编译键盘映射的能力。
可能的原因:
您在某些 cygwin 进程运行时运行了 Cygwin 的安装程序来执行更新,然后单击了“检测到正在使用的文件”对话框中的继续选项,然后尝试继续使用 Cygwin 而不按照安装程序的建议重新启动。重新启动。
这是应用程序干扰 Cygwin 的 fork() 模拟的症状之一。请参阅主要 Cygwin 常见问题解答了解已知会干扰 Cygwin 正常运行的软件列表。
这也是由于基地址冲突的 DLL 导致 Cygwin 的 fork() 模拟无法正常运行。安装 rebase 包,阅读 README 文件
/usr/share/doc/Cygwin/rebase-n.n.n.README
,然后按照那里的说明运行rebaseall
。简而言之:停止所有 Cygwin 进程(包括服务)并rebaseall
从窗口中的ash
shell(而不是bash
,这会打开一些 DLL,使其无法写入)运行cmd.exe
。
来源:http://x.cygwin.com/docs/faq/cygwin-x-faq.html#q-failed-to-compile-keymap