On Sat, 8 Oct 2005, Richard A Downing wrote:

I'm trying to debug fgetty.  It's a replacement for getty using dietlibc.

Now it's supposed to run if called like this:

fgetty /dev/tty3

But this fails for me.  The relevant code is:

if ((fd=open(tty, O_RDWR, 0))<0 || ioctl (fd, TIOCSCTTY, (void *1)==-1)
   error("could not open tty device\n",3);

and this always fails (despite any perms, mine are 666 of /dev/tty3).

The open is OK, it's the ioctl condition that's failing.  But I'm damned
if I know where to look for what this is doing.

Any ideas?  Google has revealed zilch.


 Lots of hits for TIOCSCTTY !  It's trying to set the controlling tty.
I've no idea how to find the code in the kernel (finding the define of the ioctl is easy enough, but I don't know how this is translated to a destination.

Maybe this url might provide some ideas. Sounds as if you have to be root, AND the current process must not have a controlling tty (which will be interesting to debug, if true).

http://seclists.org/linux-kernel/2000/Sep/2888.html

You might want to try ignoring the error (google found some ssh code for sparc which ignores the return value from TIOCSCTTY because HP returns EINVAL ! ).

Ken
--
 das eine Mal als Tragödie, das andere Mal als Farce
-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-chat
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to