![需要访问硬件的 Windows 程序](https://linux22.com/image/1008368/%E9%9C%80%E8%A6%81%E8%AE%BF%E9%97%AE%E7%A1%AC%E4%BB%B6%E7%9A%84%20Windows%20%E7%A8%8B%E5%BA%8F.png)
我使用的是联想 Y720 笔记本电脑,需要一个名为 Lenovo Nerve Sense 的特定程序才能点亮键盘背光。到目前为止,我尝试过:
- Wine 不起作用,它说未找到 system32 中的 dllhost.exe,即使该文件实际上位于 Wine 目录中。
- 我尝试了 PlayOnLinux,其结果当然与 Wine 相同。
- 我尝试在 Oracle Virtual Box 中运行该程序,它可以安装该程序,但程序本身无法检测到我的笔记本电脑是联想笔记本电脑,因为它在虚拟机内。
有没有办法,可以在虚拟机中运行程序,同时程序可以访问虚拟机本身。我知道这违反了安全性,但我真的只需要运行这个程序,而不需要上网等。
光确实不是没有这个程序也无法工作,因为它不是基于固件的,而且 Ubuntu 甚至无法检测到我的键盘 LED。
答案1
这种基于 Windows 的软件无法通过通常用于运行 Windows 软件的任何方法(虚拟化 Windows 或 WINE)与系统硬件配合使用。这是由于每种软件运行时方法固有的局限性造成的,遗憾的是无法以任何安全/可靠/合理的方式解决。
虚拟化 Windows:它不适用于这种类型的硬件/软件集成。
键盘背光位于系统硬件级别。虚拟机无法与主机硬件建立这种级别的互连,因此无法直接与主机硬件交互。这就排除了使用虚拟机来实现这一点的可能性。
WINE:由于 Wine 使用的用户空间(而不是管理员/系统服务级别)运行时固有的系统/硬件控制/访问限制/权限,因此这不会起作用
同时,Wine 无法接触或访问主机上所需的硬件资源和修改调用,以处理此类硬件互操作性。简而言之,这是因为,访问硬件调用 (a) 超出了 Wine 的开发范围,并且 (b) 如果不以超级用户身份运行 Wine,就无法真正做到这一点,而 Wine 被积极地编程为不允许在最近的版本中。
因此,除非联想发布该软件的 Ubuntu 版本,否则您不太可能能够让该软件(以及键盘背光)正常工作,这将影响键盘使用背光的能力。(话虽如此,应该有一种方法可以让背光“始终打开”或“始终关闭”,因此您可能会发现类似的东西能从Windows端配置设置默认权限/配置有背光)。
另一种可能性是,有人某处逆向工程出了一个功能大致相同的解决方案。但是,这超出了原始问题的范围(“有没有办法在虚拟机内运行一个可以访问主机系统本身硬件的程序”),因此超出了此答案的范围(您可以自行搜索此类逆向工程解决方案)。