QEMU虚拟机中多客户机系统键盘按键失效问题咨询
解决QEMU中老客户机系统键盘按键失效的问题
这种QEMU下老客户机(比如MS-DOS 6.22、OS/2 Warp 4.52、Windows 98 SE)键盘按键失效的情况,我之前碰到过不少,结合你描述的宿主机和真实硬件都正常的情况,问题肯定出在QEMU的键盘模拟配置或者宿主机权限上,给你几个针对性的解决方案:
强制指定键盘设备类型
老系统对PS/2或USB键盘的兼容性不同,尝试在启动QEMU时添加键盘相关参数:- 强制使用USB键盘:
qemu-system-i386 -hda win98.img -device usb-kbd - 强制使用PS/2键盘:
qemu-system-i386 -hda dos.img -device ps2-kbd - 同时指定键盘布局(比如美式英文):
qemu-system-i386 -hda os2.img -k en-us
- 强制使用USB键盘:
修复宿主机输入设备权限
有时候QEMU没有权限访问宿主机的输入设备,导致按键无法传递到客户机。执行以下命令把当前用户加入input组,然后注销重新登录:sudo usermod -aG input $USER升级QEMU版本
Ubuntu 17.10自带的QEMU版本比较老旧,可能存在老系统的键盘模拟bug。你可以尝试添加第三方PPA或者编译新版本的QEMU,新版本通常会修复这类兼容性问题。针对超老系统的特殊参数
对于MS-DOS这类非常老的系统,试试用旧版QEMU的USB键盘参数:qemu-system-i386 -hda dos.img -usbdevice keyboard
另外,你还可以快速检查下QEMU窗口是否获得了焦点——有时候按键失效只是因为窗口没激活,但你说所有按键都不行,这个可能性应该不大,但还是可以确认下。
内容的提问来源于stack exchange,提问作者James




