张墨轩的技术宅

不忘初心,方得始终

虚拟化产品(一拖二)控制板固件


上篇文章大体介绍了一拖二产品的各个方面,文章提到了控制板是一个核心的控制部件,这里主要从原理图的角度介绍下控制接口,具体的固件代码可以在以下地址找到:

https://github.com/phonegapX/vmctl-stm32

虚拟化产品(一拖二)

最近一直在忙一拖二虚拟化产品,终于完成了一套可以正常使用的DEMO。那么到底什么是一拖二,简单来说就是一台PC机器可以两个人同时使用,各自看电影玩游戏互相不影响,而且性能也不错,就好像每个人都拥有一台真实的电脑一样。为了实现这个目标当然需要利用虚拟化技术,一台真实PC上运行两个虚拟机分别给两人使用,PC主板需要支持VT-D技术,这样才能进行设备直接分配,另外主板休眠状态需支持 S1 和 S3,这样当虚拟机都处于关机状态的时候真实主机可以进入S3休眠状态,可以省电,才有实战价值。然后我们需要在主板上插两片显卡,每片显卡接一台独立的显示器,每个虚拟机独立使用一片显卡,这样才能保证有最好的显示性能。另外还需要在主板上插一块PCIE转USB的扩展卡,因为主板上的USB接口数量有限,如果同时给两台虚拟机用的话会很紧张,无法满足实际需求,所以多插一块PCIE转USB的扩展卡,这样主板上自带的USB接口就可以全部分配给1号虚拟机使用,而PCIE转USB的扩展卡上的USB接口就可以分配给2号虚拟机使用,这样每台虚拟机就都有了足够的USB接口使用了。然后需要2套鼠标键盘(USB接口)分别接到两台虚拟机各自的USB接口上,然后在两台虚拟机各自的USB接口上各自接上一套USB接口的耳机,这样声音也有了。到此硬件似乎都配置好了,其实不然,还有一个非常关键的部件,那就是开关,每台虚拟机都需要一套独立的开关系统可以开机关机重启等而不会互相影响,那要怎么才能实现这个功能,这就需要开发一个控制板,虚拟机对应的开关都接到这块控制板上,然后控制板通过串口与PC主板进行连接,当用户按了某台虚拟机对应的开关后,控制板就能检测到信息,包括是哪台虚拟机的开关被按下了,是按的电源键还是重启键等等,控制板得到这些信息后通过串口传给PC主板,而PC主板上会运行着我们的Hypervisor或者也叫VMM(虚拟机监视器),这里面会包含我们自己开发的一个程序,这个程序会监听串口,所以当这个程序通过串口收到控制板发来的信息后,就知道该如何操控虚拟机了,比如打开2号虚拟机,或者关闭1号虚拟机等等。控制板还有另外一个重要功能就是控制真实的主板开关机。为了研发控制板,又重新拾起好久没有弄过的单片机技术,从原理图到开发板,到固件开发与调试,也弄了挺长时间,当然可以考虑采用51系列单片机,但是我为了与时俱进直接上的STM32平台。至此硬件环境已经都准备好了,接下来就是软件部分了,软件主要指的就是虚拟化软件了,这个还是有一些可选项:

«1»

Powered By Z-Blog 2.2 Prism Build 140101

Copyright phonegap.me Rights Reserved.