com1 access denied - win xp

Michael Wood mwood@broadcom.com
Mon May 24 20:30:00 GMT 2004


Thanks for your speedy replies (and I apologize for not getting back to 
you until now).

I have determined simply from trying various combinations of things, 
that "COM1" is a name that is created within cygwin when a device is 
connected to the serial port and powered-on. The name "/dev/com1" always 
exists, and appears to be synonymous with "/dev/ttyS0", however neither 
can be used in place of "COM1" in the Cygwin shell to refer to the 
serial port. Both of these names also always return the correct 
"crw-rw-rw-" permissions for a "ls -l", where as a "ls -l COM1" results 
in "-rw-r--r--" when a device is plugged into the serial port and 
powered-on, otherwise the call simply hangs.

In the end, the important part is that the permissions above likely had 
nothing to do with my "Access Denied" error. This was caused by my Linux 
VMWare session running at the same time as my Cygwin shell. If I let the 
Linux VMWare session boot first and grab the serial port, then Cygwin 
couldn't see it (apparently) and vice versa. As soon as I shutdown the 
VMWare session, I could then gain access to the serial port using "COM1" 
through the Cygwin shell.

Thanks again for your replies guys.

- Mike

Dave Korn wrote:
>>-----Original Message-----
>>From: cygwin-owner On Behalf Of Michael Wood
>>Sent: 20 May 2004 17:23
> 
> 
>>Hi-ya,
>>
>>I get an "Access is denied" error message when attempting to create a 
>>serial port connection through Cygwin, running on Win XP.
>>
>>In cygwin, when I execute:
>>	ls -l COM1
>>
>>I get the following:
>>	-rw-r--r--    1 mwood    mkgroup-        0 Jan  1  1970 COM1
>>
>>However, when I execute:
>>	chmod a+rw COM1
>>
>>the command exits normally (no error message), but the permissions on 
>>COM1 stay the same. Furthermore, I do not particularly 
>>understand why if 
>>I am the owner of COM1 (as illustrated by the 'ls -l'), why I 
>>would get 
>>a permission error.
>>
>>I have successfully created and used a connection on the 
>>serial port on 
>>the same machine through a VMWare session running a Linux Red 
>>Hat image. 
>>I used a very similar procedure above, in that I simply changed the 
>>permissions on "/dev/ttyS0" to grant all users read and write 
>>permissions to the serial port.
>>
>>Help would be greatly appreciated.
>>
>>- Mike
> 
> 
> 
> #1.  Why not use /dev/ttyS0 again?  Cygwin is a posix compatible layer and
> /dev/ttyS0 should work pretty much the same.  BTW, which directory are you
> in when you do those commands on COM1?  Did you "cd /dev" or do you expect
> it to just work anywhere, and if so, why?

> 
> #2.  'doze has some pretty funny ideas about files having the same name as
> dos-devices (COMx:, PRN:, LPTx: etc).  It doesn't like it at all.
> Presumably somewhere between cygwin and 'doze a bit of confusion is creeping
> in.
> 
> #3.  I notice that if you're in /dev and you do "ls -la com1", you get the
> right answer.  But remember, under Posix, capitalisation matters, so "com1"
> and "COM1" are two different files.  Under 'doze, unfortunately, it doesn't.
> So probably Cygwin knows that /dev/com1 is the serial port, thinks that
> /dev/COM1 is something different because the case doesn't match, assumes
> it's an ordinary file and passes the name through to the underlying 'doze
> file-handling calls, which disagree with cygwin and think that it IS a
> serial port, and then everybody gets confused.
> 
> #4.  When I do "ls -la COM1", I just get:
> 
> dk@mace /> ls -la COM1
> ----------    0 ???????? ????????        0 Jan  1  1970 COM1
> 
> no matter what directory I'm in.  Bizarre.  When I'm do "ls -la /dev/com1",
> I get the proper answer:
> 
> dk@mace /> ls -la /dev/com1
> crw-rw-rw-    1 dk       Domain U 117,   1 May 20 19:05 /dev/com1
> 
> but capitalizing it never works, not even in the /dev directory.
> 
> dk@mace /> ls -la /dev/COM1
> ----------    0 ???????? ????????        0 Jan  1  1970 /dev/COM1
> 
> #5.  Anyway, the answer to your problem is that you were using the wrong
> filename.  The solution is to use the correct filename; either /dev/com1 or
> /dev/ttyS0.  And as to why there's a messed up COM1 in there, that's a
> little bugette you've stumbled across.
> 
>     cheers, 
>       DaveK



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list