我想使用Arduino开发,但我想在Ubuntu Linux中进行,我想在使用VirtualBox或VMWare Player在我的Windows计算机上托管的Ubuntu VM上进行。
有可能这样做吗?我是否有任何特殊要求使主机操作系统(Windows)的Arduino连接USB端口可以访问来宾操作系统(Ubuntu / virtualbox)的USB端口?
答案 0 :(得分:5)
是的,VirtualBox允许您将本地USB设备呈现给虚拟机。
关闭VM电源(未保存),转到“设置”页面... USB。启用USB控制器(如果尚未启用)。然后,您可以创建一个新的设备过滤器(带有+的USB插头)并选择适当的设备。该设备将始终连接到VM,这可能是也可能不是。
如果已启用USB,您可以在正在运行的VM上添加/删除设备(非常类似于真机)。使用Devices ... USB菜单,选择要连接到VM的设备。
答案 1 :(得分:3)
实际上,我已经尝试了@TevoD建议的方法,并且运行 lsusb 确实显示FTDI usb设备在Virtualbox中得到了识别,但是,我一直在失败。
最后,在Virtualbox论坛的this post中找到了解决方案。这确实解决了这个问题,我现在可以在我的Crunchbang'Waldorf'clubVM(一个基于Debain的超轻发行版)中使用Arduino IDE(或者通常是命令行的avrdude) - 在Windows 7 Professional 64上运行位主机。
由于该链接有一天可能会消失,或者可能落后于认证方案,因此关键步骤是:
更改默认分配的FTDI USB串行端口的COM端口号。这通常是需要的,因为Virtualbox在处理两位数的COM端口号时存在一些问题(例如COM11,COM23等不受欢迎,但COM1-COM9没问题)。要进行此更改,您需要确保FTDI USB串行设备尚未声明并连接到Virtualbox guestVM,即执行guestVM关闭步骤。通过Win7 Device-Manager>端口> COMxy(其中'xy'是默认端口#),选择'高级设置',然后更改COM端口号。在1-9之间成为一个免费的。
接下来,在Virtualbox控制台中,更改guestVM属性,并启用串行端口设置,即将FTDI USB串行转换器视为guestVM中的串行端口,而不是USB设备。因此,内部串行端口驱动程序用于Linux,而不是usb-serial(FTDI驱动程序)。因此,如果COM端口#为2,我们将端口设置为COM2,将模式设置为Host-Device,将路径/文件设置为“COM2:”(不要忘记尾随冒号,但当然,没有“”引号)。
重新启动VM,我还必须重新启动主机,然后你就可以了。
但是,如果此方法不起作用 - 它在我的上网本上不起作用。这alternative method described here确实有用。当然,它需要通过可选的“扩展包”提供专有的USB 2.0 EHCI支持。
答案 2 :(得分:1)
尚未测试,但是一旦安装了VirtualBox插件,应该可以通过VirtualBox将USB设备从Windows映射到Ubuntu。我想Windows必须知道路由设备,所以尝试在Windows和Ubuntu上安装FTDI芯片驱动程序并尝试连接你的主板(看看Windows和Ubuntu是否找到了设备)。
你提到C / C ++适合你,所以直接在Ubuntu上安装并使用你的C / C ++设置而不是Arduino IDE可能要简单得多。 在Arduino Playground上有关于如何设置Ubuntu以及Development Tools guide
的指南您可能还会发现this question有帮助。 也请尝试Electronics网站,因为它似乎更适合您的问题。