Mac OS上使用串口(serial port)和虚拟机通讯
来源:互联网 发布:网络交友有利有弊 英语 编辑:程序博客网 时间:2024/06/11 17:34
由于工作原因,需要模拟网络设备,要用到串口连接,特地研究了一下在Mac OS 上的使用方法。
1、 环境
(1) macOS Sierra 10.12
(2) VMware fusion 8.5
(3) Cisco router ISO
2、 配置
a. 在macOS上安装socat,可以通过macport软件:
b. 配置VMware
serial0.fileName = "/path/to/serialPort" //对应上一步中新建的文件路径
serial0.present = "TRUE"
3、 连接
a. 开启虚拟机,当提示如下内容时,选择“覆盖管道”:
b. 打开终端,输入:
MacBook-Pro:~ shihui$ socat -d -d /path/to/serialPort PTY //这里是生成一个转换文件
成功后会显示:
MacBook-Pro:~ hui$ socat -d -d /path/to/serialPort PTY
2017/01/06 11:37:59 socat[1485] N opening connection to LEN=38 AF=1 "/path/to/serialPort "
2017/01/06 11:37:59 socat[1485] N successfully connected from local address LEN=16 AF=1 ""
2017/01/06 11:37:59 socat[1485] N successfully connected via
2017/01/06 11:37:59 socat[1485] N PTY is /dev/ttys001
2017/01/06 11:37:59 socat[1485] N starting data transfer loop with FDs [5,5] and [6,6]
c. 再打开另一个终端进程,作为和虚拟机通信窗口:
(1)第一种连接方法
Last login: Fri Jan 6 11:25:39 on ttys002
MacBook-Pro:~ hui$ screen /dev/ttys001 9600
//ttys001对应上一步中PTY生成的入口
(2)第二种连接方法
a. 按“control + c“关闭上一步中的进程,会显示:
MacBook-Pro:~ hui$ socat -d -d /path/to/serialPort PTY
2017/01/06 11:37:59 socat[1485] N opening connection to LEN=38 AF=1 "/path/to/serialPort "
2017/01/06 11:37:59 socat[1485] N successfully connected from local address LEN=16 AF=1 ""
2017/01/06 11:37:59 socat[1485] N successfully connected via
2017/01/06 11:37:59 socat[1485] N PTY is /dev/ttys001
2017/01/06 11:37:59 socat[1485] N starting data transfer loop with FDs [5,5] and [6,6]
^C2017/01/06 16:21:07 socat[2167] N socat_signal(): handling signal 2
2017/01/06 16:21:07 socat[2167] N exiting on signal 2
2017/01/06 16:21:07 socat[2167] N socat_signal(): finishing signal 2
2017/01/06 16:21:07 socat[2167] N exit(130)
MacBook-Pro:~ hui$
b. 映射到本地的TCP 8888端口,如果提示端口被占用,就换其它端口
MacBook-Pro:~ hui$ socat /path/to/serialPort tcp-listen:8888
c. 再打开一个终端进程,输入以下内容:
MacBook-Pro:~ hui$ telnet 127.0.0.1 8888
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
下面就可以和虚拟机中的宿机进行交流了。
4、 troubleshooting
a. 新建文件夹和文件时,第一,不要在虚拟机文件目录中,必须位于其他目录;第二,需要修改文件夹权限--右键属性,修改“显示简介”里面的共享与权限,全部改成“读与写”。
否则会出现下面错误:
MacBook-Pro:~ hui$ socat -d -d /Documents/Virtual\ Machines.localized/console1 PTY
2017/01/06 11:25:35 socat[1393] N opening regular file " /Documents/Virtual Machines.localized/console1" for reading and writing
2017/01/06 11:25:35 socat[1393] N PTY is /dev/ttys001
2017/01/06 11:25:35 socat[1393] N starting data transfer loop with FDs [5,5] and [6,6]
2017/01/06 11:25:44 socat[1393] N socket 1 (fd 5) is at EOF
2017/01/06 11:25:44 socat[1393] N socket 1 (fd 5) is at EOF
2017/01/06 11:25:45 socat[1393] N exiting with status 0
MacBook-Pro:~ hui$
这个时候是无法和虚拟机宿机交互的。
b. 个人认为在virtualbox和parallel desktop虚拟机上也可以使用上述方法,不过还没有做实验。
1、 环境
(1) macOS Sierra 10.12
(2) VMware fusion 8.5
(3) Cisco router ISO
2、 配置
a. 在macOS上安装socat,可以通过macport软件:
(1) MacBook-Pro:~ hui$ port search socat
(2) socat @1.7.3.1_1 (sysutils, net)
(3) netcat on steroids
(4) MacBook-Pro:~ $
(5) MacBook-Pro:~ hui$ sudo port install socat
b. 配置VMware
(1)新建一个文件夹,并且新建一个文件,如:"/path/to/serialPort"
(2)关闭已经建好过的虚拟机,添加设备-->串行设备-->请创建一个文件,以存储虚拟串行端口的输出
这里选择上一步中建的文件。
(3)修改“.vmx”后缀的文件,例如:
MacBook-Pro:~ hui$ sudo vim Documents/Virtual\Machines.localized/pmod.vmwarevm/pmod.vmx
Password:
MacBook-Pro:~ hui$
找到并修改以下内容:
serial0.fileType = "pipe"serial0.fileName = "/path/to/serialPort" //对应上一步中新建的文件路径
serial0.present = "TRUE"
3、 连接
a. 开启虚拟机,当提示如下内容时,选择“覆盖管道”:
b. 打开终端,输入:
MacBook-Pro:~ shihui$ socat -d -d /path/to/serialPort PTY //这里是生成一个转换文件
成功后会显示:
MacBook-Pro:~ hui$ socat -d -d /path/to/serialPort PTY
2017/01/06 11:37:59 socat[1485] N opening connection to LEN=38 AF=1 "/path/to/serialPort "
2017/01/06 11:37:59 socat[1485] N successfully connected from local address LEN=16 AF=1 ""
2017/01/06 11:37:59 socat[1485] N successfully connected via
2017/01/06 11:37:59 socat[1485] N PTY is /dev/ttys001
2017/01/06 11:37:59 socat[1485] N starting data transfer loop with FDs [5,5] and [6,6]
c. 再打开另一个终端进程,作为和虚拟机通信窗口:
(1)第一种连接方法
Last login: Fri Jan 6 11:25:39 on ttys002
MacBook-Pro:~ hui$ screen /dev/ttys001 9600
//ttys001对应上一步中PTY生成的入口
(2)第二种连接方法
a. 按“control + c“关闭上一步中的进程,会显示:
MacBook-Pro:~ hui$ socat -d -d /path/to/serialPort PTY
2017/01/06 11:37:59 socat[1485] N opening connection to LEN=38 AF=1 "/path/to/serialPort "
2017/01/06 11:37:59 socat[1485] N successfully connected from local address LEN=16 AF=1 ""
2017/01/06 11:37:59 socat[1485] N successfully connected via
2017/01/06 11:37:59 socat[1485] N PTY is /dev/ttys001
2017/01/06 11:37:59 socat[1485] N starting data transfer loop with FDs [5,5] and [6,6]
^C2017/01/06 16:21:07 socat[2167] N socat_signal(): handling signal 2
2017/01/06 16:21:07 socat[2167] N exiting on signal 2
2017/01/06 16:21:07 socat[2167] N socat_signal(): finishing signal 2
2017/01/06 16:21:07 socat[2167] N exit(130)
MacBook-Pro:~ hui$
b. 映射到本地的TCP 8888端口,如果提示端口被占用,就换其它端口
MacBook-Pro:~ hui$ socat /path/to/serialPort tcp-listen:8888
c. 再打开一个终端进程,输入以下内容:
MacBook-Pro:~ hui$ telnet 127.0.0.1 8888
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
下面就可以和虚拟机中的宿机进行交流了。
4、 troubleshooting
a. 新建文件夹和文件时,第一,不要在虚拟机文件目录中,必须位于其他目录;第二,需要修改文件夹权限--右键属性,修改“显示简介”里面的共享与权限,全部改成“读与写”。
否则会出现下面错误:
MacBook-Pro:~ hui$ socat -d -d /Documents/Virtual\ Machines.localized/console1 PTY
2017/01/06 11:25:35 socat[1393] N opening regular file " /Documents/Virtual Machines.localized/console1" for reading and writing
2017/01/06 11:25:35 socat[1393] N PTY is /dev/ttys001
2017/01/06 11:25:35 socat[1393] N starting data transfer loop with FDs [5,5] and [6,6]
2017/01/06 11:25:44 socat[1393] N socket 1 (fd 5) is at EOF
2017/01/06 11:25:44 socat[1393] N socket 1 (fd 5) is at EOF
2017/01/06 11:25:45 socat[1393] N exiting with status 0
MacBook-Pro:~ hui$
这个时候是无法和虚拟机宿机交互的。
b. 个人认为在virtualbox和parallel desktop虚拟机上也可以使用上述方法,不过还没有做实验。
0 0
- Mac OS上使用串口(serial port)和虚拟机通讯
- Mac OS 串口 Serial Port 读写
- 串口通讯demo-serial port communication 供参考
- Mac OSx 如何使用串口终端?超级终端?minicom?serial port?
- 在VMware虚拟机机下,为什么添加串口,只有serial port 2, 没有serial port
- 向VMWare虚拟机添加一个串口设备(serial port)
- 向VMWare虚拟机添加一个串口设备(serial port)
- 向VMWare虚拟机添加一个串口设备(serial port)
- C#serial Port串口处理~
- Ubuntu 虚拟串口 Serial port
- android 串口(serial port)没有权限问题
- MAC OS 系统 macbook上使用USB转串口线
- arduino开发板在MAC OS X El Capitan中找不到串口的问题解决(CH340 CH341 serial )
- WIZnet推出虚拟串口(Virtual Serial Port)
- 串口通信Serial Port类C++实现
- 串口通信Serial Port类C++实现
- 虚拟串口程序Virtual.Serial.Port.Driver
- Android 操作串口 (android serial port api)
- Edward's skill xmind picture in 2017
- 淘宝开发
- Linux设备模型——设备驱动模型和sysfs文件系统解读
- Vim操作摘记-光标移动、Mark、选中
- 分层架构设计思想
- Mac OS上使用串口(serial port)和虚拟机通讯
- java 字符串截取的三种方式
- WebStorm强大的调试JavaScript功能
- ZIP/RAR解压缩(JAVA)
- MVC的开发模式
- ShowSDK一键分享
- 自定义Dialog 去掉标题
- SPOJ LEONARDO Leonardo Notebook
- ArcGIS Server如何以缓存的方式发布地图