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


> -----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
-- 
Can't think of a witty .sigline today....


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