Hi. On my device I have DirectFB 1.0.0, with a single input driver
(inputdrivers/keyboard) which has been modified not to use virtual
terminals, but to directly open /dev/tty0. On my system, that's the USB
keyboard.
There is already a system console running over a serial interface
(/dev/ttyS0) that I use to get at busybox, do command line stuff, etc.
I have found that there are problems with a variety of programs that
seem to relate to signal handling and some of the ioctl's associated
with the terminal, such as:
In DirectFB's keyboard.c after opening /dev/tty0, which works fine...
tcgetpgrp fails - I get ENOTTY errors
tcsetpgrp fails - same
I tried
ioctl(fd, TIOCSCTTY,1)
to see if I could grab a new controlling tty, and it fails with EPERM.
Looking at the kernel code (I'm on 2.6.16) I see in tty_io.c that
tcsetpgrp is failing thusly:
if (!current->signal->tty ||
(current->signal->tty != real_tty) ||
(real_tty->session != current->signal->session))
return -ENOTTY;
So at this point I'm pretty sure that I'm not getting proper signal
handling (this might explain some other problems I've had) and can't
seem to acquire the "controlling" tty properly. Also, I tried playing
with the O_NOCTTY flag on opening the device, to no effect.
This seems to be a major hurdle needed in order to get a robust enough
environment to run some of the (very) complicated apps I'm porting to
directfb. Any assistance or advice would be greatly appreciated.
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev