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