This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: com1 access denied - win xp


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]