Main Page | Report this Page
Linux Forum Index  »  Linux Embedded  »  Control C not working (sh in initrd after PXE boot)...
Page 1 of 1    

Control C not working (sh in initrd after PXE boot)...

Author Message
Christophe...
Posted: Tue Sep 22, 2009 11:28 pm
Guest
Hi.

I boot my embedded target with PXE, using my own initrd.
The init script launches a sh.
Everything works fine.

The only issue is that the Control C has no effect.
So I have no way to kill a running command (e.g ping...)

The stty looks OK (intr = ^C)
The keys like ^Q, ^D, ^S work fine.

Is it because the signal is blocked ?
Any idea how to make Ctrl C work ?

Thanks

Chris
 
Christophe...
Posted: Wed Sep 23, 2009 10:54 pm
Guest
Hi.

In fact, I had no /dev/tty.
I made a little mknod and now CtrlC is back :)

Thanks for you answer.

Chris
 
Norbert van Bolhuis...
Posted: Thu Sep 24, 2009 1:42 am
Guest
For ctrl-c to work, you need a controlling terminal (the TTY column) and a
process group. If you have a '?' in the TTY column, ctrl-c won't work.
In the past I have seen this happen because of this code in drivers/char/tty_io.c:
if (device == SYSCONS_DEV) {
struct console *c = console_drivers;
while(c && !c->device)
c = c->next;
if (!c)
return -ENODEV;
device = c->device(c);
filp->f_flags |= O_NONBLOCK; /* Don't let /dev/console block */
noctty = 1;
}

Note that O_NOCTTY (no controlling terminal) is forced on whenever
/dev/console is opened (noctty = 1). Possible workarounds:
1) Run getty on something other than /dev/console. For example,
if you console is on the first serial port, run getty on /dev/ttyS0.
I believe this is the "correct" answer.
2) You could also change getty to do a TIOCSCTTY ioctl explicitly after
it has opened the terminal.
3) You could remove the forcing of noctty on from tty_io.c



Christophe wrote:
Quote:
Hi.

I boot my embedded target with PXE, using my own initrd.
The init script launches a sh.
Everything works fine.

The only issue is that the Control C has no effect.
So I have no way to kill a running command (e.g ping...)

The stty looks OK (intr = ^C)
The keys like ^Q, ^D, ^S work fine.

Is it because the signal is blocked ?
Any idea how to make Ctrl C work ?

Thanks

Chris
 
 
Page 1 of 1    
All times are GMT - 5 Hours
The time now is Wed Dec 09, 2009 8:38 pm