虚拟机/x86硬件上QNX终端输入失效,求修复或远程连接方案
我之前在做QNX SDP 7.0的大学项目时,刚好碰到过和你一模一样的问题——系统能正常启动,但本地键盘完全没反应。结合《Building a BSP》文档的操作经验,给你两个可行的解决方案,要么修复本地键盘输入,要么直接配置远程SSH连接绕开这个问题:
方案一:修复VirtualBox本地键盘输入
QNX对PS/2键盘的兼容性比USB键盘好很多,优先从这个方向排查:
检查VirtualBox设备配置
先关闭QNX虚拟机,打开VirtualBox的设置面板:- 进入「系统」→「主板」,确保PS/2控制器处于启用状态
- 进入「设备」→「键盘」,取消勾选「启用USB键盘」,让虚拟机优先使用PS/2键盘
调整BSP启动脚本,加载PS/2键盘驱动
你的启动日志显示已经加载了输入服务,但可能缺少PS/2键盘的专属驱动。找到BSP目录下的启动配置文件(比如ifs-image.cfg或者startup.nsh),添加以下命令:io-hid -d ps2kbd &保存后重新生成镜像文件:
./bios_mkusbimage VBoxManage convertdd input.img output.vdi重启虚拟机后,键盘应该就能正常响应了。如果是USB键盘,可以尝试替换成
io-hid -d usbkbd &,但PS/2的稳定性更高。
方案二:配置SSH远程连接(无需本地键盘)
如果不想折腾本地键盘,直接配置远程SSH是更快捷的方案:
第一步:设置VirtualBox端口转发
关闭虚拟机,进入「网络」→「网卡1」→「高级」→「端口转发」,添加一条规则:- 名称:SSH
- 主机端口:2222
- 子系统端口:22
主机IP和子系统IP留空即可(默认0.0.0.0)
第二步:修改BSP启动脚本,启动SSH服务
找到BSP里的启动脚本(比如etc/rc.d/rc.local或者启动配置文件),添加以下命令来配置网络并启动sshd:# 配置静态IP(如果DHCP没自动分配地址的话) ifconfig en0 192.168.56.10 netmask 255.255.255.0 up # 启动SSH服务 sshd &重新生成镜像并启动虚拟机后,在主机的终端里用以下命令连接:
ssh root@localhost -p 2222QNX默认root用户没有密码,直接就能登录到远程Shell。
额外排查提示
- 仔细查看启动日志里的输入服务相关输出,你的日志里只有「Starting input services ...」,没有报错信息,但如果驱动没正确加载,就不会有键盘响应
- 如果是USB键盘,确保VirtualBox的USB控制器已经启用(「系统」→「USB」),但还是优先推荐PS/2方案
内容的提问来源于stack exchange,提问作者ibanezn04
相关产品推荐
相关产品推荐

