曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4651|回复: 1
打印 上一主题 下一主题

在 VirtualBox 中使用其串口功能

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2012-10-26 21:01:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
走 VirtualBox 中是有串口设置功能的,就一般应用而言,我们不会用到串口,即使是现代的 PC 也早已抛弃串口,但是如果你是个喜欢鼓捣一些底层东西的人,那使用串口就显得有必要了。那么应该如何在虚拟机里设置并使用串口功能呢?下面以一个实例图解这个过程。

虚拟机 VirtualBox 是 Windows 版本。

1. 首先,先建一个虚拟机,使用的是 CentOS6.2 的 ISO 文件,这个过程不进行详细描述。

2. 下载一个名为  "VMWare Serial Line Gateway" 的模拟串口连接的工具,下载地址为:也可以从下面附件下载:


以及源代码文件:



VMWare Workstation 本身的一个特性是,可以重定向一个双向串口到  Windows NT/2000/XP 的一个命名管道上 --- 工具作者正是利用该特性,开发了一个可以将命名管道重定向到 TCP 端口上的工具(反过来也一样),这个工具就是 "VMWare Serial Line Gateway" 。可以放心的是,VirtualBox 也具有 VMWARE WorkStation 一样的功能。

也就是说,将该工具安装成为一个微型服务器,它可以提供 TCP 到串行通信的一个桥梁。比如,可以在宿主机上通过 telnet (基于 TCP 协议)连接到该服务器,然后服务器将请求和数据转换为串行线路可识别的形式,反之亦然。

3. 安装  "VMWare Serial Line Gateway" 。我们可以直接将其安装为 Windows 上的服务,我这里的环境是 Windows 7 X64 ,该工具在其上运行一切正常。安装方法为:
B:/vmwaregateway.exe /R /V
其中 /R 参数表示安装后,将服务器注册为 Windows 服务;/V 模式表示详细模式。
安装好后,启动一下该服务,命令是:
net start "vmwaregateway"

4. 下面,在虚拟机里进行串口设置,如下图所示:


上图的设置部分灰色是因为虚拟机此时处于运行状态,因此不能设置。你需要设置时,应该在非运行状态,设置内容按图上填写即可,注意上面“端口文件位置”里的内容填写,实际上就是管道文件的名字。

4. 启动 VirtualBox 虚拟机安装程序:


在出现上图所示的安装界面时,按下 "ESC" 键,然后出现下图:


在上面的 boot: 提示符后面输入: linux text console=ttyS0
即打算以文本模式,从串口安装系统。
输入完并回车后,出现下面界面,安装过程暂停,这表示要开始进入用户交互操作阶段:



5. 使用串口安装系统

现在,可以使用 Windows 里的 telnet 工具连接串口并安装系统了。需要提到的是,Windows7 中默认并没有装有 Telnet 客户端,我们需要另外安装,安装方法是:
控制面板 --> 程序 --> 程序和功能 --> 打开或关闭 Windows 功能 ---> 选择安装"Telnet 客户端"

安装完后,我们使用 Telnet 来连接了。在安装
"VMWare Serial Line Gateway" 时,我们注意到,它所建立的服务所用的 TCP 端口为 567 ,因此如下进行连接:


不出意外的话,连接是成功的。但是连接后,你可能会看到命令行窗口黑乎乎的一片,不要紧,按下回车既可以看到安装界面:


如上图所示,显示情况比较悲剧,许多地方都是乱码。这是因为简体中文系统所用内码为 GB2312,而 Linux 上用的是 UTF8 ,因此此处建议使用使用 putty 来连接,putty 设置如下图所示:


连接后的情况如下图所示:



到此,实际上已经结束了该实验的演示。但是有人会疑问,我如果从别的机子上进行 telnet 安装吗?答案是,直接是不可以的。这是因为,该网关服务绑定的只是 localhost 。但是有没有办法在别的机子上也能使用该功能呢?答案是肯定的。这时候需要借用到 Windows 里一个很好用的网络工具,其名 nc ,号称网络瑞士军刀。经常玩入侵抓鸡的朋友对此工具的应用应该相当熟悉。但我们这里使用她来使能远程连接串口的功能:

1. 在本机如下运行命令:


上面的命令表示,在本机监听2012 这个端口(供远程主机使用),如果有连接进来,那么再执行一个连接到 localhost 的 567 端口的动作(通过 -e 选项的指定)。

2. 在远程主机上同样使用 putty 来连接:


上图的 putty 窗口中,192.168.1.101 正是宿主机,putty 设置的连接端口是 2012 。

下面附上 nc 的附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
沙发
 楼主| 发表于 2012-10-28 19:49:03 | 只看该作者

串口裸文件选项

上面,使用的串口模式为”主机管道“,如果想记录串口信息保存到文本中,那么可以将串口模式改为”裸文件“(raw file),如下图所示:


在上图中,我们使用了第 2 个串口并将端口模式选择为”裸文件“,然后在”端口/文件位置“里填入一个文本文件的全路径,其意就是要将串口的输出信息都打印到该文件中,比如上面的 B:\\serial_report.txt 。

确定退出后,启动安装虚拟系统,在进入安装主界面时,按下 ESC 键,然后在 boot: 提示符后输入:linux text console=ttyS1 ,回车确定:



接着使用 putty 连接,这时候在 B:\\ 里会看到生成的串口信息记录文件 serial_report.txt :

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-6-2 17:02 , Processed in 0.087329 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表