VMware Communities
reesd27
Enthusiast
Enthusiast
Jump to solution

serial port access (for ActiveSync)

I am trying to convert from Parallels to Fusion 2.0. I am stuck on getting my bluetooth serial port working. My end goal is get ActiveSync from my Treo 800W to my guest Windows XP working, but I think the main problem is just getting the serial port working to the guest.

On Parallels I was using the steps outlined at http://www.macosxhints.com/article.php?story=20070111135928615 which were working fine. Essentially I was using a client called SerialClient that somehow mapped my Mac blutooth serial port to /tmp/serial. I then added a serial port to parallels that pointed at /tmp/serial and everything worked.

In vmware I have not been able to figure it out.

I have tried adding a serial port in vmware and pointing it to /tmp/cu.Bluetooth-PDA-Syn, but when vmware starts it says it can not open it.

I have tried using SerialClient to create a /tmp/serial mapping and point vmware at that, but then Serial Client says the resource is busy and can't connect.

Can anyone give me some guidance?

Thanks,

d

0 Kudos
1 Solution

Accepted Solutions
mudaltsov
Expert
Expert
Jump to solution

The serial port option available in the Fusion Settings UI only allows outputting to a file, not to socket/pipe. However, you can manually edit the .vmx file to use a socket, and connect to it using SerialClient. Here are the entries you need to set (make sure to suspend the VM first):

serial0.present = "TRUE"

serial0.fileType = "pipe"

serial0.pipe.endPoint = "server"

serial0.startConnected = "TRUE"

serial0.fileName = "/tmp/serial"

If your "serial0" (COM1) is already in use (for example for Printing), you can use "serial1" (COM2) instead. Of course, if the entry is from you trying to use a file output, you can safely replace those lines. Make sure you don't have duplicate entries for these lines (they may be spread out throughout the .vmx file).

Start the VM first, and make sure the virtual serial device is connected (Virtual Machine -> Serial Port). Then start SerialClient, and connect the Bluetooth serial port to the socket file (it's created by Fusion). If you want to place the socket file somewhere else, change "/tmp/serial" to another path (both in the .vmx and SerialClient).

I was able to use this configuration on two computers to communicate over a bluetooth serial port with HyperTerminal.

View solution in original post

0 Kudos
4 Replies
mudaltsov
Expert
Expert
Jump to solution

The serial port option available in the Fusion Settings UI only allows outputting to a file, not to socket/pipe. However, you can manually edit the .vmx file to use a socket, and connect to it using SerialClient. Here are the entries you need to set (make sure to suspend the VM first):

serial0.present = "TRUE"

serial0.fileType = "pipe"

serial0.pipe.endPoint = "server"

serial0.startConnected = "TRUE"

serial0.fileName = "/tmp/serial"

If your "serial0" (COM1) is already in use (for example for Printing), you can use "serial1" (COM2) instead. Of course, if the entry is from you trying to use a file output, you can safely replace those lines. Make sure you don't have duplicate entries for these lines (they may be spread out throughout the .vmx file).

Start the VM first, and make sure the virtual serial device is connected (Virtual Machine -> Serial Port). Then start SerialClient, and connect the Bluetooth serial port to the socket file (it's created by Fusion). If you want to place the socket file somewhere else, change "/tmp/serial" to another path (both in the .vmx and SerialClient).

I was able to use this configuration on two computers to communicate over a bluetooth serial port with HyperTerminal.

0 Kudos
admin
Immortal
Immortal
Jump to solution

Here are the entries you need to set (make sure to suspend the VM first):

Don't you need to shut down, not suspend, a virtual machine before editing the .vmx file?

0 Kudos
reesd27
Enthusiast
Enthusiast
Jump to solution

Thanks! That did it.

Note, I had to disable the printer serial port and use serial0. For some reason I could not get ActiveSync to connect over COM2.

I did notice some "serial0: Overrun" entries in the vmware log. What settings are you using for SerialClient? I have 115200,8,None,1 and am wondering if I should turn down the baud rate a bit or add some flow control to avoid the overrun.

Thanks again!

d

0 Kudos
mudaltsov
Expert
Expert
Jump to solution

Don't you need to shut down, not suspend, a virtual machine before editing the .vmx file?

Yes, generally the VM needs to be shut down to add new hardware, but it seems to work even with a suspended VM for me...

Thanks! That did it.

Note, I had to disable the printer serial port and use serial0. For some reason I could not get ActiveSync to connect over COM2.

You should be able to re-enable Printing, and it will add another "thinprint" serial port. I believe it should work on COM2 just as well. COM3 and COM4 can be added too, but they don't seem to be present in the Device Manager, so I don't think Windows will use them correctly.

I did notice some "serial0: Overrun" entries in the vmware log. What settings are you using for SerialClient? I have 115200,8,None,1 and am wondering if I should turn down the baud rate a bit or add some flow control to avoid the overrun.

Try adding serial0.tryNoRxLoss = "TRUE" to the .vmx file. It may prevent some of the overrun issues when communicating with a socket. I'm not sure whether flow control settings in Serial Client would change much. I think they might only apply to communication over the serial port device, not the socket. I haven't tried to send a lot of data through the serial port, and I'm not actually syncing a physical device, so you might have a better chance of figuring out if flow control helps or not.

Another setting to try is serial0.yieldOnMsrRead = "TRUE", which will yield the CPU when the guest polls for data. It may help with CPU usage if ActiveSync is polling the serial port instead of using interrupts (I'm not sure which one it uses). Though I don't know if it will help with data loss or not.

0 Kudos