最近在一些嵌入式开发群里面或者论坛上看见一些朋友在讨论怎么在虚拟机里面使用minicom与开发板通讯,毕竟还有好多像我这样在虚拟机里面用Linux的朋友。下面的方法仅是本人暂时使用并且还能行得通的方法,希望大家还能找到更好的方法,不过别忘了也给小弟通知一下啊,记得开源精神哦,?
开始之前先说一下自己的系统吧,其实没什么特别的估计大家也都是用这些吧。
VMWare5.5
RedHat9 Linux
VMWare设置
好多人说VMWare里面不能用串口通讯是因为感觉虚拟机不能利用物理主机的物理串口,开始我也是这么认为,后来发现虚拟机是可以添加串口设备的只是默认没有安装罢了,唉,以前没有注意捣鼓虚拟机,仅仅利用了最基本的一点点功能罢了。
添加方式如下:
在虚拟机开机之前先选择Edit virtual machine settings,在弹出对话框里面你会发现下面有个Add…按钮,点击这个就可以添加串口设备了。
首先会出来一个Add Hardware Wizard向导,根据这个向导选择串口设备Serial Port即可,记得要使用实际的物理设备和上电就连结上哦?,这些设置好确定完就可以使用了。
注意:有时候有些朋友会发现在打开Linux的时候说你的串口COM不能用,那你就要检查一下你有没有串口当然也不能被其他设备或软件占用哦,比如说超级终端(要关掉的),当然,你的串口也要设置正确,不要就一个串口你却选择了COM2之类的低级错误哈,?
好了,下面就进行Linux下的minicom设置吧,应该能顺利进入到Linux系统了吧,下面的步骤也都很简单,一步一步地来吧,good luck!~ ?
Linux系统的minicom设置
方法一:
在网上搜索资料在linuxeden看到einstein回答一个关于在vmware上实现minicom的问题后参照修改得已完成,下面是具体方法:
我的redhat9里面默认在/etc下面是没有minirc.dfl这个默认配置文件的,
所以在vi /etc/minirc.dfl 之后添加如下内容:
pr port /dev/ttyS0
pu baudrate 115200
pu minit
pu mreset
pu rtscts No
然后保存退出就可以用root身份运行minicom了,在命令行输入minicom之后就可以开启开发板的开关,呵呵,梦寐以求的
Welcome to minicom 2.00.0
OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Jan 25 2003, 00:15:18.
Press CTRL-A Z for help on special keys
boot 1.0 (Jan 6 2005 – 17:48:32)
Uncompressing image…
U-Boot 0.3.2 (Jan 12 2005 – 14:51:54)
U-Boot code: 21F00000 -> 21F12DF4 BSS: -> 21F16924
DRAM Configuration:
Bank #0: 20000000 32 MB
Intel FLash
id=0x18……….
Intel FLash1
Flash: 32 MB
……
出现了。
方法二:
这个方法二也是根据方法一的启发得到的,在这里还得感谢einstein同志!
这个方法看起来麻烦一点,其实只要你稍微会一点minicom的命令选项,一点也不麻烦!感觉比第一种方法还要简单的多,也是我知道点minicom的命令选项之后才试验出来的。具体做法如下:
在终端以root身份输入命令:minicom –s
你会发现屏幕上出现一些警告信息,说找不到默认的配置文件不要管他,接着他会出现一个配置菜单选项,如下:
Filenames and paths
File transfer protocols
Serial port setup
Modem and dialing
Screen and keyboard
Save setup as dfl
Save setup as..
Exit
Exit from Minicom
选择Serial port setup之后会弹出串口设置菜单选项,如下:
A – Serial Device : /dev/ttyS1
B – Lockfile Location : /var/lock
C – Callin Program :
D – Callout Program :
E – Bps/Par/Bits : 38400 8N1
F – Hardware Flow Control : Yes
G – Software Flow Control : No
Change which setting?
按下A把ttyS1改成ttyS0,因为我的机器只有一个串口COM1,如果你采用其他的自己相应设置。按下E,选择Bps/Par/Bits为115200 8N1,我觉得一般的开发板都要这么设置吧。然后再按下F把Yes改成No之后退出。
退出前的结果应该是下面这样子的吧:
A – Serial Device : /dev/ttyS0
B – Lockfile Location : /var/lock
C – Callin Program :
D – Callout Program :
E – Bps/Par/Bits : 115200 8N1
F – Hardware Flow Control : No
G – Software Flow Control : No
Change which setting?
退出后选择如下的Save setup as dfl保存成默认的读取配置文件即可。
Filenames and paths
File transfer protocols
Serial port setup
Modem and dialing
Screen and keyboard
Save setup as dfl
Save setup as..
Exit
Exit from Minicom
最后退出设置菜单就可以使用minicom与开发板通讯了。
PS:细心的朋友也许你会发现在/etc/minirc.dfl文件里面用方法一和方法二得到的结果不一样,其实我也不知道einstein兄添加着两行
pu minit
pu mreset
有什么作用。
一度按照这个步骤配置以后我还是不能接受和发送数据,结果一看是因为我的超级终端还开着,占用了com1,导致虚拟机中minicom无法使用com1,关闭超级终端后,就OK了
好不容易能用了,结果每次传输文件都是超时,传输失败,在网上一搜是因为vivi中
xmodem的初始化时间设置的太短了,在vivi下使用param set xmodem_timeout
2000000来设置xmodem的超时时间就可以了,修改完以后传输就没问题了。
我写这篇文章的目的就是为了实现用VMWare里面的Linux的minicom与开发板通讯,刚刚能实现就写下了本文,错误及不尽人意之处在所难免,此文仅作抛砖引玉只用,恭候各位大侠赐教,小弟在此不胜感谢。