Macos 无法从OSX主机上的Ubuntu来宾从串行端口读取数据

Macos 无法从OSX主机上的Ubuntu来宾从串行端口读取数据,macos,ubuntu,serial-port,virtual-machine,pipe,Macos,Ubuntu,Serial Port,Virtual Machine,Pipe,我正在OSX Mavericks主机上的VirtualBox中使用Ubuntu12.04。我正试图通过串口从Arduino读取数据。我在vm中启用了端口1,设置为: 端口号:COM1 IRQ:4 I/O端口:0x3F8端口模式:断开连接。创建管道(未勾选)端口/文件路径:/dev/tty.submodem1411 在虚拟机中,可以找到端口。当我使用setserial尝试查找端口时,输出为: /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/t

我正在OSX Mavericks主机上的VirtualBox中使用Ubuntu12.04。我正试图通过串口从Arduino读取数据。我在vm中启用了端口1,设置为: 端口号:COM1 IRQ:4 I/O端口:0x3F8端口模式:断开连接。创建管道(未勾选)端口/文件路径:/dev/tty.submodem1411

在虚拟机中,可以找到端口。当我使用setserial尝试查找端口时,输出为:

/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
虽然可以找到端口,但它无法从串行端口获取数据。我已经阅读了virtualBox的手册,并理解这是因为我取消了端口模式断开的勾选。但是,如果选择主机设备或主机管道,我真的不知道如何正确设置文件路径。 Arduino串行端口在主机系统中称为
tty.submodem1411
。我试过的是: 1) 选择主机管道并勾选创建管道,并将文件路径设置为
/dev/tty.submodem1411
/dev/ttyS0
。但是,虚拟机无法启动(它停止响应,我只能强制退出) 2) 选择主机设备并将文件路径设置为
/dev/tty.submodem1411
/dev/ttyS0
,在这种情况下,“创建管道”变灰。当我尝试启动虚拟机时,会出现一个状态栏,并显示文本“starting virtual machine”,但它也失去了响应,并且无法以这种方式打开机器


我已经在主机系统上安装了管道,但不知道如何在虚拟机和主机系统之间创建连接。如果有人能帮忙,我将不胜感激

我的操作系统设置和你一样(Ubuntu12.04在Mavericks上的VirtualBox虚拟机中运行),但我在使用TI Tiva C系列启动板(类似于Arduino Uno)时遇到了虚拟机冻结的消息“Starting virtual machine…”。要解决这一特殊问题:

  • 连接设备并在运行VM之前将其打开。这将在/dev(在您的例子中是/dev/tty.submodem1411)中创建USB设备
  • VM设置
    端口
    串行端口
    端口1
    ,选中
    启用串行端口
    ,选择
    COM1
    作为
    端口号
    ,选择
    主机设备
    作为
    端口模式
    ,并在
    端口/文件路径
    中输入USB设备的路径
  • VM在“启动虚拟机…”时陷入困境的解决方法:运行一个串行端口通信程序(如minicom),并将其配置为使用/dev/tty.submodem1411。然后让它将初始化字符串发送到设备(minicom中的“初始化调制解调器”)。如果保存了此配置,则只需运行minicom—它将在启动时自动初始化设备
  • 运行虚拟机。来宾操作系统现在将启动(多亏了第3步-这似乎是一个VirtualBox bug)。来宾操作系统中的串行端口现在是/dev/ttyS0
  • 但是:


    以下内容可能与Arduino无关,但FWIW,这是我对启动板编程所做的:在
    VM设置
    端口
    USB
    ,选中
    启用USB控制器
    ,然后单击
    从设备添加过滤器
    ,然后选择您的设备。启动来宾操作系统时,如果设备已打开,您将无法访问它(您的设备将不会在VirtualBox VM菜单项中被选中
    设备
    USB设备
    )。只需重启主板(或拔下/插入)和来宾操作系统即可访问设备(设备将在上述菜单中进行检查)。现在创建了一个新的串行设备(在我的示例中称为/dev/ttyACM0),它可以用于与板通信。如果这样做,则不需要步骤2的串行端口设置(因此,不需要步骤3的解决方法)。如果保留步骤2和步骤3,则应该能够使用/dev/ttyS0和/dev/ttyACM0与设备通信。希望这能有所帮助。

    我的操作系统设置和你一样(Ubuntu12.04在Mavericks上的VirtualBox虚拟机上运行),但在使用Tiva C系列启动板(类似于Arduino Uno)时,我遇到了虚拟机冻结的消息“启动虚拟机…”。要解决这一特殊问题:

  • 连接设备并在运行VM之前将其打开。这将在/dev(在您的例子中是/dev/tty.submodem1411)中创建USB设备
  • VM设置
    端口
    串行端口
    端口1
    ,选中
    启用串行端口
    ,选择
    COM1
    作为
    端口号
    ,选择
    主机设备
    作为
    端口模式
    ,并在
    端口/文件路径
    中输入USB设备的路径
  • VM在“启动虚拟机…”时陷入困境的解决方法:运行一个串行端口通信程序(如minicom),并将其配置为使用/dev/tty.submodem1411。然后让它将初始化字符串发送到设备(minicom中的“初始化调制解调器”)。如果保存了此配置,则只需运行minicom—它将在启动时自动初始化设备
  • 运行虚拟机。来宾操作系统现在将启动(多亏了第3步-这似乎是一个VirtualBox bug)。来宾操作系统中的串行端口现在是/dev/ttyS0
  • 但是:

    以下内容可能与Arduino无关,但FWIW,这是我对启动板编程所做的:在
    VM设置
    端口
    USB
    ,选中
    启用USB控制器
    ,然后单击
    从设备添加过滤器
    ,然后选择您的设备。启动来宾操作系统时,如果设备已打开,您将无法访问它(您的设备将不会在VirtualBox VM菜单项中被选中
    设备
    USB设备
    )。只需重启主板(或拔下/插入)和来宾操作系统即可访问设备(设备将在上述菜单中进行检查)。介绍了一种新的串行设备